mcpField
A
agentburn

agentburn

本地服务
github.com数据与分析1132 天前更新

关于 agentburn

agentburn 是本地只读的分析服务和命令行工具,用于检查受支持编码 Agent 记录的用量与成本。它帮助开发者定位高用量时段、Token 与金钱成本及可调整的配置项,并通过 MCP 服务提供报告。

主要功能

  1. 01本地只读分析 Agent 日志
  2. 02比较峰值与典型用量窗口
  3. 03按模型、来源和项目拆分用量
  4. 04分析上下文、提交和夜间成本
  5. 05生成仅预览的配置补丁
  6. 06通过 MCP 服务提供报告

适用场景

  1. 01查明哪个用量窗口触发了限额
  2. 02估算距离用量上限的剩余时间
  3. 03排查夜间 Agent 支出和重试循环
  4. 04查看每次代码库提交的用量成本

MCP 相关

agentburn 通过 MCP 服务向 MCP 客户端提供分析结果,使 Agent 能报告自身用量成本。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"socialpranker-agentburn": {
"command": "uvx",
"args": [
"agentburn"
]
}
}
}
启动命令uvx agentburn

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiagentburn0.14.0

工具

6

收录的工具列表 · 更新于 2 周前

参数类型必填说明
daysinteger否时间窗口(天数,默认 30,0 = 全部时间)
agentstring否hermes | openclaw | claude-code(默认:检测到的第一个)
sourcestring否深入查看单个来源,例如 telegram / cron / heartbeat / subagent

详细介绍

agentburn — 你的 AI Agent 在你睡觉时花了多少钱?

PyPI Python zero deps tests MIT



uvx agentburn — 动态演示:结论、使用高峰时段、花费原因、调整建议

Claude Code · Codex CLI · Gemini CLI · opencode · OpenClaw · Hermes Agent — 一个标准化的核心,完全本地、只读、零依赖

uvx agentburn

▶  在浏览器中试用——无需安装


你并不是在平常的一天用完了额度

你是在一个时段内用完的。在这台机器上,这个时段的用量是中位数的 5.4 倍——同一个人、同一周、同一订阅。

助手自己的日志已经记录了是哪个时段,以及是什么填满了它。你机器上的其他信息都做不到这一点:内置计数器只显示总量,账单也只显示总量,两者都不会告诉你是哪五个小时让你用完了额度。

⏳ agentburn limits — claude-code · rolling 5-hour windows

   PEAK WINDOW        Aug 04 12:45–17:45 · 555M weighted
                      opus 91% · sonnet 9%   ·   cli 93% · subagent 7%
   TYPICAL WINDOW     104M    median of 83 active 5h slots
   PEAK / TYPICAL     5.4×    a wall is hit by the peak, not by the median

   WHAT FILLS THE WINDOW
   cache reads     64%   ·   cache writes 25%   ·   output 11%

只需一条命令,无需账户,任何信息都不会离开你的电脑:

uvx agentburn            # where it burns, and what to change
uvx agentburn limits     # how fast you fill a usage window, and how long until the wall
uvx agentburn context    # what long contexts cost — and what a /clear at 150k would have saved

Agent 会以两种方式产生费用,也有两个问题要问

如果你按……付费实际用完的是什么询问
订阅(Claude Code Pro/Max)滚动用量时段——账单金额固定,但限制不固定agentburn limits
按 Token 付费(API 密钥、OpenClaw、Hermes)金钱,而且大多是在你睡觉时花掉的agentburn

两者都会读取相同的本地日志,也都不会编造数据中不存在的数字。

agentburn limits — 使用高峰时段、典型时段及填满额度的原因 ### `agentburn limits` — 订阅用量视图

