在线 Demo(静态页):hayabusa-yl.github.io/agent-cost-lens —— 输入输出样例,不用装任何东西
可接远程项目 — AI 应用 / Agent 开发 / 自动化。 广西大学 28 届本科在读,方向 AI 应用 / Agent 开发;远程协作,工作日晚上与周末时间最整,小单可先做小样验收。 做过一套本地 Agent 系统:单步 API 成本 0.026 → 0.0043 元(降 84%),缓存命中率 99%。 联系方式:2567045535@qq.com | 项目复盘:juejin.cn/post/7701969275203895350
把 Agent 会话流水算成钱:一条命令给出总花费、缓存命中率、每次调用均价,以及跟基线比超没超两成。
面向的场景很窄:在本地跑 Agent 的人。云端那批可观测性工具默认你在服务端用 SDK 或代理调 API,看不见桌面端一次会话里混着多少工具调用、多少缓存命中、钱花在哪一轮。
输入是一份 JSONL 会话流水,每行一条事件,形状只要满足:
{"time": 1767225600000, "data": {"usage": {"inputTokens": 48213, "cacheReadTokens": 1902331, "outputTokens": 3311}}}也认 prompt_tokens / completion_tokens / cache_read_input_tokens 这些别名,行内没有 usage 或没有时间戳的会被跳过。
输出:总花费、事件数、每事件均价、缓存命中率、按天明细、跟基线的偏差。
node bin/cli.mjs report demo/sample-session.jsonl
node bin/cli.mjs report today.jsonl --baseline 12.5 # 基线直接给金额
node bin/cli.mjs report today.jsonl --baseline yesterday.jsonl # 或者拿另一份会话当基线
node bin/cli.mjs report today.jsonl --json # 给下游用demo 跑出来长这样:
- 总花费:0.23 元
- 事件(调用)数:6
- 每个事件均价:0.0378 元
- 缓存命中率:97.7%
- token:未命中输入 101502 命中输入 4392181 输出 9362
- 基线:1.20 元 偏差 -81%
默认表是 DeepSeek Flash 的公开价,单位元/百万 token:未命中输入 1、命中输入 0.02、输出 4。
平台会在某些时段临时调价(实测过上午三小时翻倍),所以支持时间分段:
{
"2026-01-01T00:00:00Z": { "miss": 1, "hit": 0.02, "out": 4 },
"2026-01-02T00:00:00Z": { "miss": 2, "hit": 0.04, "out": 8 }
}node bin/cli.mjs report today.jsonl --prices prices.json费率必须自己对一遍。算出来的钱只在费率表对得上时才有意义,这一点没有捷径:拿平台账单跟本地算的比一天,误差 5% 以内再信它。
- 超基线两成 → 先看缓存命中率掉没掉,再看每次调用的事件数涨没涨。
- 明显低于基线 → 通常不是省钱,是费率表过期了。
- 命中率突然从 95% 掉到 60%,说明上下文被重排过,钱会翻好几倍。
npm test六个用例:单位换算、命中价差 50 倍、时间分段生效、命中率分母、按天分组求和、对账单结论分支。
- 只认 usage 形状的流水,不管日志收集、传输、存储。
- 只算钱,不评估「这次调用值不值」。
- 没有 Web UI,输出是 Markdown 和 JSON。
- 单个会话几百到几千条事件的量级;更大的量请自己分片。
用同一套计价方式复盘的 LongBench v1 900 题全量跑分与成本:longbench-harness
MIT