用 AI 写代码久了,你大概率遇到过一个怪现象:同一个会话聊得越久,它反而越笨。
一开始它思路清晰、改得又快又准。可一旦你让它把整个项目翻一遍、跑一堆测试、再分析几屏报错日志,聊到后面它就开始丢三落四,前面定好的需求它忘了,给的建议也飘了。不是模型变蠢了,是上下文被塞满了。
这事有两个专门的说法:Context pollution(上下文污染),有用的信息被一堆中间过程的噪音(探索笔记、测试日志、报错堆栈、命令输出)埋掉了;Context rot(上下文腐烂),对话越填越满,相关性越来越低,性能就一路往下掉。
Codex 现在给了个挺漂亮的解法:subagents(子代理)。
简单说,就是让主 agent 当包工头,把脏活累活派给一群专门的小弟并行去干,干完只把结论汇报回来,过程中的那些噪音根本不进主线程。

解决什么问题?
核心就一件事:让主线程保持干净。 主 agent 只管最要紧的,需求、决策、最终产物。那些会产生大量噪音的活儿,比如翻代码库、跑测试、啃报错日志,全甩给子代理。 子代理在自己的独立线程里折腾,折腾完只把提炼过的结论返回来,原始的一大堆中间输出留在它自己那儿,不污染主对话。 好处是三重的: 主 agent 不会被噪音带偏,思路始终聚焦在真正关心的事上。 省时间,几个能独立跑的任务并行处理,比一件件排队快得多。 能啃大任务,一个几百万 token 的大文档,可以拆成若干小块分给不同子代理,各自消化完返回要点。 举个最直观的例子:让 Codex 审查一个 PR,安全、代码质量、bug、竞态、测试稳定性、可维护性,六个维度,过去得一条线捋下来,又慢又容易顾此失彼。 现在一句话,六个子代理各盯一个维度同时上,最后汇总成一份分类报告。
怎么触发:它不会自作主张
有个关键点得先说清楚:Codex 不会自动派子代理,必须你明确开口要。
为什么这么设计?因为每个子代理都要独立调模型、用工具,比单 agent 跑同样的活更费 token,所以默认权力收着,省钱也省得你意外烧额度。
触发方式就是在 prompt 里直说,比如"派两个 agent""并行处理这部分""一个 agent 负责一个点"。一个好的子代理 prompt 应该讲清楚三件事:活儿怎么分、要不要等所有 agent 都跑完再继续、最后返回什么形式的结论。
给你一个可以直接套用的模板:用并行子代理审查这个分支。一个查安全风险,一个查测试缺口,一个查可维护性。等三个都跑完,按类别汇总结论,并标注对应的文件位置。

适用场景
不是所有任务都适合丢给子代理。 这里有个简单的判断标准: 读多写少的活,放心派。 探索代码库、跑测试、问题分类、内容总结,这类只读不改的任务并行起来最安全,效率提升也最明显。 写多的活,悠着点。 多个子代理同时改代码,很容易撞车,改同一个文件、产生冲突,协调成本反而上去了。这种就别盲目并行,该串行串行。 一句话:并行读没问题,并行写要谨慎。
进阶应用
Codex 自带三个开箱即用的 agent,各有分工:
default——通用兜底,啥都能干的全科选手。
worker——执行型,专门干实现功能、修 bug 这种活。
explorer——侦察型,擅长大量读代码、摸清代码库结构。
如果内置的不够用,你还能自定义 agent。做法是在 ~/.codex/agents/(个人级)或项目里的 .codex/agents/(项目级)放一个 TOML 文件,一个文件定义一个 agent。
每个自定义 agent 文件必须写清三样:
name——agent 的名字,Codex 靠它识别(文件名最好跟 name 一致,但真正作准的是 name 字段)。
description——告诉 Codex 什么时候该用这个 agent。
developer_instructions——这个 agent 的核心行为指令。
其他像 model、model_reasoning_effort、sandbox_mode、mcp_servers 这些可选项,你不写就从主会话继承。也就是说你可以给某个 agent 单独指定模型——比如让快速扫描的用便宜的 gpt-5.4-mini,让需要深度推理的用 gpt-5.5。

关键配置参数
并行虽好,但失控了会烧钱,有几个全局参数(配置文件里的 [agents] 段)帮你兜底:
max_threads——同时打开的 agent 线程上限,默认 6。
max_depth——子代理嵌套的层数,默认 1,意思是允许直接子代理,但不让它再往下套娃。这个建议保持默认往深了开,宽泛的委派指令可能变成层层 fan-out,token 消耗、延迟、本机资源占用全失控。
job_max_runtime_seconds——批量任务里每个 worker 的超时,不设的话默认每个 1800 秒。
管理跑起来的子代理也简单:CLI 里用 /agent 在各个 agent 线程间切换、查看进展;想中途调整方向、停掉某个、或关掉已完成的线程,直接跟 Codex 说就行。
写在最后
子代理这套东西,本质上是把"人怎么管团队"搬到了 AI 身上——你当项目经理,定方向、做决策;具体的脏活累活拆给专人并行干,他们只给你交结果,不把一堆过程细节倒给你。 它不是万能的,费 token、写操作容易冲突、嵌套太深会失控,这些都得心里有数,但对那些天然能拆分、又读多写少的大任务来说,它确实能让 AI 写代码从"一条道走到黑"变成"多线程协作"。 下次再碰到那种又大又杂、单会话越聊越乱的活,别一股脑全塞给一个对话了。试试拆开,派几个小弟并行上。