工作契约(Work Contract)字段和 Handoff 接口以 官方文档 的最新发布版本为准。这页帮你把一次交接跑完,并看清哪一步会写 Source。
闭环长什么样
工作契约、Handoff 边界、确认回执和 Task Outcome 都会留下 Source 回执。已提交 Handoff 另有不可变 Artifact Revision。准备就会写边界 Source,所以它不是只读预览。完整 Python 示例
新建handoff_loop.py:
model_validate 构造嵌套请求,因为 JSON 契约中的字段名是 schema,而生成的 Python 模型内部属性使用别名。
每一步的边界
工作契约是委托基线
它记录目标、范围内的工作、排除项、完成标准、授权备注和关键问题。 契约是untrusted_input Source,不会扩大当前授权。basis="verified" 的声明必须带精确证据;basis="declared" 则不能带证据。
handoff_current_work 会写边界 Source
它返回:
prepared_work.handoff,不是整个响应。
这一步没有创建 Handoff Revision,但已经持久化边界 Source。因此,它不是只读预览。
已准备交接不需要提交
示例先continue_handoff(selection="prepared"),证明临时交接可用。此时 selected_revision 是 None。
只有需要持久里程碑时才调用 commit_handoff。
latest 用于发现,exact 用于确认
latest 返回当前头版本,并把它放在 selected_revision 和 current_revision。接收方检查后,应把确认绑定到精确 Revision。
acknowledge_handoff 不接受 selection="latest"。
接受有硬性条件
只有下面三项全部已确认,且证据都可用,才能写accepted:
needs_clarification 或 declined,并提供消息。
确认只是接收记录,不授予权限。
结果要链接接受精确回执
handoff_receipt_ref 使用:
结果与 Check 状态
整体Task Outcome.status 可选:
TaskCheck.status 可选:
负向实验
不提交,读取最新版本
在提交前调用continue_handoff(selection="latest"),应得到 status="empty"。已准备 Handoff 仍可通过 selection="prepared" 使用。
接受但授权信息未确认
把授权信息改成not_checked,操作应拒绝。改用 needs_clarification 并说明缺少什么。
用已准备回执记录已提交 outcome
先确认已准备,再把它作为handoff_receipt_ref。Server 应拒绝,因为回执没有绑定已提交精确 Revision。
两个已准备 Handoff 共享基础
先准备两个 Handoff,提交第一个,再提交第二个。第二个应发生 Revision 冲突。读取新头版本后重新准备,不要猜 Revision。边界成功,提交失败
此时边界 Source 已存在,但没有新的 Handoff Revision。向用户报告这个实际状态,不能说“什么都没写”,也不能说“里程碑已保存”。怎么知道跑通了
- 工作契约回执已经保存。
- 已准备 Handoff 可以先临时继续。
- 提交返回精确 Handoff Revision。
- 用最新版本找到之后,确认绑到精确 Revision。
- 接受前核对证据、实时状态、能力和授权。
- Task Outcome 链到确认回执的 SourceRef。
- 整体结果和单项检查状态没有混用。
下一步
Experience、Skill 与 Review
Candidate 先进入 Review。Skill 批准后还要显式导出。
卡住时先对排错
只要预览却调用了 Handoff,先打开排错。

