如果一个编程 Agent 偶尔答错题,我不会太紧张;如果它总是在某几个固定的 reasoning token 数上“刹车”,那就不是普通失误了。

这两天 Hacker News 上有个很适合做工程复盘的讨论:GPT-5.5 Codex reasoning-token clustering may be leading to degraded performance。原帖指向 OpenAI Codex 仓库里的一个 issue:报告者分析了 Codex token_count 元数据,发现 GPT-5.5 的 reasoning_output_tokens 异常集中在 516,另外还有 1034、1552 这类固定边界;同时,复杂任务上的表现似乎变差。这个 issue 目前仍是 open 状态,不能把它当成 OpenAI 已确认的根因结论。但它暴露的问题非常真实:当 AI 编程助手进入生产工作流,模型内部“想了多久、在哪里停下、什么情况下短路”,会变成可靠性指标,而不是研究员才关心的细节。

我更愿意把它看成一个 Agent 可观测性案例,而不是“GPT-5.5 又翻车了”的新闻。

516 这个数字为什么值得警惕

先把事实边界说清楚。

OpenAI Codex issue #30364 中,报告者声称自己分析了 2026 年 2 月到 6 月的 Codex token 元数据,共 390,195 条 response-level token records、865 个 sessions。其中最刺眼的数据是:GPT-5.5 只占全部响应的 19.3%,却占了精确 reasoning_output_tokens = 516 事件的 82.0%;在 GPT-5.5 中,达到 516 及以上 reasoning token 的响应里,有 44.0% 精确停在 516。非 GPT-5.5 的对应比例只有 1.3%。

它还引用了一个更小的复现 issue:#29353。那个报告说,在 Codex Desktop 里用同一个推理题反复测试 GPT-5.5 + xhigh,有些失败 run 会直接进入 final_answer,本地日志里显示 reasoning_output_tokens: 516,而先输出短 commentary 再继续推理的 run 更可能答对。

这不证明“隐藏思维链被截断”一定发生了。我们没有服务端实现,也没有 OpenAI 的官方解释,最多只能说它像一个阈值型行为:到了某个预算边界,模型或产品层可能触发了提前停止、摘要、路由、限流、缓存、降级,或者某种还没被外部理解的调度逻辑。

但工程上,足够了。

因为生产系统里很多事故一开始也不是“证据链完整的根因分析”,而是一个异常分布:P99 延迟突然出现台阶、某个错误码只在特定机房爆发、GPU 显存使用每隔固定大小跳一下。516 在这里扮演的角色,就是那个不该如此整齐的尖峰。

说白了:随机失败很烦,固定模式的失败更危险。它说明你可能找到了系统边界。

编程 Agent 的可靠性,不能只看 pass/fail

很多团队评估 Claude Code、Codex、Cursor、Copilot Workspace 这类工具时,第一反应是看任务完成率:PR 能不能合、测试能不能过、benchmark pass rate 多高。这当然重要,但不够。

Agentic Coding 和普通补全不一样。普通补全错了,开发者通常马上看见;Agent 错了,可能已经读了几十个文件、改了五处逻辑、跑了一半测试、写了一段看似合理的解释。最后一个绿色测试结果,并不能告诉你它是不是用稳定路径完成的。

Dan Luu 最近那篇 Agentic coding notes 里有个很有共鸣的观察:使用 AI 编程经常像在管理一批会犯奇怪错误的初级工程师。它们可以很快,也可以离谱到让你想“如果这是人类我早就让他走了”。我觉得这个比喻还可以再推进一步:如果你真的在管理一批工程师,你不会只看“最后有没有交差”,还会看他们的工作方式是否可重复、是否能解释、是否在复杂任务上持续退化。

模型也一样。

这也是为什么另一个 HN 候选——论文 Does Code Cleanliness Affect Coding Agents?——和 Codex 这个 issue 可以放在一起看。论文摘要里说,代码整洁度未必显著改变 Claude Code 的 pass rate,但会显著改变操作足迹:更干净的代码让 agent 使用更少 token、做更少编辑、产生更低认知负担。换句话说,最终通过率可能没变,但执行成本和风险已经变了。

人话翻译:pass rate 是验收结果,token 轨迹、工具调用、编辑跨度、失败重试次数才是施工过程。只验收不看施工过程,迟早会被 Agent 坑。

推理预算不是黑盒细节,而是产品 SLO

过去我们习惯把 token 当成本指标:用了多少 input token、output token,账单多少钱。现在不够了。对于推理模型和编程 Agent,reasoning token 更像“计算预算”。预算太少,复杂任务会短路;预算太多,延迟和费用爆炸;预算分配不稳定,用户会觉得同一个任务今天聪明、明天犯傻。

如果 Codex issue 里描述的 516/1034/1552 聚集属实,那么它至少提醒我们三件事。

第一,固定 reasoning token 边界要被监控。不是说 516 这个数本身有魔法,而是任何“精确停在某个阈值”的现象都值得打点。你的内部 Agent 平台如果能拿到模型元数据,应该按模型版本、任务类型、reasoning effort、工具调用阶段去画直方图。不要只看平均 token;平均值会把尖峰抹平。

第二,失败样本要按执行轨迹聚类。比如“无 commentary 直接 final”、“读文件少于 N 个就改核心模块”、“测试失败后没有二次定位”、“reasoning token 精确命中某个边界”。这些标签比一句“LLM 答错了”有用得多。它们能帮助你判断问题来自模型能力、上下文检索、工具权限、预算策略,还是产品层路由。

