# Baton Pass：多智能体协作中的低令牌交接工作流

> 一种创新的多智能体项目协作方案，通过结构化交接机制解决上下文窗口限制导致的记忆丢失问题，实现Claude与Codex等AI工具间的无缝工作接力。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-05-01T06:14:16.000Z
- 最近活动: 2026-05-01T06:20:14.739Z
- 热度: 150.9
- 关键词: 多智能体协作, 上下文窗口, AI交接, Claude, Codex, 工作流, 令牌优化, 智能体接力
- 页面链接: https://www.zingnex.cn/forum/thread/baton-pass
- Canonical: https://www.zingnex.cn/forum/thread/baton-pass
- Markdown 来源: ingested_event

---

## 问题背景：上下文窗口的硬限制\n\n在大语言模型驱动的开发工作流中，一个长期存在的痛点是**上下文窗口的限制**。当AI助手处理大型代码库或进行长时间对话时，模型会逐渐"遗忘"早期的讨论内容和决策依据。\n\n这种遗忘带来的后果是多方面的：\n\n- **重复工作**：新会话的AI需要重新了解项目背景和已完成的决策\n- **信息漂移**：不同会话间对项目状态的理解可能出现偏差\n- **隐性错误**：基于过时假设继续开发，导致难以察觉的逻辑错误\n- **效率损失**：大量令牌被用于重新陈述已知信息，而非解决实际问题\n\n传统的解决方案通常依赖于项目文档，但文档往往滞后于实际开发，且无法完整捕捉会话中的微妙决策过程。\n\n## Baton Pass 的核心设计理念\n\nBaton Pass 提出了一种全新的解决思路：**只传递增量信息，而非完整回顾**。其核心原则可以概括为一句话：\n\n> "不要重述稳定的项目历史，除非接收方确实无法在没有这些信息的情况下继续工作。"\n\n这一理念彻底改变了多智能体协作的范式。传统的交接往往倾向于提供尽可能多的背景信息，而 Baton Pass 则主张精确传递当前状态的最小必要信息，从而降低令牌消耗并减少信息过载。\n\n## 工作流架构：七大核心命令\n\nBaton Pass 设计了一套完整的命令体系，覆盖多智能体协作的各个阶段：\n\n### 1. new-game：初始化工作流\n\n在项目开始时使用，创建 Baton Pass 所需的基础文件结构：\n\n- `baton-pass.config.json`：项目配置\n- `baton-pass.state.json`：状态追踪\n- `docs/agent-handoff.md`：交接文档模板\n- `docs/current-state.md`：当前状态快照\n- `docs/next-task.md`：下一步任务说明\n- `docs/progress.md`：进度记录\n\n这些文件构成了多智能体协作的"共享记忆"基础。\n\n### 2. save-state：安全暂停\n\n当需要暂停工作但所有权不发生变更时使用。记录关键信息包括：\n\n- 当前正在执行的任务\n- 暂停时的具体位置\n- 已修改的文件列表\n- 下一步的即时行动项\n- 存在的阻塞或风险\n\n这种设计确保即使是同一开发者稍后恢复工作，也能快速找回状态。\n\n### 3. baton-pass：智能交接\n\n核心交接命令，在以下场景触发：\n\n- 当前AI的令牌即将耗尽\n- 需要切换到另一个AI工具继续工作\n- 工作所有权发生变更\n\n交接内容严格限定为：\n\n- **目标**：当前会话的总体目标\n- **已完成**：已实现的里程碑\n- **文件变更**：修改过的文件清单\n- **验证状态**：诚实的验证结果（使用特定词汇表）\n- **下一步任务**：明确的后续行动\n- **风险**：需要注意的潜在问题\n- **下一任智能体**：指定的接手方\n\n### 4. foresight：接收验证\n\n接收方在继续工作前必须执行的检查流程：\n\n1. 确认当前用户目标\n2. 检查工作目录状态\n3. 查看最新提交记录\n4. 阅读 current-state 文档\n5. 审阅 next-task 说明\n6. 检查最新进度条目\n7. 验证交接文件中提及的文件\n\n根据验证结果采取不同行动：\n- **对齐**：继续工作\n- **偏差**：先修正文档，再继续\n- **发现可复用的经验教训**：执行 dragon-dance\n\n### 5. dragon-dance：经验教训记录\n\n这是一个条件性命令，仅在真正学到东西时才执行。触发条件包括：\n\n- 交接文件过时或不完整\n- 验证声明具有误导性\n- 接收方需要重新审计过多内容\n- 识别出可能重复发生的工作流错误\n\nDragon Dance 不是仪式，而是一种修复机制，用于将隐性知识转化为显性文档。\n\n### 6. party-check：所有权确认\n\n快速查询当前工作所有权的轻量级命令，从 `baton-pass.state.json` 和 `next-task` 文件中的 Turn State 块读取信息。\n\n### 7. hindsight：全链审计\n\n用于完整审计交接链的历史记录，适用于：\n\n- 里程碑完成时的清洁记录\n- 感觉有问题时追溯根源\n- 新智能体加入需要完整背景\n- 发现严重偏差需要了解起始点\n- 项目审查、交接给人类或归档\n\n审计输出包括交接链表格、里程碑声明、验证缺口、未解决风险、累积偏差和未关闭事项。\n\n## 验证词汇表：精确的状态描述\n\nBaton Pass 强制使用精确的验证术语，避免模糊表述：\n\n| 术语 | 含义 |\n|------|------|\n| passed | 已在本地运行，输出确认干净 |\n| passed outside sandbox | 已在本地运行，但不在CI/构建环境中 |\n| not run — [原因] | 已跳过，说明原因 |\n| expected to pass, unverified | 未运行，但认为正确 |\n\n特别强调的是，绝不能用 "passed" 代替 "expected to pass, unverified"。这种单一歧义是导致交接返工的主要原因。\n\n## Turn State 机制：状态同步\n\n每个 `next-task` 文件顶部都包含一个 Turn State 块，格式如下：\n\n```markdown\n## Turn State\n- State: handed-off\n- Last Move: baton-pass\n- Last Agent: codex\n- Next Agent: claude\n- Updated At: 2026-04-17\n```\n\n`baton-pass.state.json` 文件以程序化方式镜像这些信息。当两者不一致时，以 `next-task` 为准。\n\n推荐的状态值包括：\n\n- **active**：当前有人正在工作\n- **paused**：安全暂停，同一智能体将恢复\n- **handed-off**：已交接，等待接收方确认\n- **claimed**：接收方已运行 foresight 并继续工作\n- **blocked**：无法继续，原因记录在 next-task 中\n\n## 典型工作流模式\n\n### 正常暂停/恢复\n```\nsave-state → foresight → continue\n```\n\n### 低令牌交接\n```\nbaton-pass → foresight → continue\n```\n\n### 发现偏差时的处理\n```\nforesight → correct docs → dragon-dance (if lesson) → continue\n```\n\n### 完整审计\n```\nhindsight → dragon-dance (if gaps or unresolved risks found)\n```\n\n## 与 Claude Code 的集成\n\nBaton Pass 可以作为 Claude Code 的插件安装：\n\n```bash\n/plugin marketplace add francisN21/baton-pass\n/plugin install baton-pass@baton-pass\n```\n\n安装后，Claude Code 可以自动使用 Baton Pass 技能，并提供以下斜杠命令：\n\n- `/new-game`\n- `/save-state`\n- `/baton-pass`\n- `/foresight`\n- `/dragon-dance`\n- `/party-check`\n- `/hindsight`\n\n也可以通过 npm 安装 Node CLI 包：\n\n```bash\nnpx baton-pass init\n```\n\n## 应用场景与价值主张\n\nBaton Pass 最强的应用场景是配对使用 Claude 和 Codex，让它们相互交叉检查，而不是依赖单一模型的跨会话记忆。\n\n这种设置带来以下优势：\n\n- **更快发现过时假设**：不同模型的视角差异有助于识别问题\n- **减少会话间交接漂移**：结构化的交接机制确保信息准确传递\n- **令牌耗尽时的连续性**：当单一模型达到上下文限制时，另一模型可以无缝接手\n- **验证接力**：一个模型验证另一个模型的交接文件后再继续\n\n对于已经使用 Claude Pro 和付费 ChatGPT/Codex 计划的用户，这比每次会话都从零开始拼凑连续性要干净得多。\n\n## 常见误区与规避\n\n项目文档明确指出了应避免的错误做法：\n\n- **过度使用**：不要为了每个微小检查点都使用 Baton Pass\n- **无意义记录**：没有学到东西时不要运行 dragon-dance\n- **过度审计**：不要在每次交接后都运行 hindsight\n- **冗余重写**：不要为琐碎工作重写所有记忆文件\n- **过度验证**：不要把 foresight 变成每次都要做的完整仓库审计\n- **模糊表述**：不要用 "passed" 表示 "expected to pass, unverified"\n- **脏树交接**：不要在未命名未提交状态的情况下交接脏工作目录\n\n## 结语\n\nBaton Pass 代表了对多智能体协作问题的深刻思考。它没有试图通过技术手段突破上下文窗口的限制，而是通过工作流程的重新设计，在现有技术约束下实现最优的协作效果。\n\n这种务实的解决方案哲学值得借鉴：当面临无法立即解决的技术限制时，如何通过流程创新来优化体验。对于正在探索多AI工具协作的团队而言，Baton Pass 提供了一个经过深思熟虑的参考实现。
