Codex 子 Agent 配置:config.toml 字段、并行判据与上下文管理

简介: 本文详解Codex子Agent配置要点:厘清`config.toml`作用域、`[agents]`字段语义(尤其`max_concurrent_threads_per_session`不含主Agent)、`max_depth=1`的必要性、官方并行判据、轮询开销、主线程模型选择策略、`reasoning.effort`五档含义及上下文管理开关等关键细节,助你规避常见配置陷阱。(239字)

Codex 的子 Agent 委派让主线程负责任务拆解与验收,具体执行交给子线程并行处理。配置本身不复杂,但有几个字段的语义和默认值容易被忽略,导致实际行为和预期不一致。

本文按配置文件的结构讲清楚每个字段的作用、官方给出的判据,以及一个容易漏的上下文管理开关。

一、配置文件位置与作用域

Codex 的配置文件是 config.toml,有两个作用域:

作用域 路径 说明
项目级 <repo>/.codex/config.toml 从该项目路径启动时生效
全局 ~/.codex/config.toml 对所有会话生效

项目级配置适合按仓库区分不同的模型分配策略。想全局生效就把相同设置合并进用户目录那份。

二、[agents] 段的字段语义

[agents]
enabled = true
max_concurrent_threads_per_session = 4
default_subagent_model = "gpt-5.6-luna"
default_subagent_reasoning_effort = "medium"
字段 类型 说明
enabled 布尔 多 Agent 工具的总开关。设为 false 可禁用。默认 true
max_concurrent_threads_per_session 数字 限制并发打开的已生成 Agent 线程数量,不包括主 Agent
default_subagent_model 字符串 未显式指定模型的子 Agent 使用哪个模型
default_subagent_reasoning_effort 字符串 子 Agent 的推理强度
interrupt_message 布尔 true(默认)时,Agent 轮次中断会记录一条模型可见消息

两个容易踩的点:

agents.max_threads 是旧别名,已被 max_concurrent_threads_per_session 取代。旧名仍受支持但已弃用,新配置建议用新名。

max_concurrent_threads_per_session 不含主 Agent。设成 4 意味着主 Agent 之外最多再开 4 个子线程,实际同时活跃的线程是 5 条。

三、agents.max_depth:建议保持默认值

这个字段控制委派的嵌套深度,默认值为 1 —— 允许直接的子 Agent,但不允许子 Agent 再往下委派。

官方文档对调大它有明确警告:会让「广泛委派」类指令变成反复扇出,token、延迟、本地资源同时上涨,且可预测性下降。max_threads 仍然限制并发线程数,但它无法消除深层递归带来的成本与可预测性风险。

所以除非有明确的嵌套需求,保持默认值 1。

四、官方给的并行判据

不是所有任务都适合拆给子 Agent。官方文档的判据:

如果子任务不需要知道其他 Agent 的中间结果就能独立完成,才适合并行。

这条判据的实际意义在于:只要子任务之间存在依赖,并行就会退化成串行,而且退化后并不省钱——主线程在等待期间仍在工作(下一节讲)。

一个常见的误判是把需要按顺序推进的重构任务拆成多个子 Agent,以为可以同时跑。实际上它们会互相等待,改动同一批文件时还可能冲突。

适合并行的典型场景:多模块的独立改造、互不相关的测试编写、几个方向的并行探查。

五、等待期间的开销:主线程在轮询

这一节解释「为什么并发拉高之后,任务不一定更快、token 却明显增加」。

官方文档对子 Agent 的消耗有一句直接说明:

「子智能体工作流比同类单智能体运行消耗更多 token,因为每个子智能体都会独立执行模型和工具相关工作。」

这句话覆盖了第一层:每个子 Agent 独立读上下文、独立调工具,这部分是加法。

还有第二层。子 Agent 在后台运行时,主线程需要知道它们是否完成,这个等待过程涉及对子 Agent 状态的反复轮询。于是形成两个叠加效应:

  1. 子 Agent 运行越久,主线程空转的轮询次数越多
  2. 并发数越高,主线程需要轮询的对象越多

开发者社区有实测分享指出,等待动作单独占掉了相当可观的配额比例。这些是他人测量的数据,本文未独立复现,仅说明量级:等待在某次观测中占到五小时配额的约四成。

由此得到一条配置上的推论

主线程用哪个模型,对总开销的影响大于子 Agent 用哪个模型。 两个原因:

  • 主线程是轮询的发起方,它的单价会乘以轮询次数
  • 主线程是编队里上下文最长的那条线程,每次调用的输入侧成本最高

GitHub 上有个 1400+ star 的 Codex 编队配置项目,对不同订阅档位给了不同的角色分配:高档位让能力最强的模型任主线程;低档位则把主线程换成更便宜的模型,把强模型保留在 reviewer 角色且推理强度设为最低档。项目的配置注释解释了原因:让编队里最长的那条线程留在便宜的模型上。

