TokenEconomizer经验驱动的黑盒成本控制
微软研究院加州大学伯克利分校arXiv 2610.22732

同一个仓库里,
不该从头学两遍。

编码智能体每开一个会话,都要重新摸索一遍仓库:构建怎么跑、命令怎么写、哪些工具根本用不上。TokenEconomizer 把这些答案从已跑过的会话里记下来。插件不改动模型、权重与代码。

支持Claude CodeCodexCopilot CLIPiopencode · 实验性
同一仓库,连续六个会话(点击行查看详情)工作浪费
六次会话合计600 降到 508单次最高 −28%
S1 记下 python -m pytest,此前 pytest 缺失,记入微技能
S2 排除 Notebook 与 Browser,工具剪枝生效
S3 第三次同样的错误,循环守卫重定向
虚线为不装插件时的单会话成本;点击上方任一会话行可查看单步详情。
18.4–30.9%五种「智能体–模型」组合的平均成本降幅
30 / 30「仓库 × 组合」单元中更便宜的个数
4 / 5Pass@1 有所提升的组合数
277SWE-Bench 任务,来自六个仓库

三种机制,各管一类浪费

每种机制都能单独开关;斜体字母是各自的设置,均有默认值。

微技能 microskills

记住仓库是怎么运作的。构建必须先跑哪一步、命令在这里该怎么写、需要哪个环境变量、生成文件落在哪里。事实来自两处:跨会话反复出现的失败,以及每隔k 个会话审阅近期会话的模型。

S1S2S3S4S5S6S7
连续三个会话都确认,事实从 S4 起每轮陈述一次
k = 3确认 3 次后陈述被推翻即丢弃

工具剪枝 tool pruning

停止加载用不到的工具。每个被加载的工具定义都会随每次请求一起发送。一个工具若横跨 m 个会话、在 p 次提示中未被使用,或在任意长度的 s 个会话中未被使用,就会通过智能体自身的设置被排除。

ReadEditBashGrepNotebookBrowser
横跨两个会话、十次提示都没用到,才会被排除
p = 10m = 2s = 5q = 60 分钟

失败循环干预 loop guard

在某一轮卡住时介入。当一轮持续撞上同样的失败,裁判模型判断它是否卡住;把握达到 c 时注入一条重定向,每轮最多 r 次。之后仍然卡住,它会告诉你怎么停下,而它自己绝不终止某一轮。

×ModuleNotFoundError: pytest×ModuleNotFoundError: pytest×ModuleNotFoundError: pytest重定向
同样的失败第三次出现,裁判确认后注入一条提示
c = 0.7r = 1b = 2.5×绝不自行终止

为什么这些浪费会重复

智能体被设计来完成任务,而不是来省钱。

每一轮都要为智能体的指令、每个被加载的工具,以及到目前为止的对话重新付费。开发者在同一仓库上反复使用同一个智能体,于是大量成本被重复支付:同样的事实被重新发现、同样的未用工具被发送、同样类型的失败循环。

TokenEconomizer 不去动智能体的模型、权重和代码,而是跨仓库的多个会话去学习,而不是把每个会话孤立对待,因此插件付出的任何开销,都会在后续会话中回本。

经由智能体本就在读的东西

事实在会话开始时进入上下文,工具通过智能体自身的设置被移除,因此不依赖智能体学会一个新的工具。

按账单上的方式计算成本

一个会话里大多数 token 都是带缓存的重读,因此成本按缓存定价计算,并且包含了插件自身的模型调用。

保护任务成功率

事实只从反复出现的证据中形成,工具只在长期未用之后才被移除,而循环守卫会放过仍在推进的某一轮。

让每个动作都可逆

被后续会话推翻的事实会被丢弃,被移除的工具可以还给智能体,循环守卫只会重定向并告诉你:是否停掉某一轮,由你决定。

在 277 个 SWE-Bench 任务上实测

六个仓库、五种组合,一开始什么都还没学到;成本包含插件发出的每一次模型调用。

智能体–模型成本Pass@1
Claude CodeSonnet 5−23.6%+1.3
Claude CodeOpus 4.8−30.9%−1.0
CodexGPT-5.6 Terra−24.7%+0.9
CodexGPT-5.6 Sol−26.1%+1.6
Copilot CLISonnet 5−18.4%+2.6
每个仓库内部:5–40%Web-Bench:16–21%安全审计基准:6–20%完整数据:项目主页

成本降幅

同一批任务,与各自的默认配置相比。

Opus 4.8−30.9%
GPT-5.6 Sol−26.1%
GPT-5.6 Terra−24.7%
Sonnet 5 / Claude Code−23.6%
Sonnet 5 / Copilot CLI−18.4%

Pass@1 的下降只出现在 Opus 4.8;其余四种组合在变便宜的同时更准。Web-Bench 上同样成立(16–21%),在两个「每个任务都在全新仓库里」的安全审计基准上也成立(6–20%)。

