sourceTitle: "Harness 系列文章之 7:关于 subagent" sourceUrl: "https://x.com/dongxi_nlp/status/2068922428516892998" sourceAuthor: "马东锡 NLP (@dongxi_nlp)" sourcePublishedAt: "2026-06-22" sourceKind: "x/status" sourceLanguage: "zh-CN" sourceCapturedAt: "2026-06-23" sourceCaptureMethod: "user-provided markdown"


Harness 系列文章之 7:关于 subagent

作者:马东锡 NLP (@dongxi_nlp)
原文链接https://x.com/dongxi_nlp/status/2068922428516892998
发布时间:2026年6月22日
互动数据:Likes=13 (更新中), Reposts=13, Quotes=3, Replies=2, Bookmarks=186, Views=27281+


Subagent 是一次 tool call,为 coding agent 会打开一个新的 work context。

在启动一次 subagent 的过程中,发生了什么?

简要回答:Tool call outside, runtime inside。

先看 tool call

为什么说,subagent 的启动其实是一次 tool call。

比如,用户说:“Use a verifier subagent to audit webhook retries。”

如果 Harness 支持,可以直接使用 slash command /delegate 完成 spawn_agent 的 tool call。

tool 跑完以后,parent 会拿到 child handle。

再看 run time

在 harness 文章 3 中,提到,每次 tool call,都改变了 coding agent 的世界状态。

那么 subagent 这次启动的 tool call 之后,发生了什么?来看 runtime inside。

Tool call 是入口,深入一层,Harness 会打开一个新的 work context。

subagent 的 context 与 coding agent 的 context 有什么关系?

Session、Context、Subagent

这三个词容易混在一起。

  • session 是 runtime container:thread、transcript、tools、permissions、resources、status、artifacts。
  • context 是某次 model call 能看到的 projection:instructions、skills、AGENTS.md、recent turns、summaries、tool results、file state。
  • subagent 是 parent session 下面新开的 child session。它可以继承 resources,也会拿到一段被选择过的 context slice。

Tool Call Outside, Runtime Inside

Subagent 这个词有点容易误导,它听起来像一个小一点的智能体。

在 harness 里,它更像一个 managed child runtime。subagent 可以使用很多 parent 也能使用的 Harness resources。例如 tools、skills、AGENTS.md,MCP servers、cwd、sandbox、permissions。

但 shared resources 不代表 shared transcript。child 有自己的 work context。parent 选择投影多少 context 给它。

Fresh Agent、Forked Agent 或 Partial Fork?

parent 选择投射多少 context 给 sub agent,由 subagent 的类型决定。常见的 subagent 有三种 pattern:

  • fresh child:它需要收到 goal、relevant files、已尝试过什么、exact output,以及回答深度。
  • forked child:已经继承了 surrounding context,prompt 应该直接给下一步 directive。
  • partial fork:是最实用的中间方案。它给 child 足够的 local memory 去工作,同时避免 parent history 变成 inherited noise。

这里给出一些例子,我们可以想想,什么样的 subagent 适合对应的 task?

  • Parallelism Agent:一个 subagent 查 database migration,一个 subagent 看 frontend state,一个 subagent 跑 verification
  • Role Specialization:Explorer、Planner、Verifier、Worker、reviewer ...
  • Background Work:例如多个 subagent 完成大型重构、长测试

Subagent workflow

一个实用的 subagent workflow:

如何组织好多个 subagent 完成工作,其实非常具有挑战性。越清晰地定义 subagent 的 role、context、tool 越好。

最后

更多 agents 不保证更好的工作,更多 agents 会制造更多 runtime state。

Harness 必须知道谁在工作、它知道什么、改了什么、什么时候完成、结果如何变成 evidence。

subagent 会为 coding agent 拓展世界,而 harness 则关于新世界是否更好还是更混沌。