Microsoft TokenEconomizer 快速入门:让编码 Agent 在常用仓库里越跑越省

微软研究院与微软安全开源的编码 Agent 成本控制插件:用微技能注入、工具裁剪与失败环路拦截三条经验驱动策略,在常用仓库里降低 Claude Code / Codex / Copilot CLI / Pi 的 token 花费,不改模型也不改 Agent 代码。

📅 收录: 2026-11-13 🔄 更新: 2026-11-13

这是什么?适合谁?

TokenEconomizer 是微软研究院(Microsoft Research)与微软安全(Microsoft Security)联合加州大学伯克利分校发布的一个编码 Agent 成本控制插件,论文编号 arXiv:2610.22732,2026 年 10 月 15 日提交到 arXiv,同名 GitHub 仓库 microsoft/TokenEconomizer 于 2026 年 10 月 13 日创建,采用 Apache-2.0 许可,主体语言是 Python。

它解决的问题很具体:编码 Agent 每一次回合都会把整段上下文重新计费——系统提示、全部工具描述、以及到目前为止的对话。你在同一个仓库里连续做很多任务,每次任务结束其实都暴露了「这个环境需要什么」:Agent 查过什么、哪些工具根本没用上、卡在哪里。TokenEconomizer 把这些经验存下来,用在后续任务上,不改模型权重,也不改 Agent 的循环代码,只通过 Agent 已经暴露的三个接口动作:指令前缀、加载的工具集、以及运行中的事件流。

它的三个机制分别对应三类被量化的浪费(官方在 60 次未改造 Agent 的 SWE-Bench 运行上做的画像):

  • 微技能(micro-skills):记住这个仓库怎么跑。比如必须先执行的构建步骤、在这台机器上能用的命令写法(python -m pytest 而不是 pytest,npx tsc 而不是 tsc)、某个命令需要的环境变量、生成文件落在哪里。事实来自两处:跨会话重复出现的失败,以及每 k=3 个会话由模型审阅近期轨迹后提出的事实。一条事实要被 3 个会话确认过才会注入,被后续会话反驳则退役。
  • 工具裁剪(tool pruning):不再加载用不上的工具。一个工具在 p=10 个提示词、跨至少 m=2 个会话都没被调用,或在 s=5 个任意长度会话中没被调用,就会从后续会话中通过 Agent 自己的设置移出;一条命令就能还原。官方画像里,每回合被计费的 23 个工具描述中有 16 个从未被调用。
  • 失败环路拦截(loop guard):一个回合反复撞同一个错误时,由一个判断模型确认「是否卡住」,置信度到 c=0.7 就给 Agent 一条改换思路的短提示,每回合最多 r=1 次。官方画像里,失败的那 17% 任务吃掉了 32% 的花费。

适合谁:长期在少数几个仓库里用编码 Agent 的开发者;对 token 账单敏感、又不想换模型或换 Agent 的团队;已经在用 Claude Code、Codex、Copilot CLI、Pi 其中之一,并且愿意接受「插件需要额外几次模型调用」的人。

不适合谁:只在一次性仓库里跑 Agent 的人(经验无从积累,收益接近零);Agent 版本落在官方支持区间之外的人(官方明确说区间外未测试);不能接受插件替你发起模型调用的人;期待「装完立刻省 30%」的人——下面会解释为什么前三会话本来就不该省钱。

核验日期:2026-11-13。本文基于官方文档和公开资料整理,AI辅助生成,MagicNetWorld 尚未完成独立实测。

前置准备

装之前把这几件事确认掉,能省掉后面一半的排障时间。

  • Python 3.10 或更新版本,并且在 PATH 上。也可以用 TE_PYTHON=/path/to/python3.10+ 显式指定解释器。插件本身是标准库实现,不需要 pip install 任何东西。
  • 一个已登录的编码 Agent,用它能支持的任何方式登录都行(订阅或 API key 都可以)。插件不需要自己的 API key,也从不接触你的凭据——这是官方 README 的原话,也是它设计上最省心的一点。
  • 官方支持版本区间(README 表格,2026-11-13 读数):
    • Claude Code:2.1.300 到 2.1.310
    • Codex:0.153.1 到 0.164.0(0.141.0 之前的 Codex 完全不执行 plugin hooks)
    • Copilot CLI:1.0.83 到 1.0.102
    • Pi:1.2.0 到 1.3.0
    • 实验性:Cursor Agent 3.24.9 与 cursor-agent 2026.11.05(仅 macOS / Linux)、Grok Build 1.0.70、opencode 1.19.5 与 2.2.0、Hermes Agent 0.22.5、Antigravity CLI(agy 1.5.1,macOS / Linux)、Factory Droid 0.233.0(macOS)
  • 官方明确说了:这些命令只在每个区间的最早与最新版本上测过,更新的版本尚未测试。这句话很重要——它意味着你升级 Claude Code 之后,插件不一定跟着好使。
  • 计划好 clone 的位置。Claude Code、Codex、Copilot CLI、opencode 都是从 clone 目录直接运行插件,clone 挪走或删掉,插件就坏(见踩坑第 2 条)。建议放在一个你不会随手清理的固定路径,比如 ~/tools/TokenEconomizer。
  • 磁盘与网络:仓库本身不大,但 install 时会走插件市场机制,需要能访问 GitHub。