快速开始

需要已登录的智能体之一,以及 PATH 上的 Python 3.10+。插件不需要自己的 API 密钥,也从不处理凭证。

$git clone https://github.com/microsoft/TokenEconomizer.git
$claude plugin marketplace add "$PWD/TokenEconomizer"
$claude plugin install tokeneconomizer@tokeneconomizer
安装后启动 claude,信任该文件夹(Yes, I trust this folder),并运行 /tokeneconomizer:status,如被询问则允许其脚本运行。每台机器一次,并在 Claude Code 更新之后,再次运行 /tokeneconomizer:toolprune refresh-catalog。
命令智能体内输入 /tokeneconomizer:<命令>;终端内运行 ~/.tokeneconomizer/bin/te --host claude <命令>
更新在克隆目录里 git pull,再开启新会话(或运行 /reload-plugins)

常见问题

关于缓存命中、凭证安全、误剪恢复与多目录共享机制。

插件需要单独配置 API Key 吗?我的代码会被上传到外部服务器吗?

不需要任何额外 API Key,代码也绝不会离开你的机器。插件的所有状态保存在本地 ~/.tokeneconomizer(目录权限 0700,文件 0600)。当循环守卫的裁判或微技能提议器需要调用模型时,它直接通过你已登录的智能体 CLI(claude -p、codex exec、copilot -p、pi -p)发起调用,且只发送脱敏后的命令模板、文件名与归一化报错行,从不发送源码内容。

工具剪枝修改工具列表后,会不会导致正在进行的对话缓存(Prompt Cache)失效?

不会。实测验证表明,运行中的会话会保持启动时的工具列表不变;而恢复旧会话(如 claude --continue 或 codex resume)则会使用新工具列表并重写缓存。因此工具剪枝专门设计了静默等待窗口(默认 toolprune_quiet_minutes = 60):只有当你在该仓库的所有会话空闲满 60 分钟(此时提示缓存本就已过期)后,插件才真正把拒绝列表写入本地配置文件。

如果工具剪枝把某个我偶尔才用的工具排除了,怎么恢复?

随时运行 toolprune restore(或指定工具名 toolprune restore NotebookEdit)即可一键归还。被你手动归还的工具会被永久记入保护名单,后续即使长期不用也不会再被自动排除。你也可以通过 config set toolprune_protect=工具名 提前保护特定工具,或设为 toolprune=propose 改为每次由你手动确认。

为什么微技能(microskills)默认是关闭的,而工具剪枝和循环守卫默认开启?

因为工具剪枝完全不调用模型,循环守卫也只在某一轮出现明显的重复报错循环迹象时才唤醒一次轻量裁判;而微技能的提议器默认每隔 3 个会话会调用一次模型来总结近期会话。如果你希望零模型调用开销地使用微技能,可以运行 config set microskills=envfacts,它只从跨会话重复出现的命令失败中提取确定性事实。

循环守卫判定某一轮卡住时,会不会直接强行杀掉我的智能体任务?

绝不会。插件奉行「让每个动作都可逆」的原则:第一次判定卡住时,它会在工具返回结果后附带一条简短的重定向提示,建议模型换一种思路(每轮最多 r = 1 次);如果重定向之后这一轮依然在原地打转,插件只会打印一行提示告诉你当前智能体该如何手动中断(如按 Esc),是否停下完全由你决定。

同一个仓库有多个 git worktree 或多个克隆目录,学到的经验会共享吗?

会自动共享。插件通过 git origin 远端地址识别仓库身份,因此同一仓库的所有克隆、子目录和 git worktree 共享同一份微技能事实、工具证据与循环包络统计;而工具剪枝生成的本地配置文件(如 .claude/settings.local.json)则按各自的检出目录独立维护,并自动加入 .git/info/exclude 避免污染 git 状态。

深入技术细节

从标准库接口设计、各智能体真机验证到论文基准实验复现。

ARCHITECTURE架构与接口设计

四大标准库抽象接口、六个生命周期钩子拆解,以及插件与论文实验设置的 8 项对照。

VERIFIED插件验证与状态隐私

五种智能体真机验证记录、60 分钟提示缓存保护窗口、按提示计数消融与脱敏摘要边界。

BENCHMARKS复现论文实验

SWE-Bench(277 任务)与 Web-Bench(102 任务)的五步配置、实验组启动脚本与汇总对比。

DIAGNOSTICS故障排查与诊断

te doctor 环境自检、te probe 七会话闭环探测,以及插件与实验复现常见报错修复。

装好就照常工作,插件不需要你做任何事。想知道全部 15 条命令、9 项核心设置与三档循环守卫预设阈值,去文档总览里看。

打开文档总览
本站为 TokenEconomizer 论文与仓库的中文导览 · Apache-2.0加州大学伯克利分校 · 微软研究院