优化订阅不会改变账单,只会改变你在被限流前能用多久。这是一个时间窗口问题,而窗口需要在单次会话内解析——一次会话通常会跨越多个窗口。

  • 峰值与典型值。 将最差的滚动 5 小时窗口与活跃窗口的中位数进行比较。比值就是结论:峰值会触及上限。

  • 窗口由什么填满——按模型、来源(你 / 子 Agent / 计划任务)和类型(缓存读取、缓存写入或输出)分类。

  • 自动根据你自己的上限衡量。 Anthropic 不会公布这些额度背后的公式,因此 agentburn 不会凭空设定阈值。但 Claude Code 会将限流信息写入转录记录("You've hit your session limit · resets 8:30pm"),每个这样的时刻都是一个实测上限。有多个记录时,上限取其中位数:

    YOUR MEASURED CEILING
    median of 35 cut-offs Claude Code recorded itself
    ceiling                146M   weighted tokens
    peak window            137%   of your ceiling
    last 5h                 16%   of your ceiling
    TIME TO WALL          2.7 h   at the pace of the last 30 min
    

    日志中还没有限流记录?使用 --hit "2026-08-20 14:30" 手动指定。实测上限会保存在 ~/.agentburn/ceiling.json 中,因此下面的状态行也能读取它。

  • Codex:提供方自己的读数。 Codex CLI 会在每次请求旁写入 rate_limits.used_percent。agentburn 会将每个读数与同一窗口内的加权用量配对,并取中位数——这是根据提供方的计算方式得出的上限,而不是根据限流记录推算的。请将其视为估算值:该百分比统计了账号上的所有设备和应用,而本地运行记录只占其中一部分;当 Codex 不再报告某个窗口(套餐或客户端发生变化)时,后续峰值会标记为根据先前窗口测得,而不会误报为超限。

  • 到达上限的剩余时间。 用上限减去当前窗口用量,再除以过去半小时的使用速度。工作时你真正想知道的数字。

  • 周用量也有。 最繁忙的滚动 7 天时段、本周已用的比例,以及 Claude Code 记录到每周限流时的每周上限。

  • 按项目查看。 会话会记录工作目录;峰值窗口会按目录拆分。

agentburn statusline — 在 Claude Code 中实时查看上限

一行、无颜色,专为 Claude Code 的 statusLine 打造:

⏳ 5h 63% · wall in 47 min · week 71%
{ "statusLine": { "type": "command", "command": "uvx agentburn statusline" } }

只读取最近三天的日志(上限来自状态文件),因此每轮运行的开销都足够低。

agentburn context — 长上下文的成本

每次调用都会重新读取完整上下文;在订阅方案中,这次重新读取就是窗口:一次 300k 的轮次,成本相当于三次 100k 的轮次。Claude Code 会记录每次调用的准确上下文大小,因此这是实测值,而非建模估算:

📏 agentburn context — claude-code · what a long context costs

   CALLS                        156,226   median context 143K · p90 316K · max 704K

   WHERE THE WINDOW GOES, BY CONTEXT SIZE
   100–200k     ██████············   35%    59,780 calls
   200–400k     ████████··········   43%    42,420 calls
   >400k        ██················   11%     7,257 calls

   IF YOU HAD RESTARTED AT…
   /clear at 100K     →   41% of the window not spent   (108,573 calls were past it)
   /clear at 150K     →   26% of the window not spent   (73,600 calls were past it)

   WHAT A SKILL COSTS
   handoff                                 7.96K per load ×  226 =     1.8M
   claude-api                              33.6K per load ×   14 =     470K
  • /clear 的计算方式——每次调用中超过阈值的上下文部分,按缓存读取费率计算:假设较短会话完成相同工作,这就是养成重启习惯能诚实节省的用量。
  • 实测技能成本——单独调用一次 Skill 后,上下文增长的中位数,取自最近的加载记录。捆绑技能不会触及磁盘;转录记录会看到所有技能。
  • 按 effort 等级查看——各个 effort 设置占用了多少窗口用量。
  • 带有可执行措施的发现会显示在 agentburn fix 中:重启阈值和占用较大的技能。
