---
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` 切换快速模式
- 模型切换不会丢失对话历史
