前言¶
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