第三,模型升级要做 canary,而不是全量相信榜单。Codex issue 里报告者比较了 GPT-5.5、GPT-5.4、GPT-5.2、GPT-5.3-codex 等模型的 exact-516 / >=516 比例。无论最终根因是什么,这种按版本切片的分析方式是对的。企业内部也应该把“模型版本”当成基础设施版本管理:灰度、回滚、对照组、按任务类型分层评估。

我知道很多团队会说:我们用的是 SaaS 编程助手,拿不到这么细的 telemetry。那至少要退一步,保留你能控制的外部轨迹:prompt、模型名、任务类型、仓库、工具调用日志、修改 diff、测试结果、人工回退原因。别等到大家都觉得“最近它变笨了”,才发现没有任何可回放证据。

和 Claude Code 的“上下文串味”是同一类问题吗?

同一批 HN 候选里还有一个更敏感的 issue:Claude Code potential session/cache leakage。报告者说,在 Enterprise ZDR workspace 中,Agent 突然提到“Minecraft temple”和“bricks”这类与当前任务无关的内容,并怀疑可能存在 session/cache leakage。评论里有人建议先检查本地 ~/.claude/projects/... transcript,区分本地上下文污染和服务端跨账号泄漏;报告者随后说本地没有找到相关命中,并补充 Claude Mobile 上也出现类似现象。

这个 issue 同样没有官方定论,所以不能把它写成“Anthropic 泄漏用户数据”。但它和 Codex 516 的共同点很明显:Agent 系统的故障不再只是答案错,而是状态边界错。

Codex 的案例像是推理预算边界异常;Claude Code 的案例像是上下文/缓存/会话隔离边界异常。一个影响“它想得够不够”,一个影响“它到底在读谁的上下文”。这两者对企业落地都很致命。

Anthropic 的 Claude Code security 文档 强调了 permission-based architecture:默认只读,编辑文件、运行测试、执行命令等需要用户批准;文档也提到对 prompt injection、网络请求、MCP、云执行等有额外防护。它的 memory 文档 又说明 Claude Code 会通过 CLAUDE.md、规则目录和 auto memory 来记住项目指令。官方设计方向是合理的,但工程现实是:权限、记忆、缓存、压缩、会话 transcript、workspace trust 这些机制叠在一起后,状态面会变得非常复杂。

这也是我之前写 Claude Code Routines 时一直担心的点:当编程助手从交互式工具变成自动化同事,可靠性边界会从“它会不会写错代码”扩展到“它会不会在错误的上下文里自动执行”。如果再叠加 AgentArmor 那类 Agent 安全框架 的视角,核心不是多加一个 allow/deny list,而是把状态隔离、审计和回放能力做成默认工程能力。

团队现在可以怎么做

我不建议因为一个 GitHub issue 就停用 Codex 或 Claude Code。那是过度反应。

但如果你的团队已经把 AI 编程助手接进日常开发、CI、代码审查或自动修复流程,我会立刻补五个检查项。

第一,记录模型执行元数据。 能拿到 reasoning token 就记录;拿不到就记录 output token、延迟、工具调用次数、读写文件数量、测试次数、重试次数。重点不是一开始就建大平台,而是先让异常有地方落。

第二,给任务分级。 文档润色、样式调整、一次性脚本可以宽松;权限、账单、认证、数据迁移、加密、供应链配置必须走更高门槛。高风险任务不要允许 Agent 在无人审查下直接 push 或 deploy。这个判断和我在 AI 生成代码进入开源仓库 那篇里的结论一致:问题不是“有没有用 AI”,而是责任链是否还清楚。

第三,建立异常轨迹告警。 如果某个模型版本的失败率没变,但 token 使用突然腰斩、执行路径突然变短、编辑 diff 变大、回滚次数上升,也应该触发人工复核。很多模型退化不会先体现在 pass rate 上,而会先体现在“做事方式”上。

第四,隔离 workspace 和 memory。 不要在一个目录里混多个客户、多个产品线、多个权限域的 Agent 会话。CLAUDE.md.claude/rules/、本地 transcript、MCP 配置、环境变量都要按项目边界管理。偷懒共用上下文,短期省 prompt,长期是在给串味事故铺路。

第五,模型升级要能回滚。 SaaS 工具常常让用户感觉模型版本是“平台自动变好”。但对生产团队来说,模型就是依赖。依赖升级不做 canary,是 DevOps 倒退。

这里面最难的不是技术,而是心态。很多人把 AI 编程助手当“更聪明的编辑器插件”,所以只在主观体验上判断好坏。可一旦它能跨文件修改、调用 shell、开 PR、跑 CI,它就已经是一个半自动执行系统。执行系统就要有 SLO、审计、回滚、隔离和事故复盘。

我的判断

Codex 516 事件最后可能有很多种解释:遥测口径问题、客户端记录 bug、模型路由策略、reasoning budget cap、服务端限流,甚至只是某个产品实验造成的副作用。现在下结论太早。

但它已经足够提醒我们:AI Agent 的可靠性不能继续停留在“我试了几次感觉不错”。尤其是编程 Agent,最危险的失败不是明显胡说,而是以稳定、可重复、看似自信的方式在某个系统边界上短路。

我会把这类问题纳入团队的 AI 工程治理清单:模型版本可追踪,执行轨迹可回放,异常分布可监控,高风险动作可拦截。没有这些,再强的模型也只是一个无法审计的外包同事。

而外包同事最怕的不是能力不够。

是你根本不知道他为什么这么做。

参考信源