开源 · MIT · 零依赖

在账单送到之前,拦住失控的 AI Agent 花费。

llm-guard 挡在你的模型 API 调用前面,把每一美元归因到花掉它的那把 key 上,并在失控循环还在跑的时候就发现它。只用 Python 标准库 —— 没有东西要装,除了我们自己的代码也没有别的东西要审。

llm-guard anomalies
  Runaway-spend detection
  window: last 15 min   ·   io ratio > 30:1   ·   velocity > 25x baseline
  CRITICAL io_ratio  [key: prod-agent]
    prod-agent is running a 74:1 input-to-output ratio across 67 calls
    in the last 15 min (12,006,400 in / 162,216 out, $38.45). Normal
    traffic sits at 5:1-15:1.
    → what to do
      The prompt is being re-sent in full on every step. Cap the context
      (summarise or truncate history), and enable prompt caching so the
      repeated prefix is billed at the cache rate. OWASP attributes ~62%
      of agent bills to re-sent context.
  WARN     retry_storm  [key: prod-batch]
    prod-batch had 42 failed calls out of 56 (75%) in the last 15 min.
运行期依赖
0
只用标准库
额外延迟
4.6ms
最坏情况:零延迟本地上游
吞吐
4.1k/s
不挂代理是 10.6k/s
测试
214
不需要网络和 API key

钱到底花在哪了

预算看板告诉你已经花了多少。而产生五位数账单的那种故障,是一条 agent 链在循环、重试或扇出 —— 等每日上限触发的时候,钱早就没了。

你的应用
Agent / SDK
不用改。把 base URL 指向网关即可。
llm-guard
计量、归因、封顶
从响应里读 usage,按模型计价,执行预算,并能在流中途掐断。
服务商
OpenAI / Anthropic
出站 TLS 在网关内用标准库完成。
你得到
按 key 的成本
SQLite、自包含看板,以及触顶前的告警。

为什么这么设计

三个决定了其他一切的取舍,也包括这个工具故意不做什么。

0

零依赖

网关在请求路径上,手里握着你的 API key。没有 FastAPI、没有 httpx、没有 uvicorn —— 大约 7,900 行,一个下午能读完,表面积小到能过安全审查。

?

宁可未知,不可错

缓存读的价格按模型不同,是输入价的 2.5% 到 50%。把它当成一个常数就是 4–5 倍的静默误差。如果某个模型没有价格,成本记为 NULL 并报为「未定价」。一个看着合理但是错的数字,比一个明显的缺口更糟。

!

只告警,不破坏

检测器从不阻塞流量。一个会悄悄掐死生产的检测器,比它想防的那张账单更糟。唯一的例外是可选的「单条流封顶」,而它依据的数字是本地估算,永远不用于计费。

它能抓到什么

这些故障模式不是我们发明的。它们来自 OWASP AISVS C9.1,以及一份收录了跨 21 个编排框架、63 起已确认生产事故的公开目录。每条检测都会标注它匹配到的模式、该模式的记录事故数,以及已报告的最大损失。

模式可观测量记录事故数
无界上下文循环输入/输出比高于 30:111
委派扇出竞态多个 key 同时出现突发11
重试风暴失败率高于 5%9
默认使用最贵模型单次调用成本是均值 8 倍以上—
未缓存的重复前缀缓存命中率低于 35%—
无上限的速率尖峰峰值日是中位日的 8 倍—
成本无法归因所有花费落在同一把 key—
未定价流量成功调用但价格表里没有—

运行 llm-guard patterns 查看完整的信号、阈值与引用出处。

一条命令开始

不需要 API key、不需要网络、不需要注册。演示数据里带了一个真实的 74:1 循环,所以第一次运行检测器就有东西可找。

bash
$ pip install git+https://github.com/leyao-daily/llm-guard.git
$ llm-guard seed --reset --compare-days 30
Seeded 13,254 requests spanning 60 days ($227.10 of simulated spend).
$ llm-guard anomalies
$ llm-guard diagnose --client "某公司" --out report.html

如果你的 AI 账单难以预测

我们找出原因。固定价格的诊断,交付一份书面报告:钱花在哪、先改什么、每一项每月值多少。不需要部署任何基础设施,只需对用量数据的只读权限,prompt 和回复永远不会离开你的账号。

$1,500 固定价 5 个工作日 没发现可执行项全额退款

如果你更想自己跑

llm-guard 是 MIT 许可且功能完整。零运行期依赖,只用标准库,预算执行和失控循环检测都在里面。没有阉割版,也没有留给付费客户的功能。

MIT 许可 15 个命令行子命令 适合隔离网络

我们是香港的一个小团队,比起做newsletter,更愿意和真正在生产环境跑这些东西的人聊。hello@lye-labs.com