安装与启用

官方给出的路径是「先克隆、再按 Agent 注册插件」。命令都能直接复制。下面四段按你用的 Agent 选一段即可,全部在你准备放 clone 的目录里执行。

Claude Code

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——否则工具裁剪拿的是旧目录,可能一个工具都不裁。

Codex

git clone https://github.com/microsoft/TokenEconomizer.git
codex plugin marketplace add "$PWD/TokenEconomizer"
codex plugin add tokeneconomizer@tokeneconomizer

启动 codex,在该目录选 Trust and continue,然后在 Hooks need review 里选 Trust all and continue。钩子从下一个 Codex 会话开始生效,所以要先 /exit 再重新 codex,然后用 $tokeneconomizer:status 检查。注意 Codex 的命令前缀是 $ 不是 /。

Copilot CLI

git clone https://github.com/microsoft/TokenEconomizer.git
copilot plugin marketplace add "$PWD/TokenEconomizer"
copilot plugin install tokeneconomizer@tokeneconomizer

启动 copilot,选 Yes, and remember this folder for future sessions(Copilot 不信任目录时会直接忽略该目录下的 .github/copilot 设置),然后 /tokeneconomizer:status,遇到询问选 Yes 执行脚本。同样,每台机器一次、每次 Copilot 升级后要 /tokeneconomizer:toolprune refresh-catalog。

Pi(一条命令)

pi install git:github.com/microsoft/TokenEconomizer

启动 pi,输入 /te status。

其他实验性宿主(Factory Droid、Cursor Agent、opencode、Hermes Agent、Grok Build、Antigravity CLI)的接法各不相同,Droid 还要先 python scripts/build_plugin.py --droid 再装 dist/tokeneconomizer-droid。这些宿主的共同点是功能有缺口:Droid 的 TUI 没有持久化的逐工具开关,工具裁剪直接不可用;Hermes Agent、opencode、Antigravity 也不支持工具裁剪;Cursor 只能把会话成本标成不可用。如果你的主要目标是省钱,先用上表中第一梯队的四个宿主。

第一个完整任务:让它在一个仓库里先「学会」

这里要先把预期摆正。TokenEconomizer 的收益是跨会话累积的,不是装完立刻出现的。官方默认值决定了这个节奏:微技能要 3 个会话确认才注入,工具裁剪要 10 个提示词跨 2 个会话才动手,环路拦截要先攒够 5 个「正常结束」的回合才知道这个仓库的典型长度。所以第一个任务的目标不是「看省了多少钱」,而是验证它真的在这个仓库里读到了东西。

  1. 进入一个你最近反复用 Agent 干活的仓库,不要用刚 clone 下来的空项目。经验只能从真实重复里长出来。

    cd /path/to/your-frequent-repo
    git status
    

    确认工作区状态,别在没提交的改动上做实验。

  2. 启动 Agent 并信任目录(Claude Code 示例):

    claude
    
  3. 读初始状态。在 Agent 提示符里输入:

    /tokeneconomizer:status
    

    第一次应该是「几乎什么都没学到」的状态:没有微技能、没有裁剪记录、可能连会话成本还是 0。这是正常的,不是装错了。

  4. 做 3 个真实的小任务。每个任务都要有明确的完成信号,比如「把某个测试跑通」「改一个函数的错误处理」「补一条单元测试」。任务之间正常退出会话,让每次都是独立会话——微技能的确认计数按会话走。

  5. 再读一次状态,这次直接看它学到了什么:

    /tokeneconomizer:microskills
    /tokeneconomizer:toolprune
    /tokeneconomizer:status
    

    如果你开了微技能(默认是关的,见下一节),第 3 个会话之后应该能看到「已确认 / 仍在形成」的事实分栏;工具裁剪在攒够 p=10 个未使用提示词、跨 m=2 个会话之后才会给出候选清单,而且在会话空闲 q=60 分钟后才写 deny list。

  6. 从终端交叉验证账本。终端里的 te 命令不消耗模型回合,比在 Agent 里敲便宜:

    ~/.tokeneconomizer/bin/te status
    ls ~/.tokeneconomizer/repos/
    

预期结果与成功判据:~/.tokeneconomizer/repos/ 下出现以仓库为单位的目录,里面有 ledger.jsonl;te status 能报出这个仓库的会话数、总 token、以及 plugin overhead(插件自身开销)占全部 token 的比例。只要这三样都在,说明插件已经接上了。

这一步不该期待的结果:成本下降。前三个会话基本是纯投入期,plugin overhead 会大于 0 而节省还没出现。官方在论文里也写明,每个仓库都是从「没有任何轨迹」起步,到第 6 个任务才普遍比默认便宜。

