60 lines
2.0 KiB
Plaintext
60 lines
2.0 KiB
Plaintext
---
|
||
title: "多轮对话管理"
|
||
description: "一场跨越数小时的编程对话是如何被管理的"
|
||
---
|
||
|
||
{/* 本章目标:解释会话编排、持久化、成本追踪 */}
|
||
|
||
## 单轮 vs 多轮
|
||
|
||
- **单轮**(一次 Agentic Loop):用户说一句 → AI 执行一系列操作 → 回答
|
||
- **多轮**(一个 Session):用户和 AI 来回对话几十轮,持续数小时
|
||
|
||
多轮对话带来的挑战远超单轮:消息越来越多、token 不断累积、上下文逐渐模糊。
|
||
|
||
## 会话编排器的职责
|
||
|
||
在单轮 Agentic Loop 之上,有一个编排器负责管理整个会话生命周期:
|
||
|
||
<CardGroup cols={2}>
|
||
<Card title="对话状态管理" icon="database">
|
||
维护完整的消息历史,包括用户消息、AI 回复、工具调用结果
|
||
</Card>
|
||
<Card title="会话持久化" icon="floppy-disk">
|
||
自动保存对话记录到磁盘,支持断线重连、历史回顾
|
||
</Card>
|
||
<Card title="文件快照" icon="camera">
|
||
在 AI 修改文件前自动保存快照,支持回滚
|
||
</Card>
|
||
<Card title="成本追踪" icon="calculator">
|
||
精确记录每轮的 token 消耗和 API 费用
|
||
</Card>
|
||
</CardGroup>
|
||
|
||
## 会话恢复
|
||
|
||
意外退出?网络断了?没关系:
|
||
|
||
- 每轮对话结束后,完整的 transcript 会被写入磁盘
|
||
- 下次启动时,可以选择恢复之前的对话
|
||
- 恢复时,系统重建消息历史和上下文状态
|
||
|
||
## 成本感知
|
||
|
||
AI 编程助手的一个现实问题是**费用可能失控**。Claude Code 内建了多层成本控制:
|
||
|
||
| 机制 | 作用 |
|
||
|------|------|
|
||
| Token 计数器 | 实时显示本次会话已消耗的输入/输出 token |
|
||
| 费用估算 | 根据模型定价计算累计美元花费 |
|
||
| 预算上限 | 用户可设定最大花费,到达后自动停止 |
|
||
| 压缩提醒 | Token 接近上限时提示用户触发压缩 |
|
||
|
||
## 模型切换
|
||
|
||
在一个会话中,用户可以随时切换模型或调整参数:
|
||
|
||
- `/model` 切换到不同的模型(Sonnet / Opus / Haiku)
|
||
- `/fast` 切换快速模式
|
||
- 模型切换不会丢失对话历史
|