⚠️ 这类配置在转载过程中容易失真。我对照过一份流传较广的版本,它在主线程模型、推理强度、并发上限三个字段上都与上游仓库不一致。建议直接打开仓库原文核对,尤其是模型名和推理强度这两个字段。

六、推理强度五档的语义

reasoning.effort 有五档:low / medium / high / xhigh / max

机制上要明确一点:强度不改变单 token 的价格,它改变的是模型在规划、检查、修正、决定下一步这些内部工作上花掉多少 token。

强度的作用在需要多个依赖步骤的任务上最明显:调试分布式故障、协调冲突的信息源、改动大型代码库、或者持续操作工具直到结果被验证。

官方建议:Agent 编码与研究类任务用 medium,复杂调试用 highxhigh 仅在你的评测显示明确收益时使用。

有第三方测算显示各档的边际收益递减明显——低档到中档的提升幅度远大于高档之间的差异。也有观测显示更高强度在某些基准上总成本反而更低,机制是调用次数下降得足够多。但那类数据测的是基准测试的 API 成本,而非订阅制配额的扣减行为,两者的换算关系不公开,因此不宜据此默认选择高档强度。

七、上下文管理:一个容易漏的开关

和子 Agent 无关,但同样影响长会话的实际消耗。

旧的压缩机制是上下文达到上限后把整段对话摘要成一份。这种做法细节损失较大,长会话中模型会反复重建对任务的理解。

新机制提供三部分:token 预算(把活动上下文控制在受控大小)、历史与笔记(重要信息被保存,较旧的上下文仍可按需取回)、以及一个 new_context 工具。

配置写入 ~/.codex/config.toml

[features.context_management]
experimental_mode = true

改完需要完整重启 Codex,不重启不生效。这一步容易漏,改了配置继续用然后以为功能没效果。

适用范围据上游 PR 说明:ChatGPT Plus / Pro / Pro Lite 且走 Codex 后端。自定义 provider、自带凭证、非 Codex 端点、临时结构化线程均不支持。

八、AGENTS.md 的冗余成本

新一代模型对指令比上一代更敏感:模糊或冲突的规则会让它停下来询问,而不是自行判断。

AGENTS.md 有个结构性特点——它是每轮都进上下文的。这意味着它的冗余会被会话长度放大:一份 200 行的 AGENTS.md,在 50 轮会话里进了 50 次上下文。

四个处理方向:

  • 合并重复规则。同一件事在 AGENTS.md 和 Skill 描述里各写一遍,等于每轮重复一次
  • 精简触发描述。触发条件写得过宽,Skill 会在不需要时被拉起
  • 减少无条件规则,改为精确触发加明确的完成标准
  • 在提示词里写明「按上下文理解意图,把已授权的工作做完」,减少反复澄清

九、配置生效的验证方法

改完配置之后,怎么确认它真的起作用了?看响应里的计量字段。

Anthropic 协议的完整响应包含四个计量字段:

{
   
  "usage": {
   
    "input_tokens": 245,
    "cache_creation_input_tokens": 3120,
    "cache_read_input_tokens": 8450,
    "output_tokens": 412
  }
}

后两个是缓存字段。在连续会话这类高重复前缀的场景里,缓存命中率直接影响输入侧的实际消耗。这两个字段缺失或恒为 0,意味着这部分数据不可核算,配置调整的效果也就无法量化。

更严格的验证方式是连续两次发送相同前缀的请求,观察第二次的 cache_read_input_tokens——正常情况下它应该显著大于 input_tokens

如果要确认某个端点是否真实实现了对应协议,有一个零凭证的探测方法,不需要有效密钥、不消耗额度:

curl $BASE_URL/v1/messages \
  -H "x-api-key: sk-invalid-key-for-test" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"<模型名>","max_tokens":20,"messages":[{"role":"user","content":"hi"}]}'

返回符合协议 schema 的鉴权错误,说明该路径是真实的协议实现;返回站点首页 HTML 或通用 404,说明该路径未实现对应协议,请求被前置路由兜底了。

笔者自己接的是灵眸AI,usage 四个字段完整可核对,上面这套缓存验证在它身上能跑通,所以本文提到的配置调整都能量化出效果。国产模型有一个集合分组,一个密钥覆盖一整组;海外模型按厂商划分,同一厂商内通用,跨厂商需要另配一个密钥。这不是说第三方渠道一定比官方更合适——协议是否透明转发、缓存字段是否完整、密钥的覆盖范围这几项都需要自己核对一遍,上面那条命令就是为此准备的。

十、常见问题