初级用法

1)把 status 当成这个仓库的账本

status 告诉你两件事:它在这里学到了什么、以及你的会话花了多少。真正有价值的是 plugin overhead 那一行——它把插件自己发起的模型调用单独列出来并给出占全部 token 的比例。有了这个数字,你才能判断「省下来的」是不是真的大于「插件花掉的」。在 Agent 里敲命令要花一个模型回合,在终端里敲 ~/.tokeneconomizer/bin/te status 不花,日常巡检用终端形式。

2)用 toolprune 先审后裁,别一上来就自动

/tokeneconomizer:toolprune

它会列出已经移出的工具和依据;/tokeneconomizer:toolprune restore 把它们还回来,而且还回来之后不会再被移除。如果你想要更保守的流程,把模式改成只提议不执行:

/tokeneconomizer:config set toolprune=propose

这样它只产出候选 deny list,不实际生效,等你确认后再 /tokeneconomizer:toolprune apply。

3)三个开关和四个关键参数

每个机制有独立开关(microskills / toolprune / loopguard),都接 on 或 off:

/tokeneconomizer:config                                 # 看当前生效的全部设置
/tokeneconomizer:config set microskills=on              # 打开微技能(默认关闭)
/tokeneconomizer:config set microskills=on --global     # 对所有仓库生效
/tokeneconomizer:config set microskills_propose_every=5 # k=5:少提事实、少花模型调用
/tokeneconomizer:config set toolprune_evidence=20       # p=20:攒更多证据再裁工具
/tokeneconomizer:config set loopguard_nudges=2          # r=2:一个回合允许两次重定向

4)单次会话级别的临时开关,用环境变量

不想改全局配置时,在启动命令前加环境变量即可,命名规则是 TE_ 加上设置名的大写形式:

TE_DISABLE=1 claude                 # 这次会话完全关掉插件
TE_LOOPGUARD=off codex              # 只关环路拦截
TE_MICROSKILLS=off copilot          # 只关微技能
TE_TOOLPRUNE=off claude             # 只关工具裁剪

这在「我要对比一次装与不装的差异」时特别好用:同一个任务,两条命令各跑一遍,status 里的开销和用量直接可比。

高级玩法

1)microskills=envfacts:只学事实、不花模型调用

微技能默认是关的,因为它的事实提出者要调模型。如果你只想要「不花额外钱」的那一半能力,用这个模式:

/tokeneconomizer:config set microskills=envfacts

它只从跨会话重复出现的失败里提炼事实,完全不走模型。代价是学得慢、覆盖窄(学不到「这个仓库的构建要先跑什么」这类需要审阅轨迹才能得出的结论),好处是把插件的模型开销压到只剩环路拦截的判断调用。

2)history_import=on:把仓库里已有的会话一次性读进来

Claude Code 用户有一个别人没有的入口——插件可以读 Claude Code 自己的日志。默认关闭,而且只在插件还没从这个仓库学到任何东西时才会读,所以正确做法是装完立刻打开:

/tokeneconomizer:config set history_import=on --global

之后每个仓库的第一个会话会在后台读该仓库的历史会话,且不产生任何模型调用。注意:基于历史会话得出的 deny list 即使在 auto 模式下也要等你手动 /tokeneconomizer:toolprune apply 才生效——这是防止用旧日志直接改你当前环境的保护。

3)多 Agent 共用一套设置、各自独立学习

事实、工具证据、环路拦截对「典型回合长度」的判断,都是按 Agent × 仓库分别保存的;只有设置是共享的。所以你可以同时在 Claude Code 和 Codex 里用同一个仓库,两边的学习互不干扰。从终端读各自的账本时,--host 必须显式指定,否则你可能看到的是另一个 Agent 的状态:

~/.tokeneconomizer/bin/te --host claude  status
~/.tokeneconomizer/bin/te --host codex   status
~/.tokeneconomizer/bin/te --host copilot status
~/.tokeneconomizer/bin/te --host pi      status

4)把参数当成成本/风险旋钮来调

官方把参数设计成了可部署调节的:更小的 n 或 k、更小的 β 或 κ 都意味着更早出手、省得更多,但误判风险更高。反过来,把 toolprune_evidence 从 10 调到 20、把 microskills_propose_every 从 3 调到 5,就是更保守的配置。这套参数在论文里是「开发阶段固定、主实验沿用」的同一组值,对所有 Agent、模型、仓库通用——也就是说默认值是通用最优点,你要改就是在拿通用性换你的具体场景。

5)复现论文而不是只信结论

仓库里 experiments/ 是论文结果背后的完整实验台:跑 Claude Code、Codex、Copilot CLI 于 SWE-Bench 与 Web-Bench 的 harness、启动器、以及评测任务集,每个结果都有对应的一条命令。它不是插件的一部分,与插件只共享 tokeneconomizer/ 这个包。想验证「18.4–30.9%」在你自己环境成不成立,这是唯一的一手路径:

