关于 Passive Cost Memory for Agent Development
burnwatch 跟踪 AI 辅助开发项目中的付费服务并估算开发成本,帮助开发者和编码 Agent 纳入预算考量。它结合服务检测、账单清单、基于代码的用量预测,并通过 MCP 服务提供支出数据和分析工具。
主要功能
- 01从项目文件和提示词检测付费服务
- 02跟踪支出及预算置信等级
- 03根据代码模式和计划任务预测成本
- 04使用 JSON 账单清单描述计费模式
- 05通过 MCP 提供支出与成本分析工具
适用场景
- 01查看项目支出和预算状态
- 02估算新增 SDK 调用或定时任务的成本
- 03发现新引入的付费服务
- 04向支持 MCP 的大模型提供服务支出数据
MCP 相关
burnwatch 内置 MCP 服务,提供支出概览、单项服务支出、成本影响分析、用量、账单清单和服务检测等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
burnwatch
你的编码效率提升了 10 倍,花费也可能增加了 10 倍。
为 AI 辅助开发提供被动式成本记忆。
╔══════════════════════════════════════════════════════════════
║ BURNWATCH — your-app — March 2026
╠══════════════════════════════════════════════════════════════
║ Service Spend Conf Budget Left
║ ──────────────────────────────────────────────────────────
║ anthropic $47.20 ✅ LIVE $100 53%
║ vercel $20.00 🟡 CALC $20 flat — on plan
║ scrapfly $127.00 ✅ LIVE $100 ⚠️ OVER
║ browserbase ~$12.40 ✅ LIVE $99 87%
║ supabase $25.00 🟡 CALC $25 flat — on plan
║ posthog $0.00 🟡 CALC $0 —
║ ↳ 234K/1M events (23%)
╠══════════════════════════════════════════════════════════════
║ TOTAL: ~$231.60 Untracked: 0 ✅ Est margin: ±$12
║ 🚨 scrapfly 127% OVER BUDGET - review before use
╚══════════════════════════════════════════════════════════════
它会自动显示。每次会话都会显示。无需查看仪表板,也不用记住打开哪些标签页。只需在你已经工作的地方,静静地提醒你留意成本。
问题
通常事情是这样的。
你正沉浸在心流状态中。Claude 正在编写功能,你在批准,代码库不断增长,一切都让人感觉棒极了。周二,你添加了一个 Scrapfly 密钥来抓取网页。周三,你接入了 Browserbase 来自动化浏览器。到了周五,你的 Agent 已经构建了一个 cron 任务,每隔一天抓取 1,000 个竞争对手页面。代码运行得完美无缺。
三周后,账单来了。结果“运行得完美无缺”每月要花 $340,而你注册的是 $99 套餐。
这就是 AI 辅助开发带来的新常态。那些向你收费的服务,正被一个完全不了解其成本的 Agent 接入。它不知道 Scrapfly 的反机器人绕过功能会消耗 25 倍的基础额度。它不知道 Anthropic Opus 的每个 token 成本是 Haiku 的 15 倍。它也不知道你使用的是免费套餐,并且硬性上限为 1,000 次 API 调用。
最隐蔽的是?这些服务在注册时看起来大多很便宜。$20/月。$99/月。固定费用,不用担心。但定价文档第三页还藏着超额使用费率。你离开注册页面时还觉得 $20 很划算,等到回来时,月账单已经高达数百美元,因为你超出了包含的用量,却没人提醒你。
78% 的 IT 负责人在过去 12 个月内遇到过与按用量计费或 AI 定价相关的意外费用(Zylo 2026 SaaS Management Index)。
burnwatch 介于你的 Agent 和钱包之间。它监视每次文件保存,了解各种计费模式,并在损失造成之前提醒你。
安装
npx burnwatch init
就这么简单。burnwatch 会扫描你的项目、检测付费服务并注册钩子。下次会话时,你就能看到自己的支出。
要求: Node.js 18+ · 适用于 Claude Code、MCP 或独立 CLI
工作原理
1. 检测
运行 npx burnwatch init 后,burnwatch 会立即扫描以下四个位置:
| 检查内容 | 示例 | 时机 |
|---|---|---|
| package.json | 依赖项中的 "@anthropic-ai/sdk" | 初始化、文件变更 |
| 环境变量 | .env 中的 SCRAPFLY_KEY | 每次会话开始时 |
| 导入语句 | import { Resend } from "resend" | 初始化、文件变更 |
| 提示词提及 | "use Browserbase to scrape..." | 每条提示词 |
🔍 Scanning project for paid services...
Found 6 paid services:
● Anthropic (Claude) ✅ LIVE API available
Detected via: package.json, env vars, imports
● Scrapfly ✅ LIVE API available
Detected via: env vars, imports
● Browserbase ✅ LIVE API available
Detected via: package.json, imports
● Supabase ✅ LIVE API available
Detected via: package.json, env vars
● Vercel 🟡 Flat plan
Detected via: package.json
● PostHog 🟡 Free tier
Detected via: package.json, imports
🔗 Registering hooks...
✅ burnwatch initialized!
2. 访谈
无需 CLI 标志,也无需 YAML 配置文件。只需和你的 Agent 对话:
You: "Let's set up burnwatch for this project"
你的 Agent 会进行对话式访谈,按风险类别逐一询问每项服务(先是大模型,然后是按用量计费的服务,最后是固定费用的基础设施):
Agent: I found 6 services. Let me walk through each one.
Anthropic — I probed your API key. You're on API Usage,
$47.23 spent this billing period. Default budget: $100/mo.
Does that feel right?
You: Yeah that's fine.
Agent: ✅ Anthropic set to $100/mo budget.
Scrapfly — Probe detected Pro plan (1M credits).
You've used 742K/1M credits. Budget: $100/mo.
You: Keep it.
Agent: ✅ Scrapfly set to Pro, $100/mo.
Vercel — You're on Pro ($20/mo flat).
PostHog — Free tier.
I'll set these as flat plans with matching budgets.
Skip?
You: Yep.
Agent: ✅ Vercel $20, PostHog $0 — all set.
每个回答都会立即写入。整个过程大约需要 90 秒。
3. 计费清单
精彩之处来了。每个受跟踪的服务都有一份计费清单,这是由社区维护的 JSON 文件,其中编码了完整的定价模型:
{
"serviceId": "browserbase",
"billingDimensions": [
{
"id": "browser_hours",
"name": "Browser hours",
"unit": "hour",
"ratePerUnit": 0.10,
"ratePer": 1,
"variants": [
{ "id": "standard", "ratePerUnit": 0.10, "codePatterns": ["createSession"] }
]
},
{
"id": "proxy_bandwidth",
"name": "Proxy bandwidth",
"unit": "GB",
"ratePerUnit": 10.00,
"ratePer": 1
}
],
"plans": [
{ "id": "startup", "monthlyBase": 99, "included": { "browser_hours": 500 } }
],
"costMultipliers": [
{ "id": "long_session", "factor": 10, "codePatterns": ["keepAlive", "waitForTimeout"] }
]
}
这不是猜测。burnwatch 知道 Browserbase 按浏览器小时计费(而非按会话计费),Startup 计划包含 500 小时,超额部分按 $0.10/小时计费,而使用 keepAlive 的长时间运行会话可能使成本增加 10 倍。它知道 Anthropic Opus 的价格是 Sonnet 的 5 倍。它也知道 Scrapfly 的反机器人绕过功能会消耗 5-25 倍的基础额度。
12 个服务已附带经过生产环境验证的清单。添加新服务只需一个 JSON 文件。
4. 被动监控
你编写代码,burnwatch 负责监控。每次保存文件时,系统都会在后台静默执行三项操作:
成本影响分析会扫描更改的文件,查找 SDK 调用点,检测乘数(循环、.map()、Promise.all、cron 计划),解析变量循环边界,匹配代码中的模型变体,并预测月度成本:
[BURNWATCH] ⚠️ Cost impact estimate for scraper.ts
Browserbase: ~15,000 calls/mo → $37-$375/mo (Long-running sessions)
Current: $12/$99 budget (12%)
用量跟踪会增量更新,跟踪项目中的每个调用点并预测超额用量:
[BURNWATCH] ⚠️ Browserbase utilization: ~750 browser-hours/mo
(plan includes 500) → ~$25.00/mo overage
新服务检测会在文件更改引入 burnwatch 尚未识别的服务时触发:
[BURNWATCH] 🆕 New paid service detected: twilio
Run 'burnwatch add twilio' to configure budget and tracking.
5. 干预(真正帮你省钱的部分)
下面是关键场景。你已经进行了五次会话,写了 4,000 行代码。你让 Claude 构建一个网页抓取工具:
You: "Create a scraper that uses Browserbase to scrape 1000 competitor
pages every other day on a cron job"
Claude 编写代码。文件一保存,burnwatch 就会触发:
[BURNWATCH] ⚠️ Cost impact estimate for scraper.ts
Browserbase: ~15,000 sessions/mo → $37-$375/mo (Long-running sessions)
Current: $12/$99 budget (12%)
[BURNWATCH] ⚠️ Browserbase utilization: ~750 browser-hours/mo
(plan includes 500) → ~$25.00/mo overage
Claude 会在自己的上下文中看到这条信息,因为它被注入为系统消息。它不会等你询问成本,而是主动回应:
Agent: I built the scraper, but heads up — burnwatch flagged this:
At 1,000 pages every other day, you're looking at ~750
browser-hours/month. Your Startup plan includes 500 hours,
so you'd hit ~$25/mo in overage on top of the $99 base.
A few options:
1. Reduce to 500 pages per run (stays within plan)
2. Use Playwright locally for non-JS pages (free)
3. Batch into fewer longer sessions to reduce overhead
Want me to adjust?
**没有 burnwatch,就不会有这段对话。**没有它,Claude 会编写抓取工具,你会将其部署上线,三周后看到账单时才发现超额费用。那时 cron 作业已经一直在正常运行了。
乘数检测
burnwatch 不只是统计 API 调用次数,还会读取调用周围的代码结构。
| 模式 | 示例 | 检测结果 |
|---|---|---|
| 字面循环边界 | for (let i = 0; i < 1000; i++) | 乘数:1000 |
| 变量循环边界 | const PAGES = 1000; for (i < PAGES) | 将 PAGES 解析为 1000 |
| 数组迭代 | urls.map(async (u) => scrape(u)),其中 urls = Array(500) | 乘数:500 |
| for...of | for (const page of pages),其中 pages 大小已知 | 已解析大小 |
| Promise.all | Promise.all(urls.map(...)) | 不会与 .map() 重复计数 |
| 命名常量 | const NUM_REQUESTS = 5000 | 检测为乘数提示 |
| Cron:每 5 分钟 | // every 5 minutes 或 */5 * * * | 乘数:每月 8640 次 |
| Cron:每隔一天 | // every other day 或 */2 | 乘数:每月 15 次 |
| Cron:每周 | // every week 或 0 0 * * 0 | 乘数:每月 4 次 |
| 批次大小 | const batch_size = 50 | 乘数:50 |
如果计费清单包含带有代码模式的成本乘数(例如 Scrapfly 中用于反机器人绕过的 asp.*true),系统也会检测到它们,从而提供成本范围,而不是单一数字。
置信度等级
每项支出数据都带有置信度标记。burnwatch 从不假装自己知道得比实际更多。
| 标记 | 含义 | 来源 |
|---|---|---|
| ✅ LIVE | 真实账单 API 数据 | 使用你的密钥轮询服务 API |
| 🟡 CALC | 固定月度成本 | 由你输入计划费用 |
| 🟠 EST | 基于监测的估算值 | 用量信号 + 定价公式 |
| 🔴 BLIND | 已检测,但未跟踪 | 服务存在,但没有配置 |
摘要始终会显示未跟踪数量。你不会看到一个表面整洁、却隐藏着意外的仪表板。
## 支持的服务
| 服务 | 层级 | 计费模式 | 可能带来的开销 |
|---|---|---|---|
| Anthropic | ✅ LIVE | 按 Token 计费 | Opus 的单 Token 价格是 Haiku 的 15 倍。模型由你的 Agent 选择。 |
| OpenAI | ✅ LIVE | 按 Token 计费 | GPT-4o-mini 比 o1 便宜 66 倍。模型选择影响很大。 |
| Scrapfly | ✅ LIVE | 积分池 | 绕过反机器人机制会消耗 5–25 倍基础积分,而且不会提示。 |
| Browserbase | ✅ LIVE | 按浏览器小时计费 | 按时间而非会话计费。会话越长,费用越高。 |
| Vercel | ✅ LIVE | 计算资源 + 超额费用 | 函数 GB 小时数是 Vercel 账单中最常见的意外开销。 |
| Supabase | ✅ LIVE | 分层计费 + 超额费用 | 向量嵌入会让数据库大小快速增长。 |
| Google Gemini | 🟡 CALC | 按 Token 计费 | 免费层很慷慨,但 Flash 2.0 便宜到让人忘了查看用量。 |
| Voyage AI | 🟡 CALC | 按 Token 计费 | 仅用于嵌入。费用随语料库大小增长,而非查询次数。 |
| Upstash | 🟠 EST | 按命令计费 | 每 10 万条命令 $0.20。免费层:每天 1 万条。很容易忘记它是按量计费的。 |
| Resend | 🟠 EST | 按邮件计费 | Pro 超额部分每 1,000 封邮件收费 $0.90。应用走红之前都没问题。 |
| Inngest | 🟡 CALC | 按执行次数计费 | 运行和步骤都会计数。一个包含 5 个步骤的函数算 6 次执行。 |
| PostHog | 🟡 CALC | 按事件计费 | 每月免费 100 万个事件。听起来很多,直到不够用。 |
计费清单
billing/ 目录中每项服务都有一个 JSON 文件。每份清单都包含:
- 计费维度:服务收费所依据的每个维度(Token、会话、带宽等)
- 变体:每个模型的费率,以及用于自动检测的正则表达式代码模式(Haiku、Sonnet 或 Opus)
- 套餐:包含的内容、超额费率、硬性上限
- 费用倍增项:会使费用倍增的功能标记(绕过反机器人机制、JS 渲染、隐身模式)
- 典型开发用量:用于更准确预测的实际用量模式
添加新服务
在 billing/ 中添加一个 JSON 文件:
{
"$schema": "./billing.schema.json",
"serviceId": "my-service",
"name": "My Service",
"lastVerified": "2026-03-25",
"pricingUrl": "https://my-service.com/pricing",
"billingDimensions": [
{
"id": "api_calls",
"name": "API calls",
"unit": "call",
"ratePerUnit": 1.00,
"ratePer": 1000
}
],
"plans": [
{
"id": "pro",
"name": "Pro ($29/mo)",
"monthlyBase": 29,
"included": { "api_calls": 50000 },
"overageRates": { "api_calls": 1.00 }
}
]
}
无需更改代码。费用引擎会自动读取该文件。
MCP 服务
burnwatch 提供 MCP 服务,可与任何支持 MCP 的大模型搭配使用:
claude mcp add burnwatch -- node ./node_modules/burnwatch/dist/mcp-server.js
提供的工具:
| 工具 | 用途 |
|---|---|
get_spend_brief | 显示完整支出表和提醒 |
get_service_spend | 查看某项服务的详细信息 |
analyze_cost_impact | 分析文件中会影响费用的 SDK 调用 |
get_utilization | 查看项目范围的用量和超额费用预测 |
get_billing_manifest | 获取任意服务的原始计费清单 |
detect_paid_services | 扫描项目中的付费服务 |
list_registry_services | 列出注册表中的所有服务 |
Claude Code 集成
burnwatch 以 Claude Code 钩子的形式运行,这些后台脚本会在会话生命周期事件触发时执行:
| 钩子 | 事件 | 功能 |
|---|---|---|
| 会话开始 | 新会话或恢复会话 | 轮询计费 API,生成支出摘要 |
| 提交提示词 | 你输入提示词 | 检测服务提及,并注入支出卡片 |
| 文件更改 | 编写或编辑代码 | 分析费用影响、检测新服务、更新用量 |
| 会话结束 | 会话结束 | 将支出账本写入磁盘 |
burnwatch 还会安装三个 Agent 技能:
/setup-burnwatch:引导式入门/burnwatch-interview:按服务逐项进行对话式配置/spend:快速检查支出(也可使用/spend scrapfly检查单项服务)
CLI 参考
burnwatch init Initialize in current project
burnwatch setup Init + auto-configure all detected services
burnwatch add <service> [options] Register a service for tracking
burnwatch configure [options] Update service config (plan, budget, key)
burnwatch interview --json Export current state as JSON (for agent use)
burnwatch status Show current spend brief
burnwatch scan Full project utilization scan
burnwatch services List all services in registry
burnwatch reconcile Scan for untracked services
burnwatch version Show version
配置与安全
凭据不会存放在项目目录中。
~/.config/burnwatch/
config.json API keys, tokens (chmod 600, never in git)
your-project/.burnwatch/
config.json Services, budgets, detection history
spend-ledger.md Human-readable spend report (git-committable)
data/
utilization.json Code-derived usage projections
events.jsonl Append-only event log
cache/ Billing API response cache
snapshots/ Point-in-time spend snapshots
## 贡献
最快的贡献方式:添加计费清单。
- Fork 仓库
- 按照
billing/billing.schema.json创建billing/<service-id>.json - 添加计费维度、套餐,最好也包含成本乘数
- 对照服务的定价页面核实费率
- 提交 PR
你也可以在 registry.json 中添加服务及其检测模式,或改进成本影响乘数检测。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。