教程2026-10-29 · 智涌AI

子 Agent 该不该继承上下文:Codex 与 Claude Code 的 fork 默认值

子 Agent 上下文头图:对比 Codex fork_turns 默认 all 与 none、Claude Code fork 模式与 Agent(fork) 拒绝规则、审查只给 diff 需求测试

派子 Agent 的理由,通常是让它在一个干净的上下文里只看任务说明,干完交回结论。可现在主流编程 Agent 都支持「fork」:子 Agent 直接继承父会话的全部历史。默认值没想清楚,审查员带着作者的思路去审,研究员背着主会话几十万 token 的历史去查,派出去的意义就没了。下面按 Codex 源码、Claude Code 官方文档和两个开源 Skill 仓库的改动(2026-10-29 北京时间查阅)讲清两边的默认行为、各自怎么关,以及 Skill 里该怎么写。

Codex:fork_turns 默认 all

Codex 源码 codex-rs/core/src/tools/handlers/multi_agents_v2/spawn.rs 里,fork_turns 参数没传或为空时取 "all";只认 none 和 all,旧式的数字轮数会按完整历史处理;V2 里再传旧参数 fork_context 会直接报错,提示改用 fork_turns。旧版工具(V1)的 fork_context 是布尔值,不传就是只带初始提示。

也就是说,同样一句「派个子 Agent 去审一下」,换到 V2 工具上,模型不显式写 fork_turns: "none",子 Agent 就会看到父会话的全部来回。Codex 文档里关于继承写的是另一层:子 Agent 继承当前的沙箱、审批设置、模型提供方和 MCP 服务器,自定义 Agent 文件(~/.codex/agents/ 或 .codex/agents/ 下的 TOML,必填 name、description、developer_instructions)改不了这些。

Claude Code:fork 模式默认开,但非 fork 子 Agent 仍是干净的

Claude Code 文档把两类分得很清楚:

Fork非 fork 子 Agent
上下文完整对话历史只有你传的提示
系统提示和工具和主会话相同来自子 Agent 定义文件
模型和主会话相同来自 model 字段
Prompt cache与主会话共享单独一份

fork 模式从 v2.1.302 起默认开(交互终端从 v2.1.232 起),开着的时候 Claude 可以自己发起 fork,你也可以用 /subtask 任务 手动 fork。不想让它自己 fork,有两种关法:

// settings.json:只禁 fork
{ "permissions": { "deny": ["Agent(fork)"] } }

// 或整个关掉 fork 模式
{ "env": { "CLAUDE_CODE_FORK_SUBAGENT": "0" } }

关掉 fork 模式还有个副作用:fork 模式开着时,本机交互会话里 Claude 没法同步等子 Agent 跑完,关掉才能等。只想禁 fork,用第一种;还想让 Claude 能停下来等子 Agent 跑完,用第二种。定义子 Agent 文件的写法见站内 Claude Code 子 Agent 怎么配。

审查员继承了作者的对话,就会沿着作者的思路走,错过作者错过的东西。

什么活该 fork,什么活必须干净

任务建议理由
基于当前进度补测试、写文档fork要大量背景,重新交代太贵;共享缓存更便宜
同一起点并行试几个方案fork起点必须一致
代码审查、规格核对干净只该回答「改动是否满足需求」,不是「作者的推理是否成立」
独立研究、查资料干净主会话的假设会带偏搜索方向
多个设计方案(各自独立想)干净继承同一段历史,方案会趋同

MiniMax 开源的 independent-review Skill 把审查的输入卡死成三样:diff、需求、测试结果,明确不给作者的对话、计划和自评;它的理由是写代码的 Agent 已经说服了自己每个小决定,继承这段对话的审查员会跟着同样的推理走、漏掉同样的问题。整套 Skill 的介绍见站内 MCode Stack 是什么。

Skill 里怎么写:一句话写死

一个热门开源 Skill 仓库(mattpocock/skills)在 2026-10-29 合并的 PR #1341 是个现成的例子。PR 说明写的问题是:部分 Codex 模型派子 Agent 时会 fork 父会话,子 Agent 继承了父上下文,用子 Agent 的初衷就丢了。改法很朴素,八个会派子 Agent 的 Skill(code-review、implement-spec、research、grilling 等)各改一句:

-spin up a subagent that calls the Skill tool with "research"
+spin up a subagent with a fresh context window that calls the Skill tool with "research"

再在仓库规范(CLAUDE.md)里加一条:凡是派子 Agent 的 Skill 都要这么写,新 Skill 照此执行。

自己写 Skill 时可以照搬三处:

完成标准

最后

打开你最常用的那个审查类 Skill,搜一下派子 Agent 的那句,补上「以全新上下文启动」和三样输入,下次审查时对比一下它挑出的问题。

关注公众号「智涌AI速递」

每天的 AI 快讯、实用教程和 AI项目实测,也会同步发到微信公众号。在微信里搜索「智涌AI速递」就能关注;不用微信的话,可以用 RSS 订阅本站。