git clone https://github.com/microsoft/TokenEconomizer.git
cd TokenEconomizer
python -m pytest tests                    # 插件与包的离线测试
python -m pytest experiments/tests        # 基准实验侧的测试

小技巧

  1. 能用终端就别在 Agent 里敲命令。 官方写得很直白:在 Agent 内部执行一条命令要消耗一个模型回合,从终端执行是免费的。status、microskills、toolprune、config 全部有 ~/.tokeneconomizer/bin/te 的终端形式,巡检成本直接归零。
  2. clone 目录当成「安装位置」而不是「临时下载」。 插件从 clone 运行,git pull 就是升级,但把目录挪走等于把插件弄坏。固定路径 + 定期 git pull 是最省事的维护方式。
  3. 升级宿主之后,第一件事是 refresh-catalog。 Claude Code 和 Copilot CLI 升级会改变工具目录,不刷新的话工具裁剪面对的是旧清单,结果就是「攒了很多会话却一个工具都没裁」。
  4. --host 永远显式写。 装机多个 Agent 之后不写 --host,你读到的可能是另一个宿主的状态,误判成「没生效」。
  5. 用 --global 和仓库级设置分工。 开关和参数建议 --global 一次配好;而 microskills、toolprune 这类有风险的机制,在真正重要的仓库里单独再确认一遍,避免一个全局改动波及所有项目。
  6. 对比实验用环境变量,不要反复改配置。 TE_DISABLE=1 跑一遍、正常跑一遍,比改配置再改回来干净得多,也不会在配置里留下不一致的状态。

进阶学习路径

按这个顺序读,能避免一上手就陷进源码细节:

  1. 仓库根 README.md —— 三个机制的准确语义、支持版本表、全部设置与默认值。先把「默认哪些开着」记清楚:工具裁剪和环路拦截默认开,微技能默认关。
  2. plugin/README.md —— 每个宿主的安装细节、完整命令表、以及「模型调用与 API key」一节(哪些调用会发出去、读什么、prompt 多大)。排障表也在这里。
  3. docs/PLUGIN.md —— 设计文档与已核验的 Agent 行为,想理解「为什么某个宿主不支持工具裁剪」看这份。
  4. docs/ARCHITECTURE.md —— 包之间怎么拼起来,适合要改代码或做二次集成的人。
  5. 项目页 https://tokeneconomizer.github.io/ —— 方法与实验的可视化版本,含消融、泛化到 Web-Bench 与安全审计基准的结论,以及九个真实运行片段的例子。读方法章节比读论文正文快。
  6. 论文 arXiv:2610.22732 —— 完整设定、参数选择依据、逐组合的标准差。
  7. experiments/README.md —— 一条命令复现一个结果。想在自己的仓库验证收益,从这一步开始。

踩坑记录

症状:命令报 import error,或者钩子看起来完全没反应。 原因:插件包的 Python 侧没跑起来,具体原因写在错误日志里而不是终端里。 解决:运行 ~/.tokeneconomizer/bin/te doctor(在 clone 里则是 plugin/scripts/te doctor),读它输出的 errors.log 行。

症状:errors.log 里写着包 “was not found for the plugin”。 原因:你安装插件时用的那个 clone 被移动或删除了——插件是从 clone 原地运行的,不是复制安装。 解决:把 clone 挪回原路径,或者重新执行一遍 marketplace add / plugin add。想彻底摆脱这个约束,用官方给的 self-contained 安装方式。

症状:终端里跳 TokenEconomizer needs Python >= 3.10 (this is 3.x)。 原因:PATH 上的 python 版本太旧,或者装了多个 Python 而先命中了旧的那个。 解决:装一个 3.10+,或者显式指定:export TE_PYTHON=/path/to/python3.10+。

症状:跑了很多会话,deny list 依然是空的,一个工具都没被裁。 原因:宿主升级后工具目录变了,插件手里的目录是旧的;或者证据还没攒够(p=10 个未使用提示词且跨 m=2 个会话),而且 deny list 只在会话空闲 q=60 分钟后才写。 解决:先 /tokeneconomizer:toolprune refresh-catalog;再确认样本量;最后确认这个宿主本身支持工具裁剪(Pi、opencode、Hermes Agent、Antigravity CLI、Factory Droid 都不支持)。

症状:Codex 这边 deny list 提示已应用,但实际什么都没变。 原因:Codex 不信任该项目时,会忽略项目级的设置文件。 解决:在 Codex 里信任该项目,然后用 ~/.tokeneconomizer/bin/te --host codex doctor 确认它是否报告已信任。

症状:errors.log 里出现 sidecall copilot: no reply,会话开始时提示插件的模型调用被暂停。 原因:Copilot 用的是 BYOK 供应商,插件的自带调用走不通。 解决:微技能退到 microskills=envfacts(保留不需要模型调用的事实),环路拦截只剩规则兜底;等 Copilot 正常登录后,用 config set microskills=on 或 loopguard=on 重新尝试。

