handoff:把当前上下文交给下一个 agent

原始 GitHub 文件:

完整中文文件已经落在同目录:

handoff 是一条很短的 productivity skill,但它在整套工作流里很关键:当当前会话要结束、上下文可能丢失,或者下一轮要换一个新 agent 接手时,它负责把“继续工作所需的信息”压缩成一份交接文档。

它不是普通总结。普通总结倾向于回顾发生了什么;handoff 的目标是让下一个 agent 能立刻继续做事。

1. 完整可复制中文 SKILL.md

---
name: handoff
description: 将当前对话压缩成一份 handoff 文档,让另一个 agent 可以接手继续。
argument-hint: "下一轮会话将用于什么?"
disable-model-invocation: true
---

写一份 handoff 文档,总结当前对话,让一个新的 agent 可以继续这项工作。把文档保存到用户操作系统的临时目录,而不是当前 workspace。

在文档中包含一个 "suggested skills" section,建议下一个 agent 应该调用哪些 skills。

不要重复已经记录在其他 artifacts 里的内容,例如 PRD、plans、ADRs、issues、commits、diffs。用路径或 URL 引用它们。

隐去所有敏感信息,例如 API keys、passwords 或 personally identifiable information。

如果用户传入了 arguments,把它们视为下一轮会话的关注重点,并据此调整文档。

2. 后文只挑疑难点

这条 skill 很短,不需要逐句解释。真正值得注意的是四个设计点:

  • 为什么保存到 OS temp 目录,而不是 workspace
  • 为什么要有 suggested skills
  • 为什么不要重复已有 artifacts
  • 为什么 argument-hint 是“下一轮会话将用于什么”

3. handoff 不是 archive,而是 continuation

handoff 的关键不是“归档当前会话”,而是“让下一轮继续”。

所以它关心的不是把所有历史完整写下来,而是下一个 agent 需要知道什么:

  • 当前目标是什么;
  • 已经完成了什么;
  • 哪些文件或 artifacts 是权威来源;
  • 哪些决策不能重新争论;
  • 下一步应该从哪里开始;
  • 该调用哪些 skills。

这和普通项目总结不同。普通总结可以追求完整,handoff 必须追求可接手。

4. 保存到临时目录,是为了不污染项目事实

这里更硬的判断是:handoff 不写进 repo,首先是为了守住“交接材料”和“项目事实”的边界;检索更干净只是顺带收益。

原文要求:保存到用户 OS 的临时目录,不保存到当前 workspace。

这说明 handoff 文档默认是会话交接材料,不是项目文档。它通常包含当前进度、下一步、上下文压缩、可能还包括一些临时判断。把它直接放进 repo,容易制造噪音。

如果某个结论已经稳定到应该长期保留,就不应该只写在 handoff 里,而应该进入 PRD、plan、ADR、issue、commit 或项目文档。

5. suggested skills 是给下一个 agent 的路线图

这条 skill 明确要求文档包含 “suggested skills” section。

这在 Matt 的 skill 系统里很自然:下一轮 agent 不一定知道当前任务应该接哪个 flow。如果 handoff 只写“继续分析”,下一个 agent 仍然要重新判断;如果它直接写明建议调用 /codebase-design/grilling/implement 或其他 skill,接手成本会低很多。

所以 suggested skills 不是附录,而是交接文档里的执行路线。

6. 不重复 artifacts,是为了保护权威来源

原文说不要重复已经记录在 PRDs、plans、ADRs、issues、commits、diffs 里的内容,要用 path 或 URL 引用。

这条很重要。handoff 如果复制太多内容,会带来两个问题:

  • 交接文档变臃肿,下一个 agent 很难分辨重点;
  • 内容会和权威 artifacts 分叉,后续修改后 handoff 里的复制版本就过期了。

更好的做法是:handoff 写“应该看哪个文件、哪个 URL、哪个 commit、哪个 issue”,并说明它们在当前任务中的作用。原始内容仍然留在权威位置。

7. argument-hint 的作用

argument-hint 不是让用户补充当前会话标题,而是在提示用户:handoff 的参数应该写“下一轮会话将用于什么”。

它在这里是:

"What will the next session be used for?"

这不是让用户描述当前会话,而是让用户给下一轮设定焦点。比如:

  • “下一轮继续实现 issue 3”
  • “下一轮只做 code review”
  • “下一轮把 README 格式整理完”
  • “下一轮接着排查测试失败”

有了这个焦点,handoff 就不会平均总结所有信息,而会围绕下一轮任务取舍上下文。

8. 快速复习关键思想

关键思想压缩:

  • handoff 是 continuation 文档,不是完整历史归档。
  • 保存到 OS temp 目录,避免把会话交接材料误当项目事实。
  • 文档必须包含 suggested skills,给下一个 agent 明确路线。
  • 已有 PRD、plan、ADR、issue、commit、diff 不要复制,引用路径或 URL。
  • 用户 arguments 是下一轮会话焦点,不是当前会话标题。
  • 必须隐去敏感信息。

快速回忆:

  1. 为什么 handoff 不应该保存到 repo?
  2. 为什么不复制已有 artifacts?
  3. suggested skills 解决什么问题?
  4. argument-hint 为什么问下一轮会话用途?

答案要点:

  • 因为它是临时交接材料,不是长期项目事实。
  • 因为复制会制造冗余和过期版本,权威内容应该留在原 artifact。
  • 它让下一个 agent 直接进入正确 flow,不必重新路由。
  • 因为 handoff 要服务下一轮任务,需要按下一轮焦点裁剪上下文。
Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