先说结论
Token消耗的大头是任务复杂度,不是系统提示词。同一个Agent,查天气可能花1K tokens,搭个完整应用栈能烧100K+。差50倍。
Token都花哪了?
SOTA Sync拆解过Hermes Agent的系统提示词,总共约36,700字符(~10K tokens):
- AGENTS.md:20,360字符,占55.5%——这是大头
- Skills索引:5,000字符,占13.6%——80+个技能的目录
- 其他配置:11,340字符,占30.9%
但这里有个坑:很多人觉得压缩AGENTS.md能省很多,实际上即使砍掉一半(减10K字符),也就省3K tokens。对于一次复杂任务(60K-120K tokens)来说,不到5%。
三层优化法
第一层:立竿见影
禁用不用的Skills
Skills索引占5K字符,禁用后直接从上下文删掉。每禁用一个Skill省约100字符,禁用50个能省5K字符(~1.5K tokens)。风险很低,禁用的Skill根本不会被加载。
hermes config set disabled_skills "weather,translate,calendar"
限制工具输出
浏览器截图、命令执行结果——这些是动态消耗的"黑洞"。一次文件读取可能占几千tokens,如果任务涉及3次工具调用,光输出就能吃掉1万+tokens。
解决方案:配置输出最大行数(比如后20行)或字符数(比如2000字符)。这是唯一能堵住"单次巨量消耗"的手段。
定期清理记忆
记忆文件会随时间线性增长。90天以上的旧数据可以安全清理,释放空间,维持缓存命中率。
hermes memory cleanup --days 90
第二层:杠杆效应
模型路由
这是最被低估的优化点。90%的日常任务(文本生成、格式转换、简单查询)根本不需要旗舰模型。用轻量模型(比如GPT-4o-mini),推理步数更少,单token成本只有1/10。
综合下来能省60%-80% 。
- 查天气 → 轻量模型(1轮,0工具调用)
- 搭应用栈 → 旗舰模型(10+轮,多工具调用)
动态加载Skill
别全程带着所有Skill。按任务阶段来:代码开发初期只启用code_review_skill,测试阶段再加testing_skill。同时活跃的Skill从10+降到3-5,上下文窗口直接压缩。
Token监控+阈值触发
被动监控没用,得主动。/usage命令可以实时追踪消耗,但多数人都是出了问题才看。
关键是建"阈值触发"机制:单轮token超过20K时,自动压缩历史或切换模型。比一次性静态压缩更灵活。
第三层:长期收益
智能压缩系统提示词
36.7K字符里约50%可优化,但得保留推理依赖链(registry→tools→model_tools→run_agent)。精简"目录树"和"文件依赖说明",保留"工具使用顺序"逻辑。
压缩率控制在10%-20%。激进压缩会破坏行为稳定性,模型会因为"规则模糊"而反复试探,反而多花tokens。
优化行为引导规则
减少无效工具调用比压缩字符更有效。明确工具调用条件,让模型知道什么时候该调、什么时候不该调。
记忆预加载
把高频场景的推理路径存成结构化记忆,下次调用时模型直接提取结论,不用重新推演。"以空间换时间"。
实际效果
搭一个完整Web应用栈:
优化前:
- 系统提示词:10K tokens(全量加载)
- Skills索引:5K tokens(80+个Skill全带着)
- 工具调用:50K tokens(输出没限制)
- 推理步数:30轮(各种试错)
- 总计:~100K tokens
优化后:
- 系统提示词:8K tokens(压缩20%)
- Skills索引:2K tokens(禁用60个没用的)
- 工具调用:5K tokens(限制输出长度)
- 推理步数:10轮(模型路由+行为优化)
- 总计:~20K tokens
省了80K tokens,80%。
常见坑
"精简AGENTS.md是首要优化点" → 错。边际收益不到5%,还可能破坏行为稳定性。
"禁用Skills效果有限" → 错。实测禁用50个Skill能省5K字符,风险极低。
"Token监控是被动防御" → 错。主动监控+阈值触发动态优化,比一次性静态压缩有效得多。
"压缩越多越好" → 错。激进压缩会增加试错成本,建议控制在10%-20%。
进阶玩法
极端单Skill模式:简单任务只启用1个最相关的Skill,让模型依赖内部能力。减少选择负担,某些场景比带15个Skill更高效。
工具输出的截断vs摘要:精确数值任务(代码调试)用完整输出,文本任务用摘要。模型原生摘要和固定模板摘要对推理的影响还没被量化评估。
历史对话的分级遗忘:无关信息淡出、核心链路强化。比统一压缩更符合认知规律。
写在最后
Token优化不是删减游戏,是系统工程。禁用Skills、限制工具输出、清理记忆是基础;模型路由、动态Skill加载、Token监控是杠杆;智能压缩、行为优化、记忆预加载是长期收益。
核心原则:优化行为引导规则 > 压缩静态内容。