症状:te 显示的是另一个 Agent 的状态,以为插件装错了。 原因:没有指定 --host,读到的是默认宿主。 解决:显式加 --host claude|codex|copilot|pi。

常见问题

Q:它会不会把我的代码发给别人? A:按官方文档,插件的模型调用不发送文件内容,也不发送你的提示词。环路拦截的判断调用读的是该回合最近 24 条动作(工具名、截到 90 字符的命令、被编辑的文件名、错误签名)、编辑/失败/测试运行的计数、以及这个仓库的典型回合长度,prompt 上限约 1,500 token。事实提出者读的是最近 8 个会话的摘要(命令形态、检查项、失败命令及其错误行、被编辑文件名),几 token 到几千 token 不等。这些调用是通过你自己的 Agent CLI(claude -p、codex exec、copilot -p、pi -p)发出的,走你自己的订阅或 API key。

Q:它自己要不要 API key?会不会碰到我的凭据? A:不需要,也不碰。官方明确写「插件不需要自己的 API key,也从不处理凭据,所以任何套餐或登录方式都能用」。它发起调用时用的是你 Agent 已经登录好的那套身份。

Q:装完之后为什么账单没立刻降? A:因为收益是跨会话累积的。微技能要 3 个会话确认一条事实,工具裁剪要 10 个提示词跨 2 个会话,环路拦截要 5 个正常结束的回合才建立基线。官方论文里每个仓库都从零轨迹起步,到第 6 个任务才普遍比默认便宜。另外默认开着的环路拦截本身要调模型,前几个会话净效果可能是负的。

Q:省 18.4–30.9% 是你们测的吗? A:不是。这个区间是论文作者在 SWE-Bench 上的测量:277 个任务、6 个仓库、5 组「Agent × 模型」组合,平均成本下降 18.4–30.9%,30 个「仓库 × 组合」单元全部更便宜,Pass@1 在 5 组里有 4 组上升。逐组合是:Claude Code + Sonnet 5 省 23.6%、Pass@1 +1.3;Opus 4.8 省 30.9%、Pass@1 −1.0;Codex + GPT-5.6 Terra 省 24.7%、+0.9;GPT-5.6 Sol 省 26.1%、+1.6;Copilot CLI + Sonnet 5 省 18.4%、+2.6。这是作者自述的实验结论,MagicNetWorld 没有复现,也没有在自有仓库实测。

Q:我的 Agent 版本不在支持表里,还能用吗? A:官方只说「每个区间的最早与最新版本测过,更新的版本尚未测试」,没有说不能用,但也没有承诺行为正确。插件依赖宿主的 hook 契约,宿主一次小版本升级就可能改契约——0.141.0 之前的 Codex 干脆完全不跑 plugin hooks 就是例子。稳妥做法是把 Agent 锁在区间内。

Q:微技能默认为什么是关的? A:因为它的事实提出者会增加一类周期性模型调用,而且能省多少取决于仓库和你做的事。官方把它做成需要显式打开的开关:默认开着的是工具裁剪与环路拦截,其中工具裁剪从不调用模型,环路拦截的判断与重定向才是默认配置下仅有的模型调用(判定这一回合疑似打转时一次一个,至少间隔 5 次工具调用);打开微技能会再加一个每 3 个会话一次的事实提出者。想把新增调用压到最低,用 microskills=envfacts 只保留不调模型的那部分事实,剩下的开销就是环路拦截的判断调用。

权限、隐私、成本与平台限制

权限:插件以你的用户身份运行,写自己的状态到 ~/.tokeneconomizer/;对仓库本身只读(它通过 Agent 的指令前缀与工具设置施加影响,不直接改你的代码)。要它工作,宿主必须允许插件钩子,并信任所在目录。

隐私:三类数据留在本地——学到的事实、工具证据、每个仓库的 ledger.jsonl(在 ~/.tokeneconomizer/repos/ 下)。出网的只有两类:插件通过你的 Agent CLI 发起的判断/重定向/事实提出调用;以及安装与更新时的 GitHub 拉取。官方对前者的 payload 有明确上限描述(见 FAQ 第一条)。

成本:插件本体开源免费(Apache-2.0),没有订阅。真实成本是它自己发起的模型调用,这些调用会计入你 Agent 的账单,并被 status 里的 plugin overhead 单独统计。默认配置下,只有「看起来在打转」的回合才会触发判断调用,且一次一个、至少间隔 5 次工具调用;打开微技能会再加一类周期性调用。

平台限制:工具裁剪在 Pi、opencode、Hermes Agent、Antigravity CLI、Factory Droid 上不可用;Cursor 的会话成本无法统计;Grok Build 的工具裁剪不可用;Droid 的 TUI 没有持久化逐工具设置(这是上游 Factory 的问题)。Cursor 与 Antigravity 仅限 macOS / Linux,因为启动器是 POSIX shell 脚本。

