Token Killer Skill
概述
Token Killer 是一个轻量级预处理技能,定位为大模型 API 请求的"瘦身层"。它位于命令行输入与大模型 API 之间,在请求发出前执行智能过滤与无损压缩,剔除注释、空白、调试日志、重复上下文、冗余元数据等无效信息,显著降低 token 消耗,同时保证语义完整性。
处理流水线:命令行输入 → 解析 → 标记识别 → 过滤 → 压缩 → 输出 → 大模型 API
核心目标:将平均每次请求的 token 用量减少 60%~85%,API 费用降低 70%+,且响应质量不受影响。处理延迟控制在 50ms 以内。
何时使用
在以下任一情况激活本技能:
- 用户明确要求"节省 token""压缩上下文""减少费用""精简输入""瘦身"等降本意图。
- 历史对话上下文接近或超过 80% 窗口限制,需要裁剪以避免截断。
- 输入内容包含大量注释、调试输出(console.log / print / debug)、明显冗余或重复代码块。
- 用户使用
--compress或-c标志,或要求"先压缩再发给模型"。 - 需要将长文本、日志、堆栈、配置文件、JSON/XML/YAML 瘦身后投喂给大模型。
- 作为 Agent 中间件,在每次调用大模型前自动运行(可通过开关控制)。
如何使用
1. 命令行直接使用
将 src/killer.py 作为可执行脚本运行。支持的参数:
# 直接压缩文本(从 stdin 读取)
echo "长文本..." | python killer.py --apply > compressed.txt
# 从文件读取并压缩
python killer.py --apply -i input.txt -o compressed.txt
# 预览压缩效果(dry-run,不修改,展示将移除的内容与 token 对比)
python killer.py --preview < input.txt
# 查看累计统计
python killer.py --stats
# 启动本地代理服务(所有发往 localhost:8080 的请求体压缩后转发)
python killer.py --proxy --port 8080
# 指定自定义配置文件
python killer.py --apply --config ~/.token-killer/config.yaml
关键参数说明:
- --apply:实际执行压缩(不加此参数默认为 dry-run 预览模式,安全优先)。
- --preview:只展示将要移除的内容与压缩前后 token 对比,不修改原文本。
- --stats:输出累计节省的 token 数与估算费用。
- --proxy:以本地代理服务模式运行,自动压缩转发请求。
- --config:指定自定义配置文件路径,默认读取 ~/.token-killer/config.yaml,回退到技能内置 config.json。
- --format:指定输入格式(auto / code / json / yaml / xml / text),默认 auto 自动识别。
2. 作为 Python 模块导入
from src.killer import TokenKiller
killer = TokenKiller(config_path="config.json")
result = killer.process(text, apply=True)
print(result.compressed_text)
print(f"tokens: {result.tokens_before} -> {result.tokens_after}")
3. 配置体系
配置按以下优先级加载(高优先级覆盖低优先级):
- 命令行参数(最高)
--config指定的配置文件- 用户目录
~/.token-killer/config.yaml - 技能内置
config.json(最低,作为默认基线)
用户配置模板见 templates/config.yaml,自定义过滤规则模板见 templates/rules.yaml。
4. 核心模块职责
| 模块 | 职责 |
|---|---|
src/killer.py |
CLI 入口与编排,串联完整流水线 |
src/filters.py |
智能内容过滤:注释、空白、调试日志、元数据、堆栈裁剪 |
src/compressor.py |
语义压缩:摘要生成、结构化抽取、历史合并、去重 |
src/optimizer.py |
上下文优化:优先级截断、动态长度调整 |
src/rules_engine.py |
规则引擎:加载 YAML 规则、正则/关键词/白名单匹配 |
src/stats.py |
监控统计:token 对比、费用估算、累计报告 |
src/proxy.py |
API 代理模式:拦截请求体并压缩转发 |
src/utils.py |
公共工具:token 计数、格式探测、备份恢复 |
5. 安全与保真原则
- 默认 dry-run:未加
--apply时只预览不修改,避免误删。 - 自动备份:执行压缩前自动备份原始输入到临时目录,可回滚恢复。
- 保真校验:压缩后输出语义相似度评分(可选,依赖
sentence-transformers),低于阈值告警。 - 白名单保护:
preserve_keywords中的关键词所在行/块不会被移除。 - 可逆性:所有过滤操作记录到日志,可据此重建被移除内容。
6. 参考文档
详细设计依据与扩展说明见 references/ 目录:
references/RULES.md— 过滤规则与规则引擎的完整定义、正则模式、优先级、自定义方法。references/AGENT_CORE_PRINCIPLES.md— 代理核心原则:安全保真、延迟控制、可逆性、可观测性的硬性约束。references/USER_CONTEXT.md— 用户上下文处理:历史对话压缩策略、优先级截断规则、动态长度调整逻辑。
触发集成示例
作为 Agent 中间件自动运行:
# 在调用大模型前插入预处理
def call_llm(prompt: str) -> str:
killer = TokenKiller()
result = killer.process(prompt, apply=True)
if result.tokens_after > killer.config.budget.max_input_tokens:
result = killer.optimize_context(result) # 触发上下文优化
return real_llm_api(result.compressed_text)