claude-code/docs/conversation/multi-turn.mdx

60 lines
2.0 KiB
Plaintext
Raw Normal View History

2026-04-01 09:16:41 +08:00
---
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` 切换快速模式
- 模型切换不会丢失对话历史