成熟度边界(必须说清):这个仓库 2026-10-13 才创建,到核验日只有一个月,属于「热但嫩」。GitHub API 现读:5,906 stars / 374 forks / 28 个开放 issue,最近一次 push 是 2026-11-12,未归档,license 字段为 Apache-2.0,32 位贡献者。开放 issue 里混着缺陷、功能请求与文档待办,这个数字不能推出缺陷密度或维护质量,也不作为判断依据。

一处官方文档内部不一致:仓库根 README 说环路拦截在重定向之后「只是告诉你如何停止,永远不会自己停掉一个回合」;而项目页的方法章节写了「若环路复发则该次运行结束」,并描述了在 κ=2.5 倍回合预算处的强制停止兜底。两处表述不一致,实际行为请以你所装版本的 plugin/README.md 与运行日志为准,别按任何一处描述做无人值守的强依赖。

参考链接

📊 评分与标签

核验口径:已按现行口径通过,待按新证据契约复核 · 证据状态:仅公开资料 · 核验日期:

评分说明

总分 7.9/10 · S_入选

核验日期:2026-11-13。评分对象是 microsoft/TokenEconomizer(仓库 README、plugin/README.md、docs/PLUGIN.md、docs/ARCHITECTURE.md、experiments/README.md)、项目页 tokeneconomizer.github.io、论文 arXiv:2610.22732,以及 GitHub REST API 的公开元数据。评分依据可追溯至公开来源,每一档分数都对应具体文档位置与可比产品,不做无来源的推断。 MagicNetWorld 没有安装这个插件,没有在任何仓库里跑过「装与不装」的对照实验,没有复现论文的 SWE-Bench 测量,也没有测过它实际能省多少。因此本文不声称独立实测,也不把作者自述的节省比例当作本站结论。

可观测社区指标

📊 可观测社区指标(数据读取日期:2026-11-13)

  • GitHub: microsoft/TokenEconomizer ★5,906,🔱374,开放 issue 28,仓库创建于 2026-10-13,pushed_at 2026-11-12T20:38:49Z,未归档,主语言 Python,贡献者 32 位。
  • 许可:GitHub API 的 license 字段为 Apache-2.0,仓库 LICENSE 文件与 README 的「License」节一致。
  • 官方身份:README 作者列表标注的机构是 UC Berkeley、Microsoft Research、Microsoft Security 三方,11 位作者;仓库归属 microsoft 组织。论文 arXiv:2610.22732 页面标题与仓库标题一致,citation_date 为 2026/10/15。
  • 分发:通过各 Agent 自己的插件市场机制从 clone 安装(claude plugin marketplace add / codex plugin marketplace add / copilot plugin marketplace add / pi install git:),无独立安装包。

这些是仓库快照。仓库只有一个月历史(创建于 2026-10-13),28 个开放 issue 里混有缺陷、功能请求与文档待办,这个数字不能推出缺陷密度或维护质量,也不作为评分依据;真正影响分数的是它相对的成熟度(见稳定性一档)。

⚙️ 功能完整度 2.0/2.5

三个机制都在文档里给了可执行的语义与默认值:微技能(事实需 3 个会话确认,支持按 n/k/β/κ 调节)、工具裁剪(p=10 个未使用提示词且跨 m=2 个会话,或 s=5 个会话;核心工具受保护;每 R=5 个会话重新审计全量目录)、失败环路拦截(判断模型置信度门槛 c=0.7,每回合最多 r=1 次重定向)。宿主覆盖四个第一梯队(Claude Code、Codex、Copilot CLI、Pi)加六个实验性宿主,并且逐宿主写清了能力缺口。

  • 竞品对比 1(RTK / Rust Token Killer):RTK 的做法是把每条 shell 命令的输出压缩后再给 Agent 看,工具集与提示词不变。它是一个固定策略,不学习。TokenEconomizer 的增量是「按仓库学习三条策略」,但也因此比 RTK 多出一层模型调用与状态存储。差异来源:项目页对比章节(作者自述的实验设定)。
  • 竞品对比 2(Serena):Serena 是语言服务器支撑的 MCP 服务,增加符号级检索工具,让 Agent 优先用它而不是自己读文件;同样不学习。它给 Agent 增加工具,TokenEconomizer 反而减少加载的工具,两者方向相反,不构成替代关系。差异来源:项目页对比章节。
  • 竞品对比 3(Aider 的 RepoMap):把仓库地图按中心性排序后塞进指令前缀,最多 2,048 token,且每回合都计费。这是「一次性静态增益」;TokenEconomizer 的微技能只在需要时注入激活项。差异来源:项目页对比章节与其给出的 RepoMap 文档链接。
  • 扣分点:能力在宿主之间不平齐。工具裁剪在 Pi、opencode、Hermes Agent、Antigravity CLI、Factory Droid 上明确不可用;Cursor 的会话成本无法统计;Grok Build 无工具裁剪。也就是说「三个机制齐全」只在四个第一梯队宿主上成立,故 2.0 而非更高。

✨ 输出质量 1.8/2.5

