⚡ 代币救世主召回
MCP服务器将Claude变成唯一命中的编码代理 100% 在一个真实的基准上。 结构代码导航+持久内存。 −77%的活跃代币。−76%的墙时间。零损失。
](https://github.com/Mibayy/token-savior/releases/tag/v3.0.0)    [![Benchmark]()](https://mibayy.github.io/token-savior/)    
📖 --项目现场+基准落地 🧪 --基准源+夹具
______________________________________________________________________
基准测试——96个实际编码任务(默认为mini+v2)
| 简单的克劳德代码 | 与令牌救世主 | |
|---|---|---|
| 得分 | 141 / 180 (78.3%) | 192 / 192 (100.0%) |
| 活动令牌/任务 | 17 221 | 3 929 (−77%) |
| 墙时间/任务 | 110.6秒 | 26.6秒 (−76%) |
| 胜/平/输 | — | 25 / 65 / 0 (90对) |
在所有11个类别中均达到完美(100%): audit, bug_fixing, code_generation, code_review, config_infra, data_analysis, documentation, explanation, git, navigation, refactoring, writing_tests对普通克劳德零损失——每一项任务都是 获胜或平局。
默认配置-- TS_PROFILE=tiny_plus (15个工具,约2.5千吨清单)
TS_CAPTURE_DISABLED=1+v2系统提示禁止Agent
次级代理授权——100%复制Opus 4.7 -54%活跃 代币与遗产 lean 简介.
也在Sonnet 4.6上进行了验证(ts 170/180=94.4%,而基数156/180=86.7%)。
模型:Claude Opus 4.7·方法论+每项任务分解: ****.
______________________________________________________________________
它做什么
Claude Code读取整个文件来回答关于三行的问题,然后忘记了 会话结束的那一刻。Token Savior Recall修复了这两个问题。它 按符号(函数、类、导入、调用图)对代码库进行索引,因此 模型通过指针导航,而不是通过 cat.实测减少量: 97% 注入的字符更少 170多个真实会话。
在此之上,还有一个持久内存引擎。每一个决定,bug修复, 惯例、护栏和会话汇总存储在SQLite WAL+FTS5+向量中 嵌入,按贝叶斯有效性和投资回报率排名,并作为紧凑型重新注入 增量在下一个会话开始时。保存时检测到矛盾 时间;观测值随显式TTL衰减;三层渐进式披露 契约使查找成本保持在一定范围内。
______________________________________________________________________
代币节省
| 操作 | 普通克劳德 | 令牌救世主 | 减少 |
|---|---|---|---|
find_symbol("send_message") | 41M个字符(完全读取) | 67个字符 | −99.9% |
get_function_source("compile") | grep+cat链 | 4.5K字符 | 直接 |
get_change_impact("LLMClient") | 不可能 | 16K个字符(154个直接字符+492个可传递字符) | 新功能 |
get_backward_slice(var, line) | 130行 | 12行 | −92% |
memory_index (第1层) | n/a | ~15个标记/结果 | 第1层入围名单 |
| 90任务台(Opus基地→ts) | 17.2 KT活动/任务 | 3.9 KT活动/工作 | −77% |
| tsbench评分(作品,96项任务) | 141/180(78.3%) | 192/192 (100.0%) | +22分 |
完整的基准方法和每项任务的结果: tsbench.
______________________________________________________________________
记忆引擎
| 能力 | 它是如何工作的 |
|---|---|
| 存储 | SQLite WAL+FTS5+ sqlite-vec (可选),12种观察类型 |
| 混合搜索 | BM25+矢量(all-MiniLM-L6-v2,384d)通过RRF融合,FTS回退优雅 |
| 渐进式披露 | 三层合同: memory_index → memory_search → memory_get |
| 引用URI | ts://obs/{id} --跨层可重用,代理本地指针 |
| 贝叶斯有效性 | 每个obs都携带一个有效性先验+更新规则;过时的obs会浮出水面,而不是默默地被信任 |
| 矛盾检测 | 在保存时根据现有索引触发;在钩子输出中标记 |
| 衰减+TTL | 按类型TTL(命令60d,研究90d,注释60d)+LRU评分 0.4·recency + 0.3·access + 0.3·type |
| 符号陈旧 | 当符号的内容哈希值发生变化时,链接到符号的Obs将无效 |
| ROI跟踪 | 访问次数×上下文权重——未使用的obs过期,高ROI obs被推广 |
| MDL蒸馏 | 最小描述长度分组将冗余观测值压缩为约定 |
| 汽车促销 | 备注×5次访问→ 公约;警告×5→ 护栏 |
| 钩子 | 8个Claude代码生命周期钩子(会话开始/停止/结束、PreCompact、PreToolUse×2、UserPromptSubmit、PostToolUse) |
| 网络观众 | 127.0.0.1:$TS_VIEWER_PORT --htmx+SSE,选择加入 |
| LLM自动提取 | 选择加入 TS_AUTO_EXTRACT=1 --PostToolUse工具使用通过小模型调用提取到0-3个观测值中的函数 |
______________________________________________________________________
vs 克劳德
两个项目有一个共同的目标——克劳德代码的持久内存。轴 下面是衡量,而不是营销。
| 轴心 | 克劳德成员 | 救世主回忆 |
|---|---|---|
| 贝叶斯有效性 | 否 | 是 |
| 保存时的矛盾检测 | 否 | 是 |
| 每种类型衰减+TTL | 否 | 是 |
| 符号过时(内容哈希链接obs) | 否 | 是 |
| ROI跟踪+自动推广 | 否 | 是 |
| MDL蒸馏成惯例 | 否 | 是 |
| 代码图/AST导航 | 否 | 是 (90个工具,跨语言) |
| 渐进式披露合同 | 否 | 是 (3层,约15/60/200个代币) |
| 混合FTS+矢量搜索(RRF) | 否 | 是 |
Token Savior Recall是一个超集:它提供了内存引擎 *加* 这 为项目命名的结构化代码库服务器。
______________________________________________________________________
安装
uvx(无venv,无克隆)
uvx token-savior-recall点
pip install "token-savior-recall[mcp]"
# Optional hybrid vector search:
pip install "token-savior-recall[mcp,memory-vector]"克劳德代码一行
claude mcp add token-savior -- /path/to/venv/bin/token-savior发展
git clone https://github.com/Mibayy/token-savior
cd token-savior
python3 -m venv .venv
.venv/bin/pip install -e ".[mcp,dev]"
pytest tests/ -q配置
{
"mcpServers": {
"token-savior-recall": {
"command": "/path/to/venv/bin/token-savior",
"env": {
"WORKSPACE_ROOTS": "/path/to/project1,/path/to/project2",
"TOKEN_SAVIOR_CLIENT": "claude-code"
}
}
}
}可选环境: TELEGRAM_BOT_TOKEN + TELEGRAM_CHAT_ID (批判性观察 饲料), TS_VIEWER_PORT (网络查看器), TS_AUTO_EXTRACT=1 + TS_API_KEY (LLM自动提取), TOKEN_SAVIOR_PROFILE (full / core / nav / lean / ultra --过滤器广告工具集以缩小每圈MCP清单)。
______________________________________________________________________
工具(90)
类别计数——通过MCP提供完整目录 tools/list.
| 类别 | 计数 |
|---|---|
| 核心导航 | 14 |
| 依赖关系和图表 | 9 |
Git 与 Diffs 5 |安全编辑|8| |检查点|6| |测试与运行|6| |配置和质量|8| |Docker和多项目|2| |高级上下文(切片、打包、RWR、预取、验证)|6| | 记忆引擎 | 21 | |推理(计划/决策痕迹)|3| |统计、预算、健康|10| |项目管理|7|
档案
TOKEN_SAVIOR_PROFILE 过滤广告 tools/list 有效载荷,同时 让训练员活着。
| 简介 | 广告 | ~代币 | 用例 |
|---|---|---|---|
full *(默认)* | 67 | ~8 770 | 所有功能 |
core | 54 | ~5 800 | 每日编码,无内存引擎 |
nav | 28 | ~3100 | 只读探索 |
lean | 52 | ~6 940 | 内存引擎关闭——用于tsbench v2 |
ultra | 31 | ~4 250 | 热工具+ ts_extended 元工具 |
tiny *新* | 6 | ~1070 | 通过延迟加载 ts_search (工具注意模式) |
工作台模式环境变量
用于内存和捕获沙盒的基准测试/冷启动工作负载 不添加值,将配置文件与以下环境变量配对:
export TOKEN_SAVIOR_PROFILE=lean # or 'tiny' for max trim
export TS_MEMORY_DISABLE=1 # hide memory_* (-300 t)
export TS_CAPTURE_DISABLED=1 # hide capture_*, skip PostToolUse hook
export TS_HOOK_MINIMAL=1 # SessionStart emits Memory Index only
export TS_NO_HINTS=1 # drop _hints / _suggestion (~30-50 t/call)在tsbench上测量(90个任务,Claude Opus 4.7):
| 配置 | 活动令牌/任务 | 分数 |
|---|---|---|
| 普通代理(Read/Grep/Bash,无令牌救世主) | 17221 | 78.3% |
lean 配置文件(自v2.9以来默认) | 8 928 | 100.0% |
lean +以上5个环境变量 | ~5500 | 100.0% |
通过以下方式延迟加载 ts_search
当清单预算成为瓶颈时,新的 tiny 简介 仅显示6个工具(switch_project, find_symbol, get_function_source, get_full_context, search_codebase, ts_search).其他约60个工具可通过以下方式及时访问:
ts_search(query="find dependents of update_user", top_k=5)
# → {"matched_tools": [{"name": "get_dependents", "score": 0.68, ...}, ...]}嵌入(Nomic 768d)根据查询对每个工具描述进行评分; 前K名候选人带着完整的inputSchema回来了,所以下一轮 可以直接给他们打电话。镜子 工具注意事项 (47.3公里→ 2.4k个代币/回合,120个工具,-95%前缀)。
Anthropic API用户-与本机上下文管理配对
对于长代理循环,将Token Savior与Anthropic的原生代理结合使用 上下文原语(Claude API≥2025-09-19):
client = anthropic.Anthropic(default_headers={
"anthropic-beta": "context-management-2025-06-27,clear-tool-uses-2025-09-19",
})
resp = client.messages.create(
model="claude-opus-4-7",
context_management={"edits": [{
"type": "clear_tool_uses_20250919",
"trigger": {"type": "input_tokens", "value": 30_000},
"keep": {"type": "tool_uses", "value": 4},
"exclude_tools": ["replace_symbol_source", "edit_lines_in_symbol"],
}]},
tools=[...],
messages=[...],
)Anthropic的 食谱 措施 -48%峰值环境 在长代理循环中仅进行清除。
______________________________________________________________________
渐进式披露——记忆搜索
三层,成本增加。始终从第1层开始。只有在以下情况下才能升级 上一层已付清。完整合同: docs/progressive-disclosure.md.
| 层 | 工具 | 令牌/结果 | 何时 |
|---|---|---|---|
| 1 | memory_index | ~15 | 总是第一位 |
| 2 | memory_search | ~60 | 如果第1层匹配 |
| 3 | memory_get | ~200 | 如果第2层得到确认 |
每行第1层以结尾 [ts://obs/{id}] --直接传给第三层。
______________________________________________________________________
链接
- 网站 —
- 仓库 —
- PyPI —
- 基准 —
- 更新日志 — 更改日志.md
- 渐进式披露 — docs/progressive-disclosure.md
许可证
麻省理工学院——见 许可证.
适用于任何兼容MCP的AI编码工具。 Claude Code·Cursor·Codex CLI·Antigravity·Cline·Continue·Windsurf·Aider·Gemini CLI·Copilot CLI·Zed·任何自定义MCP客户端