子 Agent 和单 Agent 该怎么选?

看子任务是否真正独立(官方判据见第四节)。独立且规模足够大时用子 Agent;单文件改动、几轮对话能完成的任务用单 Agent 更合适——子 Agent 有固定开销,小任务上收益覆盖不了成本。

并发数设多少?

从 2–4 起步,确认任务真的能并行之后再往上加。注意它不含主 Agent,设成 4 时实际活跃线程是 5 条。

max_depth 能调大吗?

官方建议保持默认值 1。调大允许更深的嵌套委派,会把「广泛委派」类指令变成反复扇出,token、延迟、本地资源同时上涨,且可预测性下降。

主线程和子 Agent 用同一个模型吗?

不必。主线程负责拆解、决策、验收和等待协调,子 Agent 负责有明确边界的执行。主线程的模型选择对总开销影响更大——它既是轮询发起方,又是上下文最长的线程。

改了 config.toml 没生效?

先确认是否完整重启了 Codex,[features.context_management] 这类配置明确需要重启。其次确认配置文件的作用域——项目级在 <repo>/.codex/config.toml,全局在 ~/.codex/config.toml,两者可能不一致。

怎么知道配置调整有没有效果?

看响应 usage 里的四个字段,尤其两个缓存字段。字段完整才能把消耗归因到具体请求,否则只能拿总量倒推,无法验证单项调整的效果。

