最近在深入使用 Codex、Claude Code 等 AI 编程工具时,发现一个极为突出的痛点——并非模型本身不够智能,而是很多时候,AI 并非“不会写代码”,而是它的上下文被大量无意义的垃圾信息挤占了:Token 被日志耗尽、大文件输出污染了 Prompt、测试日志吞没了上下文窗口。最终导致回复质量下滑、对仓库的理解能力变弱、Token 消耗激增,很快就触及了配额上限。
直到在 Reddit 上看到一篇帖子才恍然大悟:问题的根源或许比想象中更简单——仅需一条 AGENTS.md 规则,就能让 Token 占用减少近一半。
本文将详细拆解这个技巧的实战方法与原理。
问题缘起:Codex 为何疯狂读取无关内容?
原帖作者发现,Codex 在“理解项目”时,会频繁执行 shell 命令来读取文件,比如 cat xxx.log 或 head -n 20。表面看似乎没问题,但真正的隐患在于:行数限制(line limit)其实并不可靠。
许多人以为 head -n 20 已经控制了输出量,但实际并非如此。因为某些文件格式——例如 SQLite 文件、压缩内容、超长 JSON、单行 minify JS、base64 文件——它们没有换行符。此时 head -n 20 依然可能直接输出数 MB 的内容。
后果如何?Token 瞬间爆炸。作者分享了一个真实案例:Codex 误读取了一个 5MB 的 SQLite 文件,且该文件没有换行。Token 消耗直接从 20k 飙升至 90k,瞬间超限。
真正有效的解决方案
作者直接在 AGENTS.md 里添加了一条规则:限制未知输出的字节大小。核心思路是:不再按“行数”限制,而是改为按“字节数”限制。例如:
cat huge.log | head -c 4000rg keyword src | head -c 4000这样一来,无论文件是否包含换行,最大输出仅为 4000 bytes,上下文安全性大幅提升。
为什么这个技巧极为重要?
因为 AI Coding Agent 的真正瓶颈并不在于模型能力,而在于 Context Window(上下文窗口)。尤其是 GPT-5、Claude Opus、Codex、Claude Code 这类模型,它们严重依赖上下文的“质量”,而非“数量”。大量无关文本会引发以下连锁反应:
| 问题 | 后果 |
|---|---|
| 无关日志过多 | 注意力被稀释 |
| 大文件污染上下文 | 仓库理解能力下降 |
| Token 消耗过高 | 提前触发使用限制 |
| 历史上下文被挤出 | AI 遗忘前文信息 |
| Shell 输出过长 | 影响代码生成质量 |
这实际上与人类程序员的调试习惯相似:你不会一次性查看 5MB 日志,而是通过 grep、tail、筛选等方式聚焦问题。AI 同样需要这种“聚焦”能力。
第二个巨大优化:减少测试输出
帖子中另一个关键点是:不要每次改动都跑完整测试。许多 AI Agent 修改一行代码后,就立刻执行 npm test、vitest、playwright、xcode build、全量 typecheck,然后输出数万行日志。尤其 vitest 或 playwright 的日志量极其庞大。
作者后来修改了系统 Prompt:仅在必要时运行验证,并且对测试输出也做字节上限(byte cap)。例如:
npm test 2>&1 | head -c 4000效果立竿见影。
为什么 AI 特别喜欢疯狂跑测试?
因为许多官方 system prompt 里都写了“修改后请运行测试确保正确”,于是 Agent 会机械执行:改一点 → 跑测试 → 产生大量日志 → Token 暴涨。尤其 Claude Code 表现得非常明显。帖子评论区中不少人提到,Claude Opus 特别容易疯狂吞占上下文,甚至搜索大量文件、引入无关代码、读取过长日志,最终导致模型反而“变笨”。
更高级的玩法:日志摘要
帖子评论区还有一个很有价值的思路:将编译日志交给更便宜的小模型先做摘要。例如只返回 success、真正错误、关键 warning。这样主 Agent 不会看到完整日志,只获得精简结果。这个思路非常先进,因为 AI Agent 的最大开销是 Context,而不是一次 API 调用。
还有哪些工具在做 Context 压缩?
评论区还提到了几个项目:
1. rtk
GitHub:https://github.com/rtk-ai/rtk。作用:自动重写命令输出,例如 git、grep、shell 输出,压缩 Token。有人实测可额外减少 20% Token,但也有反馈称可能影响调试质量,因为某些关键内容可能被过滤掉。
2. sqz
GitHub:https://github.com/ojuschugh1/sqz。作者给出的数据:tokens saved: 283509,平均减少 38.5%,压缩效果同样显著。
3. Serena MCP
这个更接近 Codex IDE 增强层,支持更智能的代码搜索、Context 管理、仓库理解,但会增加复杂度。
4. Tree-sitter Knowledge Graph
论文参考 codebase-memory-mcp。思路是:不再使用 grep,而是基于 AST + Knowledge Graph,理论上能极大减少无关上下文,但对于普通项目可能偏重。
最终结论
这个技巧的核心本质其实只有一句话:不要让 AI 看太多无关内容。尤其是 Coding Agent,真正影响质量的往往不是模型,而是 Context Engineering(上下文工程)。如今许多人已经开始优化 Prompt、优化 Agent、优化 Tool、优化 Context。未来,谁更擅长“管理上下文”,谁就能更高效地让 AI 成为真正的生产力工具。
原帖地址:Reddit,链接:https://www.reddit.com/r/codex/comments/1t6iulo/i_cut_codex_token_usage_50_with_one_agentsmd_rule/
如果你也遇到过类似问题——比如 Claude Code、Codex、Cursor、Windsurf、Roo Code 疯狂消耗 Token ——欢迎分享你现在的 AGENTS.md、system prompt、token 优化技巧、context 管理方案。很多时候,一条小规则,真的可能帮你省掉一半的 Token。