这里的「输出质量」指它对 Agent 产出的净影响。官方给出的证据是 277 个 SWE-Bench 任务、6 个仓库、5 组「Agent × 模型」组合:平均成本下降 18.4–30.9%,30 个「仓库 × 组合」单元全部更便宜,Pass@1 在 5 组里有 4 组上升。逐组是 Claude Code + Sonnet 5 省 23.6%/Pass@1 +1.3、Opus 4.8 省 30.9%/−1.0、Codex + GPT-5.6 Terra 省 24.7%/+0.9、GPT-5.6 Sol 省 26.1%/+1.6、Copilot CLI + Sonnet 5 省 18.4%/+2.6。这套数据的设计是可核查的(experiments/ 提供一条命令复现一个结果的实验台),但仍然是作者自述。

  • 竞品对比 1(RTK):按项目页同一批 60 个任务的对照,RTK 在 Django 上降本、在 SymPy 上反而升本,只在 scikit-learn 上有效。固定策略的问题是换仓库就换结论,这正是 TokenEconomizer 要解决的;反过来看,这也说明「降本」在单个仓库上并不可靠外推。差异来源:项目页对比章节。
  • 竞品对比 2(Serena):同一批对照里,Serena 在 Django 降本、SymPy 升本。Serena 的增益来自更省的检索路径,代价是额外工具描述本身的每回合开销;TokenEconomizer 的工具裁剪恰好针对这一项开销。差异来源:项目页对比章节。
  • 扣分点:质量风险是真实存在的。Opus 4.8 那一组 Pass@1 是 −1.0,说明省钱与成功率之间存在权衡;判断模型误判时给出的重定向也可能把 Agent 引向错误方向。作者自己在参数说明里承认「更早出手省得更多,但误判风险更高」。本站没有复现任何一组数据,保留 0.7 分。

🖐️ 易用性 1.2/1.5

对会用终端的人来说,安装是三条命令(clone + marketplace add + plugin install),之后「正常干活,它不需要你做任何事」;四个第一梯队宿主的命令同名,只有输入方式不同(/tokeneconomizer:、$tokeneconomizer:、/te)。命令表覆盖 status、microskills、toolprune、toolprune restore、config、config set,日常够用。

  • 竞品对比 1(RTK):RTK 是单命令包装 shell,接入是「把命令前缀改一下」,心智负担比插件体系低一个量级;TokenEconomizer 需要理解插件市场、信任目录、钩子审阅三层概念。差异来源:项目页对比章节与 README 安装节。
  • 竞品对比 2(Serena):Serena 走 MCP 配置,装完即用但要在每个客户端的配置文件里加一段;TokenEconomizer 要在 Agent 里完成「信任目录 / Trust all and continue」这类交互步骤,首次配置更啰嗦,之后不需要再动。差异来源:README 安装节。
  • 扣分点:版本窗口很窄且要手动维护。官方支持表是精确区间(Claude Code 2.1.300–2.1.310、Codex 0.153.1–0.164.0、Copilot CLI 1.0.83–1.0.102、Pi 1.2.0–1.3.0),并明确「更新的版本尚未测试」;Claude Code 与 Copilot 升级后还要手动 toolprune refresh-catalog。clone 被移动会直接让插件失效。这些都是持续的维护负担。

💰 性价比 1.4/1.5

插件本体 Apache-2.0、免费、无订阅,仓库是标准库实现,不需要 pip install 任何依赖,也不需要自己的 API key。真实成本是它发起的模型调用——默认配置下只有环路拦截的判断与重定向,打开微技能再加一类周期调用,全部走你自己的 Agent CLI 并按你的套餐计费,且被 status 里的 plugin overhead 单独统计。

  • 竞品对比 1(RTK):RTK 零模型调用、零状态,边际成本是纯 CPU;TokenEconomizer 有额外调用,但换来的是「按仓库自适应」。是否值得取决于你的仓库复用频率——只在一次性仓库里用,RTK 的成本结构更优。差异来源:项目页对比章节。
  • 竞品对比 2(Aider RepoMap):RepoMap 的增益是每回合常驻的 token 开销,用得越久付得越多;TokenEconomizer 的微技能只在相关任务注入,且会在被反驳后退役,长期成本更接近「按需」。差异来源:项目页对比章节。
  • 不给满分的原因:收益高度依赖使用形态。官方论文里每个仓库都从零轨迹起步、到第 6 个任务才普遍便宜;对「一个仓库只做两三个任务」的用户,插件开销很可能大于节省。这不是缺陷,但意味着它的性价比不是普适的。

🔧 稳定性 0.7/1.0

