Tokencompress:一个亚2毫秒的Go CLI和MCP sidecar,用于修剪AI代理的工具上下文
Tokencompress 是一个零依赖、亚毫秒级(标题称亚2毫秒)的 Go CLI 和 MCP 副进程,在工具输出进入 AI 代理上下文之前压缩 JSON、终端日志和 HTML,可在不调用第二个 LLM 摘要回合的情况下将令牌消耗减少 60%–80%。
Tokencompress 是一个轻量级工具,旨在解决 AI 代理在执行工具时面临的大量原始数据问题。它采用 Go 编写,零外部依赖,运行速度极快,官方宣称其延迟低于 2 毫秒(甚至亚毫秒级)。该工具可作为 CLI 管道过滤器或 MCP sidecar 使用,在数据进入模型上下文窗口之前进行压缩处理。
AI 代理在调用 API、执行终端命令或抓取网页时,常常收到成千上万行的未解析数据。例如,包含 1000 个元素的 JSON 数组可能消耗超过 15,000 个令牌;冗长的堆栈跟踪中充斥着框架噪音和 node_modules 路径;原始 HTML 中的 CSS、脚本和导航菜单也大量占用上下文。这些问题会导致 API 成本上升、响应变慢,甚至出现上下文腐烂——代理在任务中产生幻觉或重复调用工具。
Tokencompress 提供确定性过滤:JSON 模式保留代表性示例,并用元数据替换冗余数组项;日志模式剥离内部框架路径,只保留根本错误信息、用户文件路径和执行行;HTML 模式删除脚本、样式和导航元素,转换为易读的文本或 Markdown。此外,它还会按会话对工具输出进行哈希,如果代理连续两次收到重复的工具结果,会在输出前添加警告头。
安装和使用十分简单:通过 make build 完成编译,然后即可通过管道使用。例如,压缩大型 JSON 响应可运行 cat large_response.json | tokencompress --mode json;处理堆栈跟踪日志可添加 --log-internal-marker 参数;清理 HTML 可直接使用 curl 管道。MCP 集成同样方便,只需在 Claude Desktop 配置中添加一个 mcpServers 条目。
作者提供的基准测试显示,在 500 项 JSON 数组上可将约 12,500 个令牌压缩至约 850 个(减少 93.2%);Python 堆栈跟踪从约 3,200 降至约 410(减少 87.1%);HTML 网页抓取从约 18,000 降至约 2,100(减少 88.3%)。这些压缩完全基于规则,不需要调用第二个 LLM,因此额外延迟极低。
该项目以 MIT 许可证发布,可自由用于开源和商业代理环境。如需定制集成或专用解析器,作者提供了付费咨询和自定义开发服务。