LAYER 05 · 从单 Agent 扩到协作系统

Subagent、Continuation 与 Job

委派传输、可继续对话和长时间运行控制是三层不同抽象

22 min3 处源码锚点upstream@47f9438
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。

Learn DeepSeek Harness

独立教学项目。解释力来自源码,判断边界以官方仓库为准。