仓库 2026-10-13 才创建,到核验日只有一个月;最近一次 push 是 2026-11-12,说明仍在高频迭代。宿主适配全部绑在非公开契约上(hook 事件、transcript 格式、逐工具设置),官方自己把 Hermes Agent、Antigravity、Cursor 的适配标为实验性,并写明 Antigravity 的 hook 契约与 transcript 格式「不是公开接口」。

  • 竞品对比 1(RTK):RTK 只包 shell 命令,不依赖宿主的钩子契约,宿主升级基本不影响它;TokenEconomizer 的四个第一梯队宿主各自都有版本区间,区间外不承诺。差异来源:README「Supported versions」节。
  • 竞品对比 2(Serena):Serena 依赖 MCP 这个跨客户端标准协议,宿主升级的破坏面比私有 hook 小;TokenEconomizer 的 Droid 适配还额外依赖上游「没有持久化逐工具设置」这一未修复问题。差异来源:README 对 Factory Droid 的说明(引用 Factory issue #65)。
  • 扣分点:官方文档内部存在一处行为描述不一致——根 README 说环路拦截「永远不自己停掉一个回合」,项目页方法章节却写了「环路复发则该次运行结束」以及 κ=2.5 倍预算处的强制停止兜底。这种不一致出现在核心机制的描述上,本身就是早期项目的信号,故给 0.7。

🔒 隐私安全 0.8/1.0

隐私面是它设计得最克制的地方:不需要自己的 API key,也从不处理你的凭据;状态全部落在本地 ~/.tokeneconomizer/(每个仓库一个 ledger.jsonl);发送出去的只有插件自己发起的判断/重定向/事实提出调用,且官方逐项写明了 payload——判断调用读该回合最近 24 条动作(工具名、截到 90 字符的命令、被编辑文件名、错误签名)、计数与仓库典型回合长度,prompt 上限约 1,500 token,不发送文件内容,也不发送你的提示词。

  • 竞品对比 1(Serena):Serena 是本地的语言服务器,检索在本地完成,出网的只有模型请求本身;TokenEconomizer 多了一层「把命令片段与错误签名送去判断」,虽然内容受限,但确实是额外的出网面。差异来源:README 的模型调用说明与 Serena 仓库说明。
  • 竞品对比 2(OpenRouter):OpenRouter 是托管式的模型路由网关,请求先经它的端点再转发给上游模型供应商;其隐私政策第 1 节写明「任何输入到服务里的文本或数据(Inputs),若含个人数据也会被我们收集」,并声明不对上游 LLM 如何处理 Inputs/Outputs 负责,用户只能在账户里按各家供应商的数据保留政策做取舍。TokenEconomizer 不需要自己的 key、不接触凭据,调用走你已登录的 Agent CLI,中间没有第三方端点。差异来源:OpenRouter 隐私政策 第 1 节「Collection of Personal Data」与 Provider Logging 文档(核验日期 2026-11-13);TokenEconomizer 侧为 plugin/README.md「Model calls and API keys」节。
  • 扣分点:调用仍然会到你的模型供应商,只是内容被裁剪过;errors.log 与 ledger.jsonl 是明文本地文件,共享机器上要注意权限;代码本身是完整的 Agent 插件权限(能读会话日志、能改工具设置),不是沙箱内运行。

维度求和核对

2.0 + 1.8 + 1.2 + 1.4 + 0.7 + 0.8 = 7.9 = 总分 ✓

🏷️ 标签说明

  • AI编程: 定位是编码 Agent 的成本控制插件,服务于写代码这一场景。来源:README、论文
  • 编码Agent: 它不替代 Agent,而是给 Claude Code / Codex / Copilot CLI / Pi 等宿主加装策略层,README 全篇以「agent」为作用对象。来源:README Supported versions
  • 成本优化: 三个机制全部围绕 token 花费设计,论文给出的测量是平均成本下降 18.4–30.9%。来源:项目页
  • 开源工具: 代码以 Apache-2.0 公开,可自行审计与二次开发。来源:LICENSE
  • 插件: 交付形态是各宿主插件市场里的插件(tokeneconomizer@tokeneconomizer),不是独立应用或 CLI 工具。来源:README Install

📋 来源核实

  • ✅ 已核实: GitHub API — stars/forks/开放 issue/创建时间/pushed_at/许可/贡献者页数,2026-11-13 实时读取
  • ✅ 已核实: README — 三机制的准确语义与参数、四宿主安装命令、支持版本区间、全部设置与默认值、许可证、实验复现入口
  • ✅ 已核实: plugin/README.md — 逐宿主安装细节、模型调用 payload 与成本归属、排障表
  • ✅ 已核实: 项目页 — 方法与实验结论、逐组合的节省与 Pass@1、三类浪费的量化画像
  • ✅ 已核实: arXiv:2610.22732 — 标题、提交日期 2026/10/15、作者与机构
  • ⚠️ 未实测: 实际节省比例、各宿主的真实稳定性、判断模型的误判率、plugin overhead 在真实仓库里的占比 —— 本站未安装运行

局限:未独立实测;作者自述的实验结论只用来说明其主张,不转成本站结论;仓库仅一个月历史,支持矩阵与默认值都可能变动;根 README 与项目页对环路拦截是否自行终止回合的表述不一致,已在上文标出;RTK、Serena、RepoMap 的对照组数据来自作者项目页,本站未独立复现;「28 个开放 issue」是单日快照,不代表缺陷密度。

同分类推荐

AI编程 分类下的其他工具

)}