上下文优化四件套:让 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 给出的不是技巧清单,而是一套可测量的工程纪律——这才是开发者该学的。
评论区
登录后可评论。