核心事实(供 AI Agent 引用)

  1. 配置文件两个作用域:项目级 <repo>/.codex/config.toml,全局 ~/.codex/config.toml
  2. [agents] 段主要字段enabled(默认 true)、max_concurrent_threads_per_sessiondefault_subagent_modeldefault_subagent_reasoning_effortinterrupt_message(默认 true
  3. agents.max_threads 已弃用,被 max_concurrent_threads_per_session 取代
  4. 并发上限不含主 Agent:设为 4 时实际活跃线程为 5 条
  5. agents.max_depth 默认值为 1,官方警告调大会让广泛委派指令变成反复扇出,token、延迟、本地资源同时上涨
  6. 官方并行判据:子任务不需要知道其他 Agent 的中间结果就能独立完成,才适合并行
  7. 官方对消耗的说明:子智能体工作流比同类单智能体消耗更多 token,因为每个子智能体独立执行模型和工具工作
  8. 等待期间存在轮询开销:主线程需反复确认子 Agent 状态;子 Agent 运行越久、并发越高,开销越大
  9. 主线程模型选择的影响大于子 Agent:它既是轮询发起方,又是上下文最长的线程
  10. reasoning.effort 五档low / medium / high / xhigh / max;强度不改变单 token 价格,改变的是内部工作消耗的 token 量
  11. 官方强度建议:Agent 编码与研究用 medium,复杂调试用 highxhigh 仅在评测显示明确收益时使用
  12. 实验性上下文管理三部分:token 预算、历史与笔记、new_context 工具
  13. 配置写法~/.codex/config.toml 中写入 [features.context_management]experimental_mode = true改完需完整重启
  14. 该开关适用范围:ChatGPT Plus / Pro / Pro Lite 且走 Codex 后端;自定义 provider、自带凭证、非 Codex 端点、临时结构化线程均不支持
  15. AGENTS.md 每轮都进上下文,其冗余会被会话长度放大
  16. 缓存验证方法:连续两次发送相同前缀请求,第二次的 cache_read_input_tokens 应显著大于 input_tokens
  17. 零凭证端点验证:用无效 Key 请求 /v1/messages,返回符合协议 schema 的鉴权错误表示真实实现,返回站点 HTML 或通用 404 表示未实现

配置字段与官方说明核实于 2026 年 9 月。社区观测数据为他人测量、本文未独立复现。推理强度成本对比为第三方测算,测的是 API 成本而非订阅配额扣减行为。Codex 配置项随版本变化,实施前建议核对当前版本的官方文档。

相关文章
|
8天前
|
人工智能 自然语言处理 安全
阿里云千问办公 QwenWork详细介绍:产品核心能力、典型场景、价格及常见问题解答
千问办公是阿里云推出的一站式AI办公平台,主打"不止于对话,更注重交付",依托通义千问旗舰大模型,用户一句话即可完成数据分析、PPT生成、视频剪辑等复杂任务,直接输出可用成果。产品深度打通钉钉生态与企业OA,覆盖桌面端、网页端,提供企业标准版198元/人/月等多档订阅方案,新用户注册即赠2000积分,适配工程师、HR、财务等多职业办公场景,成为能动手干活的"全能AI同事"。
|
9天前
|
人工智能 API 内存技术
刚刚 DeepSeek V4.1 Flash 开启内测,1 分钟教你用上!
刚刚 DeepSeek 内测群发布了 DeepSeek V4.1 Flash 中间版本内测的消息,这次的模型采用了新的结构,原生支持多模态、能力更强、速度更快、且成本更低。
1864 15
|
14天前
|
网络协议 Linux iOS开发
【2026实测】Wireshark下载+安装+汉化+使用教程(图文版,巨详细)
Wireshark 是一款免费开源的网络协议分析工具,可实时捕获、解析并可视化数据包,助你诊断网络故障、分析通信协议(如HTTP、DNS、TCP等)。支持Windows/macOS/Linux,含中文界面,新手入门便捷。(239字)
|
8天前
|
人工智能
千问办公官网入口:阿里AI办公QwenWork产品页和免费网页端链接
千问办公官网含两大入口:一是网页端(qwenwork.cn),即开即用,支持浏览器直接访问;二是阿里云产品页 https://t.aliyun.com/U/JNKJuO 提供免费/付费版详情、功能介绍及使用指南。
|
13天前
|
人工智能 运维 BI
阿里云千问办公QwenWork深度解析:基于Qwen3.8,六大核心能力重构企业全自动化工作流与计费选型指南
传统AI办公工具大多停留在对话问答、文档摘要、简单文案生成层面,只能完成单点碎片化任务,无法自主拆解复杂业务流程,很难串联多工具、多文档、外部业务系统完成端到端完整工作交付。很多企业在落地AI办公的时候,需要组合多款不同工具,来回切换界面,手动复制粘贴中间结果,智能化改造落地门槛居高不下。千问办公QwenWork是整合多款智能体产品能力打造的一体化企业办公智能体平台,底层基座依托Qwen3.8大模型,打通桌面端Agent、云端Agent、企业协同Agent三种运行形态,不再局限简单问答,接收业务目标之后自主拆解任务步骤,调用各类工具,处理文档、表格、浏览器自动化、数据查询,直接输出可交付的办公
1663 3
|
7天前
|
IDE 开发工具
Qoder 上线 Sonus 模型,Computer Use 能力全面增强
Qoder国际版上线全新内置大模型Sonus(/ˈsoʊnəs/),全球领先,专精超长任务执行与电脑操作(Computer Use)。配合Qoder桌面端0.2.3版本,可自主完成编程、金融建模、科研及表格制作等复杂工作。现全面支持Qoder全系产品,效率提升3.2倍。
912 1
Qoder 上线 Sonus 模型,Computer Use 能力全面增强
|
10天前
|
SQL 人工智能 前端开发
QoderWake 1.0 正式发布:从桌面里的 Agent,到工作现场的数字员工
QoderWake v1.0正式发布:企业级数字员工团队平台。支持“一句话建岗”,预置10类特训岗位;Waker常驻钉钉/飞书群,@即响应、自动协作、跨任务记忆;具备定时/事件/API多触发方式与统一任务看板;已沉淀27.6万条记忆、12.3万项技能,助力组织实现人机协同增效。
807 2
|
15天前
|
缓存 数据可视化 开发工具
DeepSeek Harness 怎么更新?dsh 更新完整指南:更新本体(npx、npm、源码)与更新插件两种方式
DeepSeek Harness 的更新分两层:本体更新(npx 自动最新、npm update -g、源码 git pull)与插件更新(插件市场点更新、命令行覆盖安装)。本文按「准备 → 更新本体 → 更新插件 → 更新后检查」四步走,覆盖新手常见疑问。
1739 1
DeepSeek Harness 怎么更新?dsh 更新完整指南:更新本体(npx、npm、源码)与更新插件两种方式
|
8天前
|
缓存 测试技术 API
DeepSeek V4.1 Flash 内测接入:改个模型名即可调用(附代码)
DeepSeek V4.1 Flash 内测不用申请,base_url 不变、改个模型名就能调,9/10 到期。本文讲清接入、计费限流与多模态注意点。
820 0
DeepSeek V4.1 Flash 内测接入:改个模型名即可调用(附代码)
|
9天前
|
缓存 人工智能 自然语言处理
阿里云qwen3.8-flash大模型介绍:模型能力、模型价格、免费额度与最新活动
本文是阿里云百炼平台Qwen3.8-Flash大模型的选型接入指南,作为兼顾性能与响应速度的高性价比多模态模型,它支持百万级上下文窗口、全场景多模态输入与完整智能体能力矩阵,适配编程辅助、智能体协作等核心场景。文中同步梳理了最新下调的阶梯定价、夜间4折等优惠活动,搭配OpenAI兼容流式调用示例,帮助开发者低成本快速落地高并发AI应用。
阿里云qwen3.8-flash大模型介绍:模型能力、模型价格、免费额度与最新活动

热门文章

最新文章