Skip to content

子代理工作流让 Codex 在主线程专注需求和决策的同时,把探索、测试、日志分析等"噪音工作"分发给并行 Agent 处理,再把结果摘要汇总回来。这篇文章解释核心概念:为什么需要子代理、如何手动触发并行工作流、以及不同任务应该选哪个模型和推理强度。

Codex 子代理工作流概念

Codex 可以通过启动并行子代理来处理复杂任务——多个专用 Agent 同时探索、分析或执行互相独立的工作,再把结果汇总回主线程。

本文讲核心概念和权衡取舍。子代理的具体配置与示例参考:子代理并行工作流


为什么要用子代理

即使有大上下文窗口,模型也有局限。如果把探索记录、测试日志、错误堆栈、命令输出这些"过程噪音"都塞进主对话(你在那里定义需求、约束和决策),会随着时间推移降低可靠性。

这通常被描述为:

  • 上下文污染(Context pollution):有用信息被大量中间输出淹没
  • 上下文腐化(Context rot):随着对话充满无关细节,模型表现逐渐下降

关于上下文腐化的背景,可参考 Chroma 的研究

子代理工作流把噪音工作从主线程剥离:

  • 主 Agent:专注需求、决策和最终输出
  • 子代理:并行运行探索、测试或日志分析
  • 汇总摘要:子代理返回提炼后的结论,而不是原始中间输出

并行执行还能节省时间——独立工作可以同时进行;大型任务也变得更可处理,例如 Codex 可以把数百万 token 的文档拆成小块分别分析,把精炼后的结论汇回主线程。

起步建议:对读密集型任务(探索、测试、分类、摘要)优先使用并行 Agent;写密集型并行工作流需要更谨慎——多个 Agent 同时编辑代码会产生冲突,增加协调开销。


核心术语

术语含义
Subagent workflowCodex 运行并行 Agent 并合并结果的工作流
SubagentCodex 启动的、负责特定任务的委托 Agent
Agent threadCLI 里每个 Agent 的独立线程,可用 /agent 切换查看

如何触发子代理工作流

Codex 不会自动启动子代理——只有在你明确要求并行工作时才会触发。

实际操作中需要用明确指令,例如"启动两个 Agent"、"并行委托这项工作"或"每个要点用一个 Agent"。子代理工作流比单 Agent 消耗更多 token,因为每个子代理都要独立调用模型和工具。

一个好的子代理 Prompt 应该说明:如何划分工作、是否要等所有 Agent 完成再继续、以及期望返回什么摘要或输出。

text
用并行子代理 Review 这个分支。启动一个负责安全风险,一个负责测试覆盖漏洞,一个负责可维护性。等三个都完成后,按类别汇总结论并附上文件引用。

模型与推理强度选择

不同的 Agent 需要不同的模型和推理设置。

如果不指定模型或 model_reasoning_effort,Codex 会根据任务自动选择平衡智能、速度和成本的配置——对快速扫描任务可能选 gpt-5.4-mini,对复杂推理则选高强度的 gpt-5.4。如果需要精细控制,可以在 Prompt 里指明,或在 Agent 配置文件中直接设置 modelmodel_reasoning_effort

模型选择

模型适用场景
gpt-5.4大多数任务的首选。编码、推理、工具调用综合能力强。主 Agent 和需要协调复杂多步工作的 Agent 用这个
gpt-5.4-mini速度优先、效率优先的场景,如探索、读密集扫描、大文件 Review,或给主 Agent 返回提炼结果的并行 Worker
gpt-5.3-codex-sparkChatGPT Pro 用户可用的研究预览模型,适合纯文本迭代对延迟要求极高的场景

推理强度(model_reasoning_effort

强度使用时机
highAgent 需要追踪复杂逻辑、检查假设或处理边界案例时(如 Reviewer、安全分析 Agent)
medium大多数 Agent 的均衡默认值
low任务简单且速度优先时

更高推理强度会增加响应时间和 token 消耗,但对复杂工作可以提高质量。详情参考:模型选择基础配置配置参考


常见问题

Q: 我什么时候应该用子代理,什么时候不需要?

A: 适合子代理的场景:读密集型探索(多个角度同时分析)、独立任务并行(互不依赖的检查)、需要从噪音输出中提炼摘要。不适合:Agent 之间需要频繁协调状态,或任务本身非常线性且依赖前一步结果。

Q: 子代理的 token 消耗大吗?

A: 是的,每个子代理都会独立运行模型和工具调用。建议在读密集任务(扫描、分析)上用 gpt-5.4-mini 控制成本,只在真正需要深度推理的子任务上用 gpt-5.4

Q: 子代理的结果怎么返回到主 Agent?

A: 通过 Prompt 明确告诉 Codex 要等待所有子代理完成,并以摘要形式汇总。Codex 会合并各子代理的输出作为主线程的上下文,而不是把原始中间输出全部灌进来。