我之前一直以为 Token 烧得快,是因为模型太能读文件。后来发现不是。
更普遍的问题是:AI Agent 在执行命令的时候,会把一大堆无关输出直接塞进上下文。这些输出你根本不需要,但模型得读,得想,Token 就这么没了。
原理
任何可能产出大输出的命令,默认限制输出上限。就这么简单。
往 AGENTS.md 里加一条规则:
## Command Output Protect context usage. **Any command with unknown or potentially large output must be byte-capped.** Default pattern: COMMAND 2>&1 | head -c 4000
这条规则的本质是:AI 在找信息阶段,别让它把一堆垃圾内容塞进上下文。塞进去之后,不光费 Token,还影响模型的思考质量。上下文里噪音太多,模型反而更难找到真正有用的信息。
实测结果
Reddit 上有人分享过,单这一条规则,Token 开销大概能降 50%。
我试了一周,体感确实明显。之前一个差不多要花 10% Token 的任务,现在只花了 6%,省了 40%。没有 50% 那么夸张,但也够惊人了。
这东西对 Codex 和 Claude Code 都管用,原理一样——都是靠限制命令输出来保护上下文。
为什么有效
AI Agent 执行命令的时候,默认行为是把所有输出都读进去。比如你让它搜索一个东西,它跑了个 grep,返回了几千行结果,它就把这几千行全塞进上下文。但其实你只需要前几十行。
head -c 4000 把输出限制在 4KB,对大多数场景够用了。真需要更多内容的时候,再针对性地查就行。
这种做法省的不只是 Token,还有时间。上下文短了,模型处理起来更快,响应也更快。