前言¶
Coding Agent 跑久了,对话和工具输出会迅速堆满上下文窗口。常见做法是每次请求前尽量「压短」历史,单次 prompt 的 token 数确实下降了,但任务后半段 agent 反复重读文件、重问已做过的决策,总 token 反而更高。下面介绍仓库 Agent-Skills-for-Context-Engineering 中的 context-compression Skill:它把优化目标从「单次请求 token」改成「完成任务所需总 token」,并给出可落地的压缩策略、摘要结构和评估方式。
这是什么¶
context-compression 是一份 Agent Skill(SKILL.md 指令),由 muratcankoylan/Agent-Skills-for-Context-Engineering 维护,归属该集合中的 Context Engineering 主题。
官方描述指出:当长运行会话需要上下文压缩、结构化摘要、 compaction、按任务优化 token,或需要可交接的 durable handoff 摘要(保留决策、文件、风险与后续动作)时,应启用本 Skill。
它不负责通用 token 技巧(见同仓库 context-optimization)、压缩前的退化诊断(context-degradation)、仅把日志写到文件而不摘要(filesystem-context)、跨会话语义记忆(memory-systems),也不替代模型自管上下文时机(self-managed-context);但在需要替换上下文时,本 Skill 规定「替换文本必须保留什么」。
核心功能¶
三种生产向压缩路径¶
资料将压缩视为「省 token」与「丢信息」的权衡,并给出三种可选方案:
-
Anchored Iterative Summarization(锚定迭代摘要)
适合长会话且需要跟踪文件变更的场景。维护带固定栏位的持久摘要(会话意图、文件修改、决策、下一步等)。触发压缩时,只摘要新截断的片段并与既有摘要合并,而不是整段重写,以降低多次全量重写带来的漂移和静默丢细节。 -
Opaque Compression(不透明压缩)
适合短会话、重拉取成本低、且需要极高压缩率的场景。产出面向重建保真度的压缩表示,资料称可达 99%+ 压缩比,但不可读;无法在不跑探测式评估的情况下核对保留了什么。调试或工件追踪关键时不应使用。 -
Regenerative Full Summary(再生全量摘要)
适合摘要可读性重要、且会话有清晰阶段边界的场景。每次压缩触发时生成新的结构化详摘要;弱点是多次全量再生会累积丢细节。
优化目标:tokens-per-task¶
应统计从任务开始到完成的总 token,而非单次请求。压缩若丢掉路径、错误信息或决策理由,agent 会重新探索、重读文件、重推结论,浪费往往超过压缩所省。资料建议把「重复请求重读已处理文件」的频率当作压缩是否过激进的主信号。
工件轨迹(artifact trail)¶
资料称工件轨迹完整性往往是压缩评估中最弱的一维(引用 claim-context-compression-factory-benchmark)。每个压缩周期应显式保留:
- 新建文件(完整路径)
- 修改文件及变更(含函数名,不只文件名)
- 已读未改文件
- 具体标识:函数名、变量名、错误信息与错误码
建议在 agent 脚手架里单独维护 artifact index 或文件状态跟踪,而不是完全依赖摘要模型自行记住细节。
强制分节的结构化摘要¶
用固定分节当作 checklist,减少静默遗漏。官方示例骨架如下(可按领域改栏位,如调试 agent 增加 Root Cause / Error Messages):
## Session Intent
[What the user is trying to accomplish]
## Files Modified
- auth.controller.ts: Fixed JWT token generation
- config/redis.ts: Updated connection pooling
- tests/auth.test.ts: Added mock setup for new config
## Decisions Made
- Using Redis connection pool instead of per-request connections
- Retry logic with exponential backoff for transient failures
## Current State
- 14 tests passing, 2 failing
- Remaining: mock setup for session service tests
## Next Steps
1. Fix remaining test failures
2. Run full test suite
3. Update documentation
压缩触发策略¶
| Strategy | Trigger Point | Trade-off |
|---|---|---|
| Fixed threshold | 70-80% context utilization | Simple but may compress too early |
| Sliding window | Keep last N turns + summary | Predictable context size |
| Importance-based | Compress low-relevance sections first | Complex but preserves signal |
| Task-boundary | Compress at logical task completions | Clean summaries but unpredictable timing |
对 coding agent,资料默认推荐 sliding window + 结构化摘要;会话有明显阶段(调研 → 实现 → 测试)时可用 task-boundary。
用探测(probe)评估,而非单靠 ROUGE¶
ROUGE 或 embedding 相似度难以反映「能否继续干活」。压缩后应对关键事实提问:答对说明保留有效,答错或臆测说明压缩过激。
| Probe Type | What It Tests | Example Question |
|---|---|---|
| Recall | Factual retention | “What was the original error message?” |
| Artifact | File tracking | “Which files have we modified?” |
| Continuation | Task planning | “What should we do next?” |
| Decision | Reasoning chain | “What did we decide about the Redis issue?” |
对 coding agent,资料还提出在多个维度上打分(含准确度与 artifact-trail 保留等);准确度与工件轨迹往往比字面重叠更能区分方法优劣。
何时启用¶
在以下情况激活本 Skill(摘自官方 When to Activate):
- Agent 会话超过上下文窗口
- 代码库规模超过上下文(资料举例 5M+ token 系统)
- 设计对话摘要策略
- 调试 agent「忘记」改过哪些文件
- 构建压缩质量评估框架
- 制作可交接摘要,保留决策、文件、风险与 next actions
安装与启用¶
本 Skill 为文本指令,无单独二进制。常见加载方式(与 awesome-agent-skills 社区索引一致,具体以各平台文档为准):
Claude Code
/skills add https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering
安装集合后,在对话中说明要使用 skills/context-compression 下的压缩策略,或由 agent 按描述自动加载对应 Skill。
npx skills(Vercel labs)
npx skills find context-compression
npx skills add muratcankoylan/Agent-Skills-for-Context-Engineering
npx skills list
Claude.ai
可将该 Skill 目录下 SKILL.md 的 raw URL 粘贴到新对话(社区 Quick Start 所述方式)。
Cursor 等兼容 Agent
社区索引将 Cursor 列为兼容平台;通常将 Skill 目录放入项目或用户级 skills 配置路径后,在任务描述中引用「按 context-compression 做压缩与摘要」。Cursor 侧路径以当前产品文档为准,资料未给出专用命令时不臆造配置项。
Skill 源文件路径:
https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering/tree/main/skills/context-compression
典型用法¶
-
选型:长会话改代码 → 优先 Anchored Iterative Summarization + 脚手架侧 artifact index;短任务极致省 token → 评估 Opaque Compression 是否可接受重拉取成本;要可读交接文档 → Regenerative Full Summary,并控制全量再生频率。
-
定触发:coding 场景默认 sliding window(保留最近 N 轮 + 结构化摘要);上下文利用率到 70–80% 的 fixed threshold 可作为辅助信号。
-
写摘要:每次压缩填充 Session Intent、Files Modified、Decisions Made、Current State、Next Steps 等强制分节;路径与函数级变更写全。
-
验质量:压缩后跑 Recall / Artifact / Continuation / Decision 四类 probe;若 agent 频繁重读同一文件,收紧压缩或加强 artifact 跟踪。
适用场景与注意¶
适合:自主 coding agent、长 horizon 任务、需要 handoff 的多人或多 agent 协作、要为压缩方案写评估与回归用例的团队。
注意:
- 不要为省单次请求 token 牺牲工件轨迹;tokens-per-task 才是主指标。
- Opaque Compression 在需要审计「保留了什么」时不适用。
- 与
context-optimization、self-managed-context等相邻 Skill 分工明确,避免在同一问题上混用多套互相矛盾的指令。
结尾¶
context-compression 把长会话里「怎么压上下文」写成可执行的策略与检查清单:三种压缩路径、结构化摘要 schema、触发策略表,以及 probe 式评估。若你正在做生产级 Agent 的 Context Engineering,可从官方目录直接加载该 Skill:
https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering/tree/main/skills/context-compression