上下文优化四件套:让 Agent 省一半 Token 的方法论

写 Agent 写到第二个项目的人,几乎都会撞上同一堵墙:上下文窗口撑爆了。tool 输出、检索文档、对话历史塞在一起,token 飞涨、响应变慢、注意力还开始”lost in the middle”。怎么办?

今天拆一个专门治这个病的 Skill——context-optimization,来自 muratcankoylan/Agent-Skills-for-Context-Engineering(17.5k ⭐,1.4k fork,整个仓被多个学术论文引用为基础架构)。它不讲玄学,直接给你一套按 ROI 排好序的四步法:KV-cache → Observation masking → Compaction → Partitioning。

为什么是这四步?

作者的态度很工程师:先测量,再优化。每一招都告诉你什么时候用、风险多大、能省多少。这跟很多”上下文工程就是压缩”的笼统说法完全不同。

  • KV-cache 优化(首选,低风险):把 system prompt、工具定义这些稳定前缀提前锁定,让推理引擎复用 Key/Value 张量。不用动业务逻辑,只要结构稳定就能省下首 token 延迟和重复算力。
  • Observation masking(最高 ROI):tool 输出经常占整个 trajectory 的 80%+,执行完就把详细结果换成引用,需要时再查文件。这条用对了,能直接腾出大半个窗口。
  • Compaction(70% 触发):上下文用到 70% 就触发总结,重新初始化。永远别压缩 system prompt——它是锚,动了模型行为会崩坏。
  • Context partitioning(最后手段):单窗口装不下就上 sub-agent,各自带干净上下文干一块活。代价是协调开销,所以阈值卡在 60%,不是越高越好。

开发者视角的三个关键点

第一,优先级排序。Skill 里写得很清楚:KV-cache 先上,因为它”几乎免费”;masking 第二,因为 tool 输出最胖;压缩放第三,因为有损;分区放最后,因为贵。乱序优化是新人最常踩的坑。

第二,触发条件要硬编码。”快满了就压缩”是废话,作者给的是具体数字——70% 触发压缩,60% 触发分区。这种数字不是拍脑袋,而是从实际 attention degradation 曲线反推。

第三,不要用这招的地方它也写明白了。”lost in the middle” 是 context-degradation 的活,handoff 摘要归 context-compression,大文件落盘归 filesystem-context。Skill 之间互不抢地盘,靠 description 里的 trigger 词精确路由。

怎么用?

把 SKILL.md 拷到 ~/.claude/skills/context-optimization/,或者直接 npx @skill-hub/cli install context-optimization。它不是命令行工具,而是一份给 Agent 读的 SOP——Claude 在处理长 trajectory 时会自动触发。

配合仓库里的 context-fundamentals、context-degradation 一起装,效果更体系。整套 context engineering 系列本质上是一本给 AI Agent 的 SRE 手册。

省 Token 不是目的,让模型注意力不被噪音淹没才是。context-optimization 这个 Skill 给出的不是技巧清单,而是一套可测量的工程纪律——这才是开发者该学的。


GitHub: https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering/tree/main/skills/context-optimization

评论区

0 条评论

登录后可评论。

江望 1153 阅读