Tokenectomy Razor
# Tokenectomy Razor — AI 编程智能体的日志手术刀 ## 产品简介 Tokenectomy R
Tokenectomy Razor — AI 编程智能体的日志手术刀
产品简介
Tokenectomy Razor 是一款用 Rust 编写的本地 MCP(Model Context Protocol)服务器,专为 AI 编程智能体(Claude Code、Cursor、Cline、Antigravity、Windsurf 等)设计。它以亚毫秒级延迟对终端错误日志进行"手术"——切除 90% 以上的框架噪声(如 node_modules、site-packages、.cargo/registry 等依赖堆栈),同时自动脱敏泄露的数据库凭证、JWT 令牌、API 密钥等敏感信息,并将处理结果缓存 24 小时,重复错误零成本重试。产品支持通过 npm、crates.io 或 Docker 安装,完全本地执行,不向外部服务器发送原始日志数据。
核心能力
1. 多语言日志手术
支持 Rust、Python、TypeScript/JavaScript、Go、Java/Kotlin、C/C++、C#(.NET)、Ruby on Rails、PHP(Laravel/Symfony)等 9 种编程语言的堆栈跟踪解析,自动识别并剔除第三方依赖框架帧,保留开发者自写代码的出错位置,典型场景可将 38,000 Token 压缩至 2,000 Token,降幅达 94.7%。
2. 零泄露凭证脱敏
内置线性时间复杂度(O(N))的确定性正则表达式引擎,可实时检测并脱敏日志中的 AWS 密钥、OpenAI API Key、数据库连接字符串(postgresql://admin:secret@host:5432/db)、JWT Bearer Token、私钥等敏感信息,整个脱敏过程在本地完成,无外部网络请求。ReDoS 恶意载荷(50,000 字符)处理耗时仅 1.09ms。
3. AI 网关反向代理(--proxy)
在本地 127.0.0.1:8080 启动 HTTP 反向代理,透明拦截发往 Anthropic、OpenAI、Ollama 的请求流,在上游转发前完成 Token 削减和凭证脱敏。同时支持多模型自动路由——可将 Claude /v1/messages 格式动态转码为 OpenAI /v1/chat/completions,反之亦然,无需修改智能体配置。
4. SHA-256 幂等缓存
对确定性请求响应进行 24 小时 TTL 本地缓存,同一错误第二次重试的 API 调用成本为零。缓存键基于请求内容哈希,精确匹配,无雪崩风险。
5. 静态 AST 代码分析(analyze_code)
对 Python、TypeScript/JavaScript、Rust 代码执行静态抽象语法树分析,检测资源泄漏、未关闭句柄、语法错误和无界循环,处理上限为 50,000 AST 节点和 10MB 文件,超限自动截断并报告。
6. 原子代码补丁与自动回滚(apply_code_patch)
在 AI 智能体执行代码修改时,先通过 cargo check、node --check 或 py_compile 进行目标语言语法验证,通过后写入磁盘;验证失败则立即回滚到修改前 git 提交状态,保证自动化循环中零脏 diff。
7. 工作区路径隔离
所有 MCP 文件系统访问均经规范化路径检查,禁止 ../ 穿越符号链接逃离当前工作区根目录,防止恶意日志通过路径遍历攻击智能体环境。
安装配置
方式一:npm 免安装(推荐)
无需本地安装 Rust 工具链,一条命令即可运行:
npx -y tokenectomy-razor --mcp
方式二:crates.io 全局安装
cargo install tokenectomy
安装后在 Claude Desktop 配置文件中添加:
{
"mcpServers": {
"tokenectomy": {
"command": "npx",
"args": ["-y", "tokenectomy-razor", "--mcp"]
}
}
}
方式三:Docker 容器
docker pull ghcr.io/tokenectomy-labs/razor:latest
docker run -i ghcr.io/tokenectomy-labs/razor:latest --mcp
方式四:Claude Code / Cline 插件方式
claude mcp add tokenectomy npx -y tokenectomy-razor --mcp
使用步骤
基础日志清洗(管道方式)
将任意错误日志通过管道传给 razor --scrub,输出干净的脱敏结果:
cat failure.log | razor --scrub > sanitized.log
离线气隙模式(零外部网络调用)
cat failure.log | razor --scrub --local-only
启动 AI 网关代理
启动本地代理,透明削减所有流经的请求:
# 转发至 OpenAI
razor --proxy --proxy-bind 127.0.0.1:8080 --upstream-url https://api.openai.com/v1
# 转发至本地 Ollama
razor --proxy --proxy-bind 127.0.0.1:8080 --upstream-url http://127.0.0.1:11434/v1
然后将智能体或 SDK 的 Base URL 指向 http://127.0.0.1:8080/v1。
包装任意 CLI 工具
用 razor wrap 将任意命令行工具(如测试框架、构建工具)包装在日志削减保护下运行:
razor wrap -- claude
razor wrap -- aider --model deepseek/deepseek-chat
razor wrap npm test
监控 FinOps 仪表板
在浏览器中打开 http://127.0.0.1:8080/dashboard,实时查看 Token 削减量、美元节省金额、请求总数和凭证脱敏记录。
适用场景
场景一:持续集成中的 Token 成本优化
AI 智能体在 CI/CD 流水线中反复触发相同错误时,传统方式每次重试都消耗等量 Token;Tokenectomy 的 SHA-256 缓存使第二次重试成本降为零,一条流水线下来可节省数百美元。
场景二:安全合规要求下的日志处理
金融、医疗、企业内部系统要求日志不得包含真实凭证。Tokenectomy 的线性正则引擎在日志到达 LLM 之前完成脱敏,满足 SOC2、HIPAA 等合规审计要求。
场景三:多语言大型项目的错误诊断
当 Python FastAPI 项目同时调用 Rust 微服务时,混合语言堆栈跟踪可被 Tokenectomy 统一解析,只将各自用户代码部分送入上下文,大幅提升智能体定位真实错误的效率。
场景四:防止生产密钥泄露
开发者在本地调试时,数据库连接字符串和环境变量常常以明文出现在错误堆栈中。Tokenectomy 在日志离开本地之前完成凭证替换,即使日志被意外发送至外部 API 也不会造成泄露。
适用人群
AI 编程智能体重度用户:频繁使用 Claude Code、Cursor 等工具的开发者,每日处理大量错误日志,Tokenectomy 可显著降低 Token 消耗和 API 费用。
安全意识强的工程团队:需要防止生产凭证通过日志渠道泄露的团队,特别是使用 AI 编程工具处理真实业务代码的企业。
CI/CD 自动化工程师:在持续集成流水线中集成 AI 智能体的工程师,通过幂等缓存和零成本重试降低自动化循环成本。
多语言微服务开发者:同时维护多种语言项目,需要统一处理混合堆栈跟踪的开发团队。
工作原理
Tokenectomy Razor 基于 Model Context Protocol(MCP)标准,以 JSON-RPC 2.0 stdio 模式运行。核心处理流程如下:
第一步,日志解析器(extractor/)接收原始错误日志,通过多语言语法分析器识别堆栈帧,区分第三方依赖帧与用户代码帧。
第二步,脱敏引擎(redact.rs)对识别出的敏感模式(JWT、API Key、数据库 URI、私钥等)执行确定性正则替换,处理速度为 531,002 行/秒。
第三步,缓存模块(cache.rs)对已完成脱敏的确定性响应计算 SHA-256 哈希,存入 24 小时 TTL 本地缓存,重复请求直接返回缓存结果。
第四步,对于 MCP 协议调用(get_error_context、analyze_code、apply_code_patch),返回严格范围限定的工作区上下文和 UTF-16 坐标诊断信息,防止越界访问。
所有计算均在本地执行,产物 MIT 许可证开源,开发者可自行审计代码验证安全声明。
官方链接
- GitHub 仓库:https://github.com/Tokenectomy-Labs/Tokenectomy
- 官方文档:https://tokenectomy-web.vercel.app
- crates.io:https://crates.io/crates/tokenectomy
- npm 包:https://www.npmjs.com/package/tokenectomy-razor
- MCP 官方注册表:registry.modelcontextprotocol.io
评论与建议
登录 后参与评论或提建议