关于 handoff
Handoff 是用于在不同会话间传递上下文的 Agent 技能,支持 prompt 和 artifact 两种渠道。它规范精简且带引用的交接、如实报告进度,以及在不同客户端接口中的敏感信息处理。
主要功能
- 01选择 prompt 或 artifact 渠道
- 02传递引用而非完整内容
- 03区分已完成、进行中和受阻事项
- 04遮盖秘密信息和个人数据
- 05按客户端接口映射交接方式
适用场景
- 01在新聊天中继续工作
- 02通过 artifact 传递模型发起的上下文
- 03不使用完整上下文包传递审查状态
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ csark0812/ toolbox --skill handoff安装后在 Claude Code 中输入/handoff确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/handoff-subagent-dispatch.mdoutput.mdpack.mdresearch-basis.md详细介绍
交接
Orchestrator — 跨会话 A2A(channel:prompt 与 channel:artifact)。共享术语 → process-skill-composition.md。
参考:pack.md · output.md · handoff-subagent-dispatch.md
校准声明时,请阅读 research-basis.md。
入口门槛
- 目标是新聊天——不在范围内的是无转移的同会话续接。
- 已选择通道——
prompt(用户)或artifact(由模型调用)。
不可妥协的要求
- 提供指针,而非正文——路径、URL、SHA。绝不在交接中粘贴计划、PRD 或差异。
- 如实说明状态——已完成、进行中或已损坏。声称取得进展时,附上提交或测试作为依据。
- 写入或粘贴前,删去机密、令牌和 PII。
- 通道为 prompt——用户执行
/handoff→ 不写入磁盘(禁止使用_agent/handoffs/)。 - 通道为 artifact——由模型调用 → 必须由子 Agent 写入。由协调器优先写入属于违规行为。
工作流
- 选择通道、信息包和目标——使用 pack.md 中最接近的条目。这些值仅控制内容生成。
- 收集——从对话线程中提取最少量的要点。省略空类别。
- 交付——
channel:prompt→ 按照 output.md 提供用清晰英语编写的接收提示词,并置于代码围栏中channel:artifact→ 按照 handoff-subagent-dispatch.md 操作 → 仅粘贴存根
执行接口映射
当请求中提到“通过 X 客户端进行交接”时,使用此映射。
- 根据发起方意图选择通道:
prompt用于面向用户的交接(/handoff)artifact用于模型调用的上下文压力续接
- 根据
pack、goal和线程声明构建一个规范负载。 - 路由至客户端接口:
prompt:输出接收提示词代码块,并将其交给下一次聊天启动时使用。artifact:写入<workspace>/_agent/handoffs/<filename>.md,然后仅输出读取存根。
- 按客户端专属规则验证输出。
跨客户端默认行为
| 界面 | 传输规则 | 生成方操作 | 必需的接收产物 |
|---|---|---|---|
| Codex | 由聊天线程控制 | 用户移交时使用 channel:prompt,模型调用时使用 channel:artifact | channel:prompt 块或移交产物路径 |
| Cursor | 对话续接 | 除非明确提供产物钩子,否则将 channel:prompt 发送到新聊天 | 提示词块 |
| Claude Code | 聊天续接 | 将 channel:prompt 发送到新聊天;如果存在客户端专属任务 API,则将该块作为首条用户消息传递 | 提示词块 |
| Claude API / GPT-like interface | 聊天续接 | 必须使用 channel:prompt;将字段映射到用户可见的移交消息 | 提示词块 |
| ChatGPT UI / web chat | 聊天续接 | 使用 channel:prompt,并将 Open workspace 作为目标首行 | 提示词块 |
| GitHub Copilot Chat | IDE 续接 | 仅使用 channel:prompt;除非本地宿主提供移交写入功能,否则不使用共享产物路径 | 提示词块 |
| 通用 MCP / 自定义客户端 | 特定于 API | 映射到规范载荷字段;如果不支持产物,则降级为提示词 | 提示词块(或受支持时使用产物路径) |
当界面不提供产物 API 时,始终回退到 channel:prompt。
Codex API 分支
在请求明确指定使用 Codex API 执行时使用此分支。
- 根据计划声明构建
channel:prompt载荷。 - 优先采用以下方式之一:
- 如果编排流程由用户驱动,则使用提示词载荷开启新聊天。
- 使用
create_thread创建新的 Codex 任务,然后通过send_message_to_thread发送提示词块以初始化移交。
- 对于
channel:artifact,通过编排流程调用带有channel:artifact的handoff,启动子 Agent 写入路径,然后仅输出指向<workspace>/_agent/handoffs/<filename>.md的存根。
避免伪造不受支持的 Codex 工具调用。如果所需 API 不可用,请记录回退到 channel:prompt 的方案。
高使用量界面说明
- 对于同时提供 UI 和 API 模式的客户端,请在自己的编排中明确说明所用模式。
- 如果客户端提供结构化对话 API,请保留相同字段,并仅将其映射到初始消息载荷中。
- 对于 IDE 原生聊天客户端,优先使用带有明确工作区的提示词模式。
界面执行边界
- 不要将任何一种聊天技术栈的控制 API 硬编码为唯一受支持的路径。
- 不要在接收内容中包含
channel和pack。 - 对任何界面都不要跳过脱敏规则。
- 对于
channel:artifact,不要由协调器写入移交文件;需要时应启动或协调子 Agent 路径。
如果下一会话只需要审查状态,请使用使用方叠加块,而不是 Pack: full。
使用方绑定
读取技能时会追加项目专属的注入上下文。
评论
支持 Markdown