<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Observability on Hypho - AI Agent 技术博客</title><link>https://blog.hypho.cn/tags/observability/</link><description>Recent content in Observability on Hypho - AI Agent 技术博客</description><image><title>Hypho - AI Agent 技术博客</title><url>https://blog.hypho.cn/papermod-cover.png</url><link>https://blog.hypho.cn/papermod-cover.png</link></image><generator>Hugo -- 0.148.2</generator><language>zh-cn</language><lastBuildDate>Mon, 06 Jul 2026 10:03:30 +0800</lastBuildDate><atom:link href="https://blog.hypho.cn/tags/observability/index.xml" rel="self" type="application/rss+xml"/><item><title>Codex 推理 token 卡在 516？这类异常更该被当成 Agent 可靠性问题</title><link>https://blog.hypho.cn/posts/codex-reasoning-token-clustering-agent-reliability/</link><pubDate>Mon, 06 Jul 2026 10:03:30 +0800</pubDate><guid>https://blog.hypho.cn/posts/codex-reasoning-token-clustering-agent-reliability/</guid><description>OpenAI Codex 的 GitHub issue 报告了 GPT-5.5 在 reasoning_output_tokens=516/1034/1552 附近聚集，并伴随复杂任务表现下降。本文不把它当成单纯模型八卦，而是从可观测性、推理预算、Agentic Coding 评估和生产可靠性出发，分析团队该如何监控 AI 编程助手的异常模式，以及为什么仅看最终答案通过率不够。</description><content:encoded><![CDATA[<p>如果一个编程 Agent 偶尔答错题，我不会太紧张；如果它总是在某几个固定的 reasoning token 数上“刹车”，那就不是普通失误了。</p>
<p>这两天 Hacker News 上有个很适合做工程复盘的讨论：<a href="https://news.ycombinator.com/item?id=48789428">GPT-5.5 Codex reasoning-token clustering may be leading to degraded performance</a>。原帖指向 OpenAI Codex 仓库里的一个 issue：报告者分析了 Codex <code>token_count</code> 元数据，发现 GPT-5.5 的 <code>reasoning_output_tokens</code> 异常集中在 516，另外还有 1034、1552 这类固定边界；同时，复杂任务上的表现似乎变差。这个 issue 目前仍是 open 状态，不能把它当成 OpenAI 已确认的根因结论。但它暴露的问题非常真实：<strong>当 AI 编程助手进入生产工作流，模型内部“想了多久、在哪里停下、什么情况下短路”，会变成可靠性指标，而不是研究员才关心的细节。</strong></p>
<p>我更愿意把它看成一个 Agent 可观测性案例，而不是“GPT-5.5 又翻车了”的新闻。</p>
<h2 id="516-这个数字为什么值得警惕">516 这个数字为什么值得警惕</h2>
<p>先把事实边界说清楚。</p>
<p>在 <a href="https://github.com/openai/codex/issues/30364">OpenAI Codex issue #30364</a> 中，报告者声称自己分析了 2026 年 2 月到 6 月的 Codex token 元数据，共 390,195 条 response-level token records、865 个 sessions。其中最刺眼的数据是：GPT-5.5 只占全部响应的 19.3%，却占了精确 <code>reasoning_output_tokens = 516</code> 事件的 82.0%；在 GPT-5.5 中，达到 516 及以上 reasoning token 的响应里，有 44.0% 精确停在 516。非 GPT-5.5 的对应比例只有 1.3%。</p>
<p>它还引用了一个更小的复现 issue：<a href="https://github.com/openai/codex/issues/29353">#29353</a>。那个报告说，在 Codex Desktop 里用同一个推理题反复测试 GPT-5.5 + xhigh，有些失败 run 会直接进入 <code>final_answer</code>，本地日志里显示 <code>reasoning_output_tokens: 516</code>，而先输出短 commentary 再继续推理的 run 更可能答对。</p>
<p>这不证明“隐藏思维链被截断”一定发生了。我们没有服务端实现，也没有 OpenAI 的官方解释，最多只能说它像一个阈值型行为：到了某个预算边界，模型或产品层可能触发了提前停止、摘要、路由、限流、缓存、降级，或者某种还没被外部理解的调度逻辑。</p>
<p>但工程上，足够了。</p>
<p>因为生产系统里很多事故一开始也不是“证据链完整的根因分析”，而是一个异常分布：P99 延迟突然出现台阶、某个错误码只在特定机房爆发、GPU 显存使用每隔固定大小跳一下。516 在这里扮演的角色，就是那个不该如此整齐的尖峰。</p>
<p>说白了：<strong>随机失败很烦，固定模式的失败更危险。它说明你可能找到了系统边界。</strong></p>
<h2 id="编程-agent-的可靠性不能只看-passfail">编程 Agent 的可靠性，不能只看 pass/fail</h2>
<p>很多团队评估 Claude Code、Codex、Cursor、Copilot Workspace 这类工具时，第一反应是看任务完成率：PR 能不能合、测试能不能过、benchmark pass rate 多高。这当然重要，但不够。</p>
<p>Agentic Coding 和普通补全不一样。普通补全错了，开发者通常马上看见；Agent 错了，可能已经读了几十个文件、改了五处逻辑、跑了一半测试、写了一段看似合理的解释。最后一个绿色测试结果，并不能告诉你它是不是用稳定路径完成的。</p>
<p>Dan Luu 最近那篇 <a href="https://danluu.com/ai-coding/#appendix-agentic-loops-and-writing-this-post">Agentic coding notes</a> 里有个很有共鸣的观察：使用 AI 编程经常像在管理一批会犯奇怪错误的初级工程师。它们可以很快，也可以离谱到让你想“如果这是人类我早就让他走了”。我觉得这个比喻还可以再推进一步：如果你真的在管理一批工程师，你不会只看“最后有没有交差”，还会看他们的工作方式是否可重复、是否能解释、是否在复杂任务上持续退化。</p>
<p>模型也一样。</p>
<p>这也是为什么另一个 HN 候选——论文 <a href="https://arxiv.org/abs/2605.20049">Does Code Cleanliness Affect Coding Agents?</a>——和 Codex 这个 issue 可以放在一起看。论文摘要里说，代码整洁度未必显著改变 Claude Code 的 pass rate，但会显著改变操作足迹：更干净的代码让 agent 使用更少 token、做更少编辑、产生更低认知负担。换句话说，最终通过率可能没变，但执行成本和风险已经变了。</p>
<p>人话翻译：<strong>pass rate 是验收结果，token 轨迹、工具调用、编辑跨度、失败重试次数才是施工过程。只验收不看施工过程，迟早会被 Agent 坑。</strong></p>
<h2 id="推理预算不是黑盒细节而是产品-slo">推理预算不是黑盒细节，而是产品 SLO</h2>
<p>过去我们习惯把 token 当成本指标：用了多少 input token、output token，账单多少钱。现在不够了。对于推理模型和编程 Agent，reasoning token 更像“计算预算”。预算太少，复杂任务会短路；预算太多，延迟和费用爆炸；预算分配不稳定，用户会觉得同一个任务今天聪明、明天犯傻。</p>
<p>如果 Codex issue 里描述的 516/1034/1552 聚集属实，那么它至少提醒我们三件事。</p>
<p>第一，固定 reasoning token 边界要被监控。不是说 516 这个数本身有魔法，而是任何“精确停在某个阈值”的现象都值得打点。你的内部 Agent 平台如果能拿到模型元数据，应该按模型版本、任务类型、reasoning effort、工具调用阶段去画直方图。不要只看平均 token；平均值会把尖峰抹平。</p>
<p>第二，失败样本要按执行轨迹聚类。比如“无 commentary 直接 final”、“读文件少于 N 个就改核心模块”、“测试失败后没有二次定位”、“reasoning token 精确命中某个边界”。这些标签比一句“LLM 答错了”有用得多。它们能帮助你判断问题来自模型能力、上下文检索、工具权限、预算策略，还是产品层路由。</p>
<p>第三，模型升级要做 canary，而不是全量相信榜单。Codex issue 里报告者比较了 GPT-5.5、GPT-5.4、GPT-5.2、GPT-5.3-codex 等模型的 exact-516 / &gt;=516 比例。无论最终根因是什么，这种按版本切片的分析方式是对的。企业内部也应该把“模型版本”当成基础设施版本管理：灰度、回滚、对照组、按任务类型分层评估。</p>
<p>我知道很多团队会说：我们用的是 SaaS 编程助手，拿不到这么细的 telemetry。那至少要退一步，保留你能控制的外部轨迹：prompt、模型名、任务类型、仓库、工具调用日志、修改 diff、测试结果、人工回退原因。别等到大家都觉得“最近它变笨了”，才发现没有任何可回放证据。</p>
<h2 id="和-claude-code-的上下文串味是同一类问题吗">和 Claude Code 的“上下文串味”是同一类问题吗？</h2>
<p>同一批 HN 候选里还有一个更敏感的 issue：<a href="https://github.com/anthropics/claude-code/issues/74066">Claude Code potential session/cache leakage</a>。报告者说，在 Enterprise ZDR workspace 中，Agent 突然提到“Minecraft temple”和“bricks”这类与当前任务无关的内容，并怀疑可能存在 session/cache leakage。评论里有人建议先检查本地 <code>~/.claude/projects/...</code> transcript，区分本地上下文污染和服务端跨账号泄漏；报告者随后说本地没有找到相关命中，并补充 Claude Mobile 上也出现类似现象。</p>
<p>这个 issue 同样没有官方定论，所以不能把它写成“Anthropic 泄漏用户数据”。但它和 Codex 516 的共同点很明显：<strong>Agent 系统的故障不再只是答案错，而是状态边界错。</strong></p>
<p>Codex 的案例像是推理预算边界异常；Claude Code 的案例像是上下文/缓存/会话隔离边界异常。一个影响“它想得够不够”，一个影响“它到底在读谁的上下文”。这两者对企业落地都很致命。</p>
<p>Anthropic 的 <a href="https://docs.anthropic.com/en/docs/claude-code/security">Claude Code security 文档</a> 强调了 permission-based architecture：默认只读，编辑文件、运行测试、执行命令等需要用户批准；文档也提到对 prompt injection、网络请求、MCP、云执行等有额外防护。它的 <a href="https://docs.anthropic.com/en/docs/claude-code/memory">memory 文档</a> 又说明 Claude Code 会通过 <code>CLAUDE.md</code>、规则目录和 auto memory 来记住项目指令。官方设计方向是合理的，但工程现实是：权限、记忆、缓存、压缩、会话 transcript、workspace trust 这些机制叠在一起后，状态面会变得非常复杂。</p>
<p>这也是我之前写 <a href="https://blog.hypho.cn/posts/claude-code-routines/">Claude Code Routines</a> 时一直担心的点：当编程助手从交互式工具变成自动化同事，可靠性边界会从“它会不会写错代码”扩展到“它会不会在错误的上下文里自动执行”。如果再叠加 <a href="https://blog.hypho.cn/posts/agentarmor-8-layer-security-framework/">AgentArmor 那类 Agent 安全框架</a> 的视角，核心不是多加一个 allow/deny list，而是把状态隔离、审计和回放能力做成默认工程能力。</p>
<h2 id="团队现在可以怎么做">团队现在可以怎么做</h2>
<p>我不建议因为一个 GitHub issue 就停用 Codex 或 Claude Code。那是过度反应。</p>
<p>但如果你的团队已经把 AI 编程助手接进日常开发、CI、代码审查或自动修复流程，我会立刻补五个检查项。</p>
<p><strong>第一，记录模型执行元数据。</strong> 能拿到 reasoning token 就记录；拿不到就记录 output token、延迟、工具调用次数、读写文件数量、测试次数、重试次数。重点不是一开始就建大平台，而是先让异常有地方落。</p>
<p><strong>第二，给任务分级。</strong> 文档润色、样式调整、一次性脚本可以宽松；权限、账单、认证、数据迁移、加密、供应链配置必须走更高门槛。高风险任务不要允许 Agent 在无人审查下直接 push 或 deploy。这个判断和我在 <a href="https://blog.hypho.cn/posts/ai-authored-code-contributions-open-source-review/">AI 生成代码进入开源仓库</a> 那篇里的结论一致：问题不是“有没有用 AI”，而是责任链是否还清楚。</p>
<p><strong>第三，建立异常轨迹告警。</strong> 如果某个模型版本的失败率没变，但 token 使用突然腰斩、执行路径突然变短、编辑 diff 变大、回滚次数上升，也应该触发人工复核。很多模型退化不会先体现在 pass rate 上，而会先体现在“做事方式”上。</p>
<p><strong>第四，隔离 workspace 和 memory。</strong> 不要在一个目录里混多个客户、多个产品线、多个权限域的 Agent 会话。<code>CLAUDE.md</code>、<code>.claude/rules/</code>、本地 transcript、MCP 配置、环境变量都要按项目边界管理。偷懒共用上下文，短期省 prompt，长期是在给串味事故铺路。</p>
<p><strong>第五，模型升级要能回滚。</strong> SaaS 工具常常让用户感觉模型版本是“平台自动变好”。但对生产团队来说，模型就是依赖。依赖升级不做 canary，是 DevOps 倒退。</p>
<p>这里面最难的不是技术，而是心态。很多人把 AI 编程助手当“更聪明的编辑器插件”，所以只在主观体验上判断好坏。可一旦它能跨文件修改、调用 shell、开 PR、跑 CI，它就已经是一个半自动执行系统。执行系统就要有 SLO、审计、回滚、隔离和事故复盘。</p>
<h2 id="我的判断">我的判断</h2>
<p>Codex 516 事件最后可能有很多种解释：遥测口径问题、客户端记录 bug、模型路由策略、reasoning budget cap、服务端限流，甚至只是某个产品实验造成的副作用。现在下结论太早。</p>
<p>但它已经足够提醒我们：AI Agent 的可靠性不能继续停留在“我试了几次感觉不错”。尤其是编程 Agent，最危险的失败不是明显胡说，而是以稳定、可重复、看似自信的方式在某个系统边界上短路。</p>
<p>我会把这类问题纳入团队的 AI 工程治理清单：模型版本可追踪，执行轨迹可回放，异常分布可监控，高风险动作可拦截。没有这些，再强的模型也只是一个无法审计的外包同事。</p>
<p>而外包同事最怕的不是能力不够。</p>
<p>是你根本不知道他为什么这么做。</p>
<h2 id="参考信源">参考信源</h2>
<ul>
<li><a href="https://news.ycombinator.com/item?id=48789428">Hacker News: GPT-5.5 Codex reasoning-token clustering may be leading to degraded performance</a></li>
<li><a href="https://github.com/openai/codex/issues/30364">OpenAI Codex issue #30364: GPT-5.5 Codex reasoning-token clustering at 516/1034/1552</a></li>
<li><a href="https://github.com/openai/codex/issues/29353">OpenAI Codex issue #29353: gpt-5.5 xhigh sometimes short-circuits with reasoning_output_tokens=516</a></li>
<li><a href="https://danluu.com/ai-coding/#appendix-agentic-loops-and-writing-this-post">Dan Luu: Agentic test processes, LLM benchmarks, and notes on agentic coding</a></li>
<li><a href="https://arxiv.org/abs/2605.20049">arXiv: Does Code Cleanliness Affect Coding Agents?</a></li>
<li><a href="https://docs.anthropic.com/en/docs/claude-code/security">Claude Code security documentation</a></li>
<li><a href="https://docs.anthropic.com/en/docs/claude-code/memory">Claude Code memory documentation</a></li>
</ul>
]]></content:encoded></item></channel></rss>