agentburn commits — 一次提交花费了多少

会话会记录工作目录和分支;你的代码库会记录每次提交的时间。两次连续提交之间的用量,就是第二次提交所花费的用量——只读 git log,不会写入任何内容:

   COSTLIEST COMMITS
       124M   33_Thoforge        1f7a31a1  Aug 30  fix(ui): правки UX-аудита — раскладка, навигация
      81.2M   33_Thoforge        ad19bff7  Aug 28  feat(ui): цель над деревом и развилка в карточке

   BY REPOSITORY
   33_Thoforge                 1.95M median ·  287 commits ·    1.52B total

加权令牌数 = 令牌数 × 公开发布的价格比率(缓存读取 0.1×、缓存写入 1.25×、按模型计算的输出),并统一折算为参考模型的一个输入令牌。所有比率都是公开的;没有任何一个是对提供方如何计费的猜测。

agentburn — 成本视图
  • 费用花在哪里 — 按来源划分:cron / subagent / gateway:telegram|discord|whatsapp / cli。始终运行 ≠ 免费。
  • 🌙 你睡着时 — 单独列出并命名夜间账单(--night 23-7)。
  • 固定开销 — 按来源统计每次 API 调用未缓存的输入 token,并根据公开基准进行校准。
  • Subagent 汇总 — 将委派成本追溯到发起它的会话。
  • agentburn why — 行为取证:重复读取循环、重试风暴、空闲心跳、每个 cron 的账单、上下文抖动。
  • agentburn fix — 可直接粘贴的配置补丁,默认采用试运行模式。

agentburn fix — 将发现转化为配置,而不是建议

不是“考虑使用更便宜的模型”,而是指出确切的文件和确切的行。只有经过 Agent 自身源码或已记录配置验证的调节项,才会提供补丁生成器:

🔧 agentburn fix — claude-code · DRY-RUN (nothing was changed)

   1. Drop 2 MCP server(s) you never called
      why    : registered but not called once in the last 30d: blender-mcp, pixellab.
               Every registered server ships its tool definitions with the context
               of every session that loads it.
      proposed:
        claude mcp remove blender-mcp

   2. Trim the always-loaded memory files (2,254 tokens)
      why    : loaded into every session's context and re-sent whenever the prompt
               cache expires or the context is compacted — at least 3,565× this window.
Agent已验证的调节项
Claude Code已注册的 MCP 服务(~/.claude.json、.mcp.json)、始终加载的 CLAUDE.md 记忆文件、会话重启阈值(实测)、占用较大的技能(按加载实测)
Hermes按任务设置的 model / enabled_toolsets(cron/jobs.py)、按平台设置的工具集(gateway/run.py)
OpenClawheartbeat.{every, activeHours, model, lightContext}(config/types.agent-defaults.ts)

特意不提供 --apply:这是你的 Agent 配置。请自行粘贴,然后用 --save-baseline → --compare 验证节省情况。

为何相信这些数字

Token 追踪工具之间经常存在差异(公开问题讨论中的差异达 2–91 倍)。agentburn 采取相反的做法:

  • 数字来自Agent 自身的账目,以只读方式读取。不抓取、不使用代理、不猜测。
  • 每条回复只计算一次。 Claude Code 会为每个内容块写入一行转录记录,每行都带有相同的 usage;累加这些行会使调用和 token 数膨胀约 1.8 倍。agentburn 按 requestId 去重(在 0.14.0 中发现并修复;此前此工具报告的绝对总数因此被放大,但比率不受影响)。
  • 原样显示服务商计费的成本;估算值以 ~ 标记;混合数据会标为混合。
  • 没有价格的地方,就不虚构价格。 Claude Code 不记录成本,而订阅用量也没有可信的单 token 价格,因此该适配器只报告 token 和时间窗口,绝不报告金额。
  • 会检测有消息但记录的 token 数为零的会话(已知的记账缺口,例如 hermes-agent #12023):总数会明确标为下限,并将修复记账问题列为建议 #1。
  • 对于不记录结果权重的 Agent,权重会标为估算值,且只用于对发现进行相互排序。

速度

转录文件只会追加内容,因此只需解析一次。每个文件的解析结果都会按文件大小和修改时间缓存在 ~/.agentburn/cache 中,后续运行会复用所有未更改的文件:

3.1 GB Claude Code 日志,覆盖 30 天
首次运行(解析全部内容并写入缓存)~190 s
此后的每次运行~3 s
缓存大小29 MB(占日志的 0.9%)

文件增大后会重新解析并缓存;其他内容不会被触碰。--no-cache(或 AGENTBURN_NO_CACHE=1)会强制完整重新解析,--clear-cache 会删除缓存。缓存属于派生数据——删除它只会耗费时间,不会产生其他影响。

隐私

所有操作都在本地运行,并以只读方式读取你的日志。不进行网络调用、不发送遥测数据,也不需要账户。报告归你所有。只有明确说明的命令会访问网络:drift 会 GET 一个公开的趋势文件,--submit 会打开一个预填好的问题,由你审核并提交。

~/.agentburn/cache 中的解析缓存(权限模式 0700)会保存报告中显示的相同工具名称和截断后的参数键,这些数据从本机已有日志中派生——绝不包含消息内容。--clear-cache 会将其删除。

为什么会有这个项目

全天候运行的 Agent 会让你不断付费——而它们内置的计数器只会显示总量:

“每次 API 调用中,有 73% 都是固定开销——约 13.9K 个工具定义和系统提示词令牌,每次都会重新发送。” — hermes-agent #4379

“一位新手写道,早上醒来发现隔夜运行产生了 47 美元的意外账单——这并非罕见的故障,而是无人监督的循环默认会发生的情况。” — dev.to

对比

agentburnccusagecodeburn内置 /usage
使用窗口(峰值与典型值、窗口被什么占满)✅——仅当前窗口
根据你自己记录的截断值测量上限 · 距离上限的时间 · 状态行✅——当前窗口百分比
长上下文的成本 · /clear 本可节省的费用 · 每次加载技能的成本✅———
每次 git 提交的成本✅———
按来源统计消耗(cron · 心跳 · 网关 · 子 Agent)✅——仅百分比,7 天
🌙 单独统计隔夜账单✅———
行为取证(why:循环、重试风暴、失败运行成本)✅———
可直接使用的配置补丁(fix,经过验证的调整项)✅———
MCP 服务(由 Agent 回答自己的账单问题)✅———
总量 / 实时区块 / 多种 CLI基础✅ 同类最佳✅ TUI,25 个提供商总量

ccusage 和 codeburn 在各自擅长的领域都很出色——agentburn 有意从它们止步之处开始(ccusage 尚未纳入按工具范围分析)。

支持的 Agent

采用统一的规范化模型,每种 Agent 对应一个适配器。运行 agentburn,机器上发现的每种 Agent 都会有自己的报告。

Agent状态数据来源备注
Claude Code✅~/.claude/projects/**.jsonl令牌和窗口;这是有意为之:不估算本地成本,也不为订阅服务虚报单令牌价格
OpenClaw✅~/.openclaw/agents/*/sessions/sessions.json心跳单独归类——正是那个广为人知的账单来源
Hermes Agent✅~/.hermes/state.db(+可选的请求转储)成本来自 Agent 自己的核算
Codex CLI✅~/.codex/sessions/**/rollout-*.jsonl令牌和窗口;唯一会记录每次请求中提供商自身使用百分比的 Agent
Gemini CLI✅~/.gemini/tmp/*/chats/session-*.json每轮令牌(含思考令牌);通过 projects.json 获取工作目录
opencode✅~/.local/share/opencode/opencode.db成本来自 Agent 自己的价目表;免费或可自托管的提供商仅显示令牌数

各适配器基于共享模型编写,约 150 行代码——欢迎为下一个适配器提交 PR。

架构:Agent 数据 → 适配器 → 规范化模型 → 报告/上限/原因/修复/说明/诊断/MCP
## 其他功能
🔌 agentburn mcp — 让你的 Agent 回答自己的账单问题

零依赖的 MCP stdio 服务,提供 burn_report / burn_limits / burn_context / burn_commits / burn_why / burn_card。注册后问一句 “钱都花在哪儿了?”,它就会分析自己的数据库并给出说明。

claude mcp add agentburn -- agentburn mcp
# Hermes / OpenClaw: add an stdio MCP server with command `agentburn mcp`

更喜欢用技能?这里有适用于 ~/.claude/skills/agentburn/(或 Hermes/OpenClaw 对应目录)的现成 SKILL.md。

📤 --share — 可安全发布的匿名卡片

只包含类别、模型和总量;会话标题、路径和内容从设计上就不会包含在内。--svg card.svg 会将同一张卡片渲染为图像。

🔥 my claude-code agent · last 30d
3.01B tokens · 19,255 API calls
where it burns: cli 77% · subagent 23%
⏳ my peak 5h window: 555M weighted tokens — 5.4× my own median window
🌙 while I slept (00–08): 75.3M tokens — 3% of everything
— agentburn · local & private

示例燃烧卡片

📐 --save-baseline / --compare — 证明节省效果

保存当前使用节奏,修改配置,然后运行 agentburn --compare 查看差异——结果会按使用节奏归一化,因此 7 天基线可以与 30 天窗口进行公平比较。每条建议都能成为可测试的承诺。

🧭 agentburn drift — 你的支出 × 世界的趋势

你是否在为一个逐渐被世界弃用的模型付费?你的数据在本地计算;世界趋势则通过一次只读 GET 请求,从 token-history 获取公开趋势 JSON(每日存档自 OpenRouter 排名)。不会向任何地方发送有关你的信息;--trends FILE 可完全离线使用。

🧠 agentburn explain — 优先本地的大模型解读
agentburn explain --model llama3.1          # local ollama — nothing leaves the machine
agentburn explain --llm https://openrouter.ai/api/v1 \
  --model deepseek/deepseek-chat --yes-remote --lang ru

默认端点为 localhost;使用远程端点需要指定 --yes-remote,且只会收到已脱敏的摘要(标题 → session-N,路径 → 文件名,内容从一开始就不会包含在内)。

🩺 agentburn doctor + 🚨 哨兵模式

doctor 会指出导致使用量为零和会话未定价的故障组合(提供商 × 模型 × 来源),并生成可直接粘贴的上游 Bug 报告——仅包含计数器数据。

哨兵模式是面向服务端 Agent 的预算守护工具:

agentburn --agent openclaw --budget-night 5 --fail-over --no-color \
  || notify-send "🚨 agent is burning money at night"
📊 agentburn rank — 燃烧指数(社区百分位)

匿名的效率百分位——这正是基准测试量排行榜做不到的:这里不会奖励更高的消耗量。参与方式是点击即同意:运行 agentburn --submit 会打印准确的匿名载荷(比率和粗略的支出区间——绝不包含原始用量、标题或路径),随后提供一个预填内容的 GitHub issue 链接,由你打开并提交。每项指标需要至少 5 份配置数据,百分位才有意义。

相关项目

token-history — 宏观视角:每日存档世界在使用哪些 Agent。agentburn 则是微观视角:你的支出都花在哪里。

许可证

MIT

mcp-name: io.github.Socialpranker/agentburn


the token-* family · token-history — 世界在运行哪些 Agent · agentburn — 你的支出都花在哪里

如果这为你省下了一个工作窗口的时间,点个 ⭐ 就能帮助下一个人找到它

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。