LAYER 05 · 从单 Agent 扩到协作系统
Subagent、Continuation 与 Job
委派传输、可继续对话和长时间运行控制是三层不同抽象
provider transport + activation + job registry启动一个子 Agent 后,谁拥有它、谁能继续发消息、谁负责停止?
先建立直觉
委派像把任务交给外包团队:Provider 是通信方式,Descriptor 是合同身份,Continuation 是续约通道,Job Registry 是项目监控台。
MECHANISM
机制拆解
ctx.subagents 选择 in-process spawn/fork、ACP、Codex、Claude Code 或 DSH SDK provider;请求携带深度、cwd、persona、工具可见性与持久 descriptor。
Continuation 由 Activation 编排,tool-subagent-control 发送后续;长运行委派登记 ctx.jobs,ownerSession 负责访问控制,Agent dispose 会取消并等待 Job。
第 1 步 / 共 6 步
声明委派请求
描述、父 Agent、深度、工具过滤和 persona。
INVARIANTS
无论怎么扩展,都不能破坏
- 绝对委派深度在 provider 间一致
- 工具过滤是可见性,不是安全权限
- Job.done 只在生产方释放资源后完成
FAILURE MODES
最容易踩中的坑
- ×把“新开 API 调用”当完整子 Agent
- ×只取消 Job 记录却不停止生产方
- ×用可猜 JobId 作为访问控制
VERIFY IN SOURCE
不要相信结论,去源码里复核
以下链接固定到官方 deepseek-harness@47f9438;查看当前上游时请留意后续 breaking changes。
KNOWLEDGE CHECK
先停十秒,再揭晓答案
为什么 toolFilter 不能被当作安全沙箱?
为什么下一章紧接在这里
子 Agent 解决一次委派;下一章让模型编写工作流脚本并安排持久 Schedule。