DeepSeek Harness 蓝皮书
用户指南

Subagent 与工作流

把工作委派给子 agent,或用工作流脚本编排大规模多 agent 协作

Harness 里的 agent(智能体)可以把工作委派给子 agent,也可以用工作流把复杂任务拆成多阶段、多 agent 的编排。两者都是模型可调用的工具,属于同一套 subagent 与 workflow(工作流)原语。

Subagent 委派

subagent 工具让当前 agent 把一段自包含的任务交给子 agent。子 agent 在独立的会话里工作,父会话不会被它的中间步骤污染;父会话只收到最终结果。

前台与后台

  • 前台run_in_background: false):父 agent 等待子 agent 完成后才继续,适合下一步依赖结果的情况;
  • 后台run_in_background: true):调用立即返回一个持久的 subagent id,父 agent 继续做别的,子 agent 完成后通过通知把结果送达。

后台是默认推荐做法:把多个相互独立的委派放在同一条消息里一起发起,趁它们运行时继续做有用的事;只有下一步确实依赖结果时才用前台。

可继续的子 agent

后台启动的子 agent 会保留一份自己的对话,父 agent 可以通过 send_message 给它追加消息、开启新的一轮;list_agents 列出当前可继续的子 agent 及其状态(running 正在工作、idle 已加载但在轮次之间、ready 仅存于存储中、可恢复);interrupt_agent 请求终止某个子 agent 的当前轮次——已排队的消息会保留,它启动的 agent 继续运行,目标本身仍可继续对话。

两类子 agent

委派提供方决定了子 agent 是否继承父对话:

  • spawn(全新):子 agent 不继承父对话,prompt 必须自包含;
  • fork:子 agent 从父 agent 已完成的对话历史启动,适合基于当前上下文做后续分析或审查。

部署还可以挂载其他提供方,例如跨进程的 ACP、真实的 Codex / Claude Code 子进程等;对外暴露哪个取决于组合。

深度上限

委派有绝对深度上限 maxDepth,默认 3(0 表示禁止委派)。到达上限时 subagent 工具仍可见,但每次尝试启动都会返回错误结果。

工作流(workflow)

对于需要大规模、多 agent 协作的任务,用 workflow 工具:agent 写一段 JavaScript 编排脚本,把工作扇出到多个子 agent,分阶段执行并收集结构化结果。

脚本通过 agent(prompt, opts) 运行单个子 agent、pipeline(items, ...stages) 让每个 item 独立走完多个阶段、parallel(thunks) 并发执行,并用 phase()log() 汇报进度;脚本以 return <值> 结束,返回值就是工具结果。

何时用 workflow

只用在工作流或大规模编排被明确要求时。一两个委派直接用 subagent 工具即可,不必写脚本。

Ralph 循环

ralph 工具运行一种固定的前台工作流:围绕一个不可变目标,依次启动多个全新子 agent(每个 Ralph Round 一个),共享 workspace 作为长期记忆,并以一份有界的结构化交接(状态、摘要、证据、后续步骤、阻塞说明)在轮次之间传递状态。

Ralph 只应在用户明确要求"Ralph 循环"或"全新 agent 迭代"时使用。完成与阻塞是 worker 的自报,不是独立评估;普通的长期目标用目标工具(见技能与目标),有界委派与扇出用普通 subagent 或 workflow。

下一步

本页目录