深度调研:Subagents 生态与工具版图(含 Cline / OpenCode)
日期:2026-03-17
Executive Summary
“Subagents”在各家产品里指向同一类需求:把一个长任务拆成多个相对独立的工作流,分别在隔离的上下文里执行,再把结果汇总回主线程。差异主要落在三处:是否支持并行与后台执行、子 agent 的“可配置面”(prompt、工具、权限、模型、MCP)、以及能否把这套机制从 IDE 延伸到 CLI、CI、GitHub 自动化。
本次调研结论偏向工程落地视角:如果你要的是“可控的多线程编排”和“把噪声输出隔离”,Cursor / Claude Code / Codex 的 subagents 机制已经产品化到可作为默认范式使用。如果你要的是“开源、模型可插拔、以 MCP 为扩展总线”,Cline 和 OpenCode 更适合做可定制的基础设施层,其中 OpenCode 在“终端 + server + GitHub agent + ACP”上更像一个可嵌入的 agent runtime。(Cline 与 OpenCode 都显式支持 MCP 扩展)(Cline docs[1],OpenCode CLI docs[2])
1. 概念对齐:这里说的 subagents 是什么
在工具语境里,subagent 通常同时具备三件事:
•上下文隔离:每个子 agent 拿到一份独立上下文窗口,避免主对话被探索性输出、日志、网页 DOM 等“污染”。(Cursor Subagents[3])•可并行调度:多个子 agent 同时跑,主 agent 等待全部或部分完成后汇总。(Cursor Subagents[4],Codex Subagents[5])•角色化配置:对 prompt、工具权限、模型等做差异化配置,把“探索/执行/浏览器/命令执行”拆成可复用角色。(Cursor Subagents[6],Codex Subagents[7])
你的问题是“深度调研 sub agents”。因此本文把 subagents 的能力拆成更贴近调研任务的维度:信息获取、证据记录、交叉验证、以及写作/结构化输出。
2. 能力拆解:深度调研场景需要哪些子 agent
深度调研可以拆为 5 类子任务,每类都适合单独子 agent 化:
1.资料定位与目录化:把“该查什么”变成一串可重复的 query、并产出带注释的来源清单。2.关键页面抽取:对少数权威页面做全文抓取,提炼可引用段落与约束条件。3.对比框架构建:把不同工具映射进同一张“能力-接口-限制”的矩阵,避免只做 feature list。4.交叉验证与反证:对单一来源的主张做二次检索,标注不确定性。5.输出成稿:将前述结果收敛为可读的叙事和可复用表格。
这也是为什么产品型 subagent 通常内置 Explore/Bash/Browser 三类:探索、命令日志、网页噪声都天然适合隔离。(Cursor built-in subagents[8])
3. 工具版图:主流产品如何“产品化 subagents”
3.1 Cursor
Cursor 明确把 subagents 作为“上下文隔离 + 并行执行 + 专业化配置”的一等能力,并提供内置 Explore/Bash/Browser 三类子 agent,强调把噪声输出留在子上下文里,仅把总结回传到主上下文。(Cursor Subagents[9])
关键点:
•前台/后台:区分 foreground blocking 与 background 非阻塞,适合长任务并行。(同上)•可复用配置:支持自定义 subagent 文件,且兼容 .claude/agents/、.codex/agents/ 的目录布局。(同上)
3.2 Claude Code
Claude Code 将 subagents 定义为“独立上下文窗口 + 自定义 system prompt + 工具访问限制 + 独立权限”的专门助手,并且强调用 subagents 做成本控制(路由到更快更便宜模型)、专门化行为、以及避免主线程被探索污染。(Claude Code subagents 文档摘录自官方页:Anthropic Claude Code Subagents[10])
文档中给出的内置 subagents 包含:
•Explore:快速、只读、用于代码搜索与探索(文档说明 Explore 为 read-only、用于搜索与理解代码库)。(同上)•Plan / General-purpose / Bash:用于计划、通用多步、终端命令隔离等。(同上)
3.3 OpenAI Codex (CLI/App)
Codex 的 subagent workflow 目标非常明确:并行化高度可并行的复杂任务,并把“显式请求才会 spawn subagents”作为默认策略,避免无意间放大 token 成本。(Codex Subagents[11],Codex CLI Features[12])
关键点:
•显式触发:文档强调只有在你明确要求时才会生成 subagents。(Codex CLI Features[13])•继承沙箱与审批:子 agent 继承主线程的 sandbox 与 approvals 策略。(Codex Subagents[14])•自定义 agent:通过 .codex/agents/(项目)或 ~/.codex/agents/(用户)用 TOML 定义自定义 agent。(同上)
3.4 Windsurf Cascade(“规划 agent”作为后台常驻)
Windsurf Cascade 的文档明确写到:后台有一个“专门的 planning agent”持续优化长期计划,而你当前选的模型执行短期动作,并用 Todo list 跟踪复杂任务。(Windsurf Cascade Overview[15])
这类设计本质上也是 subagent 化,只是它把“计划”做成常驻后台角色,而不是按需 spawn。
3.5 GitHub Copilot Agents(偏平台化)
GitHub Docs 将 Copilot agents 作为一个体系来介绍,并提供“如何使用 agent”“如何管理 agent”“coding agent 在 GitHub 上跑并提 PR”等入口。(Use GitHub Copilot agents[16])
从深度调研角度,Copilot 的意义更像“把 agent 运行时搬到平台侧”,方便组织级可见性和治理,但它的文档入口本身更多是产品使用说明而非低层编排机制说明。(同上)
3.6 Aider(非 subagents,但覆盖调研所需的执行闭环)
Aider 不是典型“多子 agent 并行编排”的产品形态,但它把“自动 lint + 自动 test + 失败后尝试修复”作为闭环能力,适合作为终端里可控的执行器,搭配你自己的“调研 agent / 规划 agent”使用。(Aider linting & testing[17])
4. 重点:Cline
Cline 的官方定位是“住在编辑器里的 AI coding agent”,能读写文件、跑命令、用浏览器,并强调“你批准每一次变更”,以及“模型/供应商自由与透明可控成本”。(What is Cline[18])
在 subagents 语义上,Cline 更像“单 agent + 可扩展工具总线”:
•执行面:文件读写、终端命令、浏览器能力都在产品描述中明确列出。(同上)•扩展面(MCP):Cline 用 MCP 作为主要扩展机制,并将 MCP 描述为标准化的上下文与工具接入协议。(Cline MCP Overview[19])
对“深度调研 sub agents”的意义在于:你可以把调研拆成多个“工具化步骤”,把外部数据源(文档、issue、数据库、网页抓取)通过 MCP 变成可调用工具,然后在 Cline 的 Plan/Act 工作流里做分阶段推进。(Plan/Act 在 Cline 文档目录里作为核心 workflow 出现)(What is Cline[20])
5. 重点:OpenCode
OpenCode 的官方文档把它描述为一个可脚本化的 CLI/TUI 入口,并且显式暴露“agent 管理”“MCP 管理”“server/web 模式”“GitHub agent”“ACP server”等能力。(OpenCode CLI docs[21])
对深度调研而言,OpenCode 值得关注的点更偏“可嵌入 runtime”:
•可编程入口:opencode run 支持非交互式调用,适合做流水线式调研任务。(同上)•自定义 agent:opencode agent 提供创建与列出 agent 的管理命令。(同上)•MCP 一等公民:opencode mcp 提供 add/list/auth/debug 等命令,说明它把外部工具接入当作长期能力来设计。(同上)•服务化:opencode serve/opencode web 能起 HTTP server,降低“每次运行冷启动 MCP”的成本,并支持 --attach 复用后端。(同上)•协议化:opencode acp 启动 ACP(Agent Client Protocol)server,说明它不只把 agent 当成一个 CLI 产品,更在尝试提供可被其他系统集成的接口层。(同上)
如果你的目标是“把深度调研流程产品化成你自己的基础设施”,OpenCode 的组合拳更像是“CLI + daemon + integrations + protocols”的基座。
6. 对比矩阵(面向深度调研 / 多子任务编排)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
来源:Cursor/Claude Code/Codex/Windsurf/Cline/OpenCode/Aider 的官方文档页。(见各节链接)
7. 选型建议(按你可能的目标)
7.1 你要的是“可解释的并行调研编排”
优先看 Cursor / Claude Code / Codex 这类“subagents 一等公民”的产品化路径。
•Cursor 的优点是“内置三类噪声隔离 subagent + 明确的 foreground/background”。(Cursor Subagents[22])•Codex 的优点是“显式触发 subagents + 聚合输出 + 可定义自定义 agents”。(Codex Subagents[23])
7.2 你要的是“开源 + MCP 作为统一扩展口”
Cline 与 OpenCode 都把 MCP 放在核心位置,但风格不同:
•Cline 更像 IDE 里的透明执行者,你通过 workflow 组织复杂任务,MCP 提供外部工具能力。(What is Cline[24],Cline MCP Overview[25])•OpenCode 更像 agent runtime:既能交互,也能 run 脚本化,还能 serve/web 以及 GitHub agent、ACP server。(OpenCode CLI docs[26])
7.3 你要的是“长任务规划常驻 + 自动推进”
Windsurf 的“后台 planning agent + Todo list”是很有代表性的设计。(Windsurf Cascade Overview[27])
8. 未覆盖与后续补洞
由于 Continue 的官方文档站点在本次抓取中多次超时,我没有把 Continue 的一手原文纳入引用链。若你希望把 Continue 也纳入同一张矩阵,我建议后续改用其 GitHub 仓库内的文档源文件或离线镜像进行补充,并按同样维度复核。
References
1.Cline 文档首页与能力描述(安装、模型、Plan/Act workflow、文件/命令/浏览器、透明审批):https://docs.cline.bot/introduction/welcome[28]2.Cline MCP 概览(MCP 作为标准化工具/上下文接入协议):https://docs.cline.bot/mcp/mcp-overview[29]3.OpenCode CLI 文档(agent/mcp/server/web/github/acp 等命令与能力):https://opencode.ai/docs/cli/[30]4.Cursor Subagents 文档(定义、内置 Explore/Bash/Browser、foreground/background、自定义 subagents 目录兼容):https://cursor.com/docs/agent/subagents[31]5.Anthropic Claude Code Subagents 文档(subagents 定义、内置 Explore/Plan 等、配置字段):https://docs.anthropic.com/en/docs/claude-code/subagents[32]6.OpenAI Codex CLI features(提到 subagents、显式触发、审批/沙箱等):https://developers.openai.com/codex/cli/features[33]7.OpenAI Codex Subagents(subagent workflows、管理与自定义 agents):https://developers.openai.com/codex/subagents[34]8.Windsurf Cascade 概览(Code/Chat mode、后台 planning agent、Todo list、tool calling 等):https://docs.windsurf.com/windsurf/cascade/cascade[35]9.GitHub Copilot Agents 入口页(agents、manage agents、coding agent 等导航):https://docs.github.com/en/copilot/how-tos/use-copilot-agents[36]10.Aider linting & testing(自动 lint/test 与修复闭环):https://aider.chat/docs/usage/lint-test.html[37]
References
[1] Cline docs:https://docs.cline.bot/introduction/welcome[2]OpenCode CLI docs:https://opencode.ai/docs/cli/[3]Cursor Subagents:https://cursor.com/docs/agent/subagents[4]Cursor Subagents:https://cursor.com/docs/agent/subagents[5]Codex Subagents:https://developers.openai.com/codex/subagents[6]Cursor Subagents:https://cursor.com/docs/agent/subagents[7]Codex Subagents:https://developers.openai.com/codex/subagents[8]Cursor built-in subagents:https://cursor.com/docs/agent/subagents[9]Cursor Subagents:https://cursor.com/docs/agent/subagents[10]Anthropic Claude Code Subagents:https://docs.anthropic.com/en/docs/claude-code/subagents[11]Codex Subagents:https://developers.openai.com/codex/subagents[12]Codex CLI Features:https://developers.openai.com/codex/cli/features[13]Codex CLI Features:https://developers.openai.com/codex/cli/features[14]Codex Subagents:https://developers.openai.com/codex/subagents[15]Windsurf Cascade Overview:https://docs.windsurf.com/windsurf/cascade/cascade[16]Use GitHub Copilot agents:https://docs.github.com/en/copilot/how-tos/use-copilot-agents[17]Aider linting & testing:https://aider.chat/docs/usage/lint-test.html[18]What is Cline:https://docs.cline.bot/introduction/welcome[19]Cline MCP Overview:https://docs.cline.bot/mcp/mcp-overview[20]What is Cline:https://docs.cline.bot/introduction/welcome[21]OpenCode CLI docs:https://opencode.ai/docs/cli/[22]Cursor Subagents:https://cursor.com/docs/agent/subagents[23]Codex Subagents:https://developers.openai.com/codex/subagents[24]What is Cline:https://docs.cline.bot/introduction/welcome[25]Cline MCP Overview:https://docs.cline.bot/mcp/mcp-overview[26]OpenCode CLI docs:https://opencode.ai/docs/cli/[27]Windsurf Cascade Overview:https://docs.windsurf.com/windsurf/cascade/cascade[28]:https://docs.cline.bot/introduction/welcome[29]:https://docs.cline.bot/mcp/mcp-overview[30]:https://opencode.ai/docs/cli/[31]:https://cursor.com/docs/agent/subagents[32]:https://docs.anthropic.com/en/docs/claude-code/subagents[33]:https://developers.openai.com/codex/cli/features[34]:https://developers.openai.com/codex/subagents[35]:https://docs.windsurf.com/windsurf/cascade/cascade[36]:https://docs.github.com/en/copilot/how-tos/use-copilot-agents[37]: https://aider.chat/docs/usage/lint-test.html
夜雨聆风