Wink Pings

Codex子代理默认继承父上下文,代码审查会先带上作者的假设

Matt Pocock修复了Codex技能里一个上下文继承问题。Codex默认让子代理fork父代理上下文,代码审查和spec实现会继承作者的推理与盲点。PR、网友的规避方式和争议都在文里。

TypeScript社区开发者Matt Pocock在X上发了一条更新(原推),给Codex用户修了一个技能问题。Codex会把大多数子代理的上下文窗口从父代理那里继承过来,也就是fork。这个默认行为让依赖干净上下文窗口的skill出问题,他点名了代码审查和按spec实现。

上下文窗口可以理解为模型当前能看到的对话、代码和推理记录。子代理fork父代理,就等于带着父代理之前的判断进入新任务。审查代码时,这个继承会变成确认偏差。

有网友Kizuno18把机制说得很直白:父代理如果花了10轮说服自己某个边缘情况不存在,fork出来的审查者会继承这套合理化。对抗性代码审查或spec实现应该从ground truth开始,也就是git diff和spec markdown,零对话动量。

Cozy也在回复里提到,forked context对审查类skill成本很高。审查者会继承作者的假设和盲点,fresh window才会只判断diff和spec。Variable补了一句:子代理需要知道你试过什么时,fork有用;放到review里就有害。

Matt推文里给了修复链接:PR #1341。回复里有人在问,这个修复是skill里的措辞调整,还是Codex有真正的开关。Daniel Ehrhardt说,感觉这应该是一个param,不该只靠prompt。

有网友vampmaxxing贴了一个调用方式:spawn_agent agent_type=default fork_turns="none",并说这就够了。这个片段是否能覆盖所有Codex版本,推文没有展开,具体改动得看PR。Aayushman Singh给了另一个思路:传diff和repo rules,别把debugging history带进去。Udoh Jeremiah则问,agent框架是否该把上下文继承改成opt-in,而不是默认开启。

这个修复小,但位置关键。子代理该继承多少上下文,取决于任务。审查和实现spec需要干净起点;需要延续尝试历史的任务,fork有用。Codex用户该检查自己的skill有没有被这个默认值带偏。

发布时间: 2026-10-30 06:38