关于 context-compressor
用于本地分析和压缩文本或适配后的 JSON 的技能,适合上下文过长的场景。它提供查询引导和证据感知流程,并检查压缩内容是否保留足够依据以支持可靠回答。
主要功能
- 01分析压缩前后的令牌用量
- 02压缩文本和适配后的 JSON
- 03提供查询引导与证据感知模式
- 04检查保留证据是否充分
- 05支持缓存友好的提示词组装
- 06提供 Python 脚本和 Node.js 封装
适用场景
- 01发送给模型前缩减上下文
- 02压缩对话历史并保留近期轮次
- 03准备面向查询的 RAG 或提示词内容
- 04检查压缩上下文能否支撑可靠回答
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill context-compressor安装后在 Claude Code 中输入/context-compressor确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
commands/context-compressor.mdevals/evals.jsonhooks/post-execute.cjspre-execute.cjsreferences/evaluation.mdprompt-caching.mdresearch-requirements.mdreferences/skill-creator-reference/LICENSE.txtreferences/skill-creator-reference/agents/analyzer.mdcomparator.mdgrader.mdreferences/skill-creator-reference/assets/eval_review.htmlreferences/skill-creator-reference/commands/skill-creator-reference.mdreferences/skill-creator-reference/eval-viewer/generate_review.pyviewer.htmlreferences/skill-creator-reference/hooks/post-execute.cjspre-execute.cjsreferences/skill-creator-reference/references/research-requirements.mdschemas.mdreferences/skill-creator-reference/rules/skill-creator-reference.mdreferences/skill-creator-reference/schemas/input.schema.jsonoutput.schema.jsonreferences/skill-creator-reference/scripts/__init__.pyaggregate_benchmark.pygenerate_report.pyimprove_description.pymain.cjspackage_skill.pyquick_validate.pyrun_eval.py详细介绍
上下文压缩器
当问题主要是“上下文过多”而非“能力不足”时,使用此技能。
此技能是一个自包含的本地包,无需 MCP 服务。当你需要快速分析 token 用量、本地压缩、检查证据或在代码库中执行可复现的压缩工作流时,优先使用此技能。
此技能的功能
使用打包的 Python 脚本来:
- 衡量原始与压缩后的 token 用量
- 压缩大型文本或经过适配的 JSON 载荷
- 保留与查询相关的证据,而不是进行简单摘要
- 检查压缩后的输出是否仍包含足够证据,以便安全地作答
- 通过将稳定上下文放在前面、易变的查询文本放在后面,支持缓存友好的提示词组装
触发时机
当用户提出以下任一需求时,使用此技能:
- 压缩此文件、对话记录、文档或代码转储
- 在向模型发送上下文前降低 token 成本
- 让提示词或 RAG 载荷更适合缓存
- 精简多轮对话历史,同时保留最近的轮次
- 比较语义压缩与更轻量的抽取式基线
- 验证压缩后的上下文是否仍有足够证据
以下情况也会自动触发:
- 上下文接近 80K token(spawn-token-guard.cjs 会写入 compression-reminder.txt)
- 上下文达到 120K token(新增生成进程前必须先压缩)
- 上下文达到 150K token(红线——压缩完成前不得生成新的 Agent)
快速工作流
默认按以下顺序执行:
- 先分析
- 有具体问题时,运行
query_guided - 注重正确性并需要充分性检查时,运行
evidence_aware - 如果证据薄弱,则降低压缩强度或扩大检索范围
- 报告节省情况、风险和下一步最安全的操作
如果用户只需要一条命令,请使用 run_skill_workflow.py。
命令
从 agent-studio 代码库根目录运行。始终使用以下确切命令——不得改用通用指导。
1. 分析 token 用量
python .claude/skills/context-compressor/scripts/profile_tokens.py --file <path> --output-format auto
2. 压缩上下文
python .claude/skills/context-compressor/scripts/compress_context.py --file <path> --mode baseline --output-format auto
python .claude/skills/context-compressor/scripts/compress_context.py --file <path> --mode query_guided --query "<question>" --output-format auto
python .claude/skills/context-compressor/scripts/compress_context.py --file <path> --mode evidence_aware --query "<question>" --min-similarity 0.4 --output-format auto
3. 适配框架 JSON 并进行压缩
python .claude/skills/context-compressor/scripts/compress_context.py --json-file <payload.json> --input-adapter auto --mode query_guided --query "<question>" --output-format auto
4. 运行完整工作流
python .claude/skills/context-compressor/scripts/run_skill_workflow.py --file <path> --mode evidence_aware --query "<question>" --output-format auto --fail-on-insufficient-evidence
5. 仅验证证据
python .claude/skills/context-compressor/scripts/validate_evidence.py --file <path> --query "<question>" --min-similarity 0.4 --output-format json
6. 运行 TOON 与 JSON 防护检查
python .claude/skills/context-compressor/scripts/benchmark_toon_vs_json.py
7. Node.js 包装器(用于 Agent 集成)
node .claude/skills/context-compressor/scripts/main.cjs --query "<question>" --mode evidence_aware --limit 20 --fail-on-insufficient-evidence
如何选择模式
baseline:尚无具体问题时,进行快速通用压缩query_guided:问答、审查或定向提取任务的最佳默认模式evidence_aware:用于高风险回答、审计,或需要明确信号来判断证据是否充分时
输出要求
使用此技能时,用通俗易懂的语言概述结果:
- 原始大小与压缩后大小
- 估算的 token 节省量或压缩率
- 输出是针对查询优化还是通用输出
- 证据是否充分
- 回答可能遗漏重要细节的风险
如果脚本返回的证据不足,不要虚张声势。应说明压缩后的上下文尚不够安全,并建议扩大处理范围。
随附参考资料
仅在相关时阅读:
references/workflow-guide.md:命令选择、模式选择和示例流程references/prompt-caching.md:稳定前缀排序、缓存遥测和缓存安全的提示词结构references/evaluation.md:如何对技能进行基准测试并解读结果
评估脚手架
入门提示词位于 evals/evals.json。迭代改进技能或需要一组小型、可重复的基准测试时,可使用这些提示词。
与 agent-studio 集成
压缩触发流水线
compression-trigger.cjs检测到上下文压力 → 写入compression-reminder.txt- Router 读取提醒 → 使用此技能生成
context-compressorAgent - Agent 使用查询上下文运行
run_skill_workflow.py - 实际压缩统计数据记录在
compression-stats.jsonl中
记忆持久化
压缩后,通过 MemoryRecord 持久化提炼出的经验:
gotchas.json:文本包含 gotcha|pitfall|anti-pattern|risk|warning|failureissues.md:文本包含 issue|bug|error|incident|defect|gapdecisions.md:文本包含 decision|tradeoff|choose|selected|rationalepatterns.json:所有其余提炼证据的默认回退文件
ccusage 成本跟踪
在决定压缩力度前,读取 .claude/context/runtime/ccusage-status.txt 获取实时令牌用量。每次调用工具时,ccusage-statusline.cjs 都会自动更新此文件。格式:
[tokens] 135,345 today (in: 14,850 / out: 120,495) | Cost: $127.4826
[cache] $627.2992 saved | 139,399,832 reads, 8,751,364 writes
Router MUST 在每个流水线里程碑都显示此内容(P0 用户反馈)。回退方案:ccusage --no-color 2>&1 | tail -5。
铁律
- 始终使用上述确切的脚本命令——绝不回退到通用的 CLAUDE.md 指南
- 始终先进行分析,再压缩,以了解输入大小
- 绝不在正确性至关重要时不带查询进行压缩——使用
evidence_aware模式 - 始终在压缩后通过 MemoryRecord 持久化提炼出的经验
- 绝不在证据不足时虚张声势——建议进行更全面的处理
- 始终用通俗语言报告节省量、风险和下一步最稳妥的操作