开发者构建了AgentShield,针对AI Agent三大烧钱场景(重试风暴、上下文累积、工具调用死循环)提供事务级拦截,80行TypeScript + 纯Python规则引擎,可集成OpenClaw网关。
三周前我发布了 AgentShield,一个针对 AI agent 的按次调用费用防火墙。现在它有了一个可用的 OpenClaw 插件。以下是集成的工作原理以及我为什么这样构建它。
OpenClaw 仓库的 Issue #42475 有 15 条评论和 2,800 个 reactions。请求是:在网关层实现按 agent 预算执行。开发者们运行着多个 agent,一觉醒来发现账单高达 200 美元,却没有任何 guardrails。
评论描述了三种失败模式:
Retry storms(重试风暴) — agent 遇到 429 错误,每次重试都携带完整上下文,每次重试都花费更多
Context accumulation(上下文累积) — 第 40 轮的成本是第 1 轮的 50 倍,因为每次都重新发送历史记录
Tool call loops(工具调用循环) — agent 陷入调用同一个损坏工具的死循环
这些工具都存在一个问题:它们在事务层面而非会话层面发生,因此现有的监控工具无法捕获。等到 LangSmith 或 Helicone 向你展示图表时,钱已经花掉了。
该插件是 80 行 TypeScript 代码,位于 OpenClaw 网关和模型调度之间:
OpenClaw gateway → AgentShield plugin (evaluate) → model dispatch
↓
ALLOW / BLOCK / FLAG
↓
SSE alert to dashboard
实际的规则引擎是纯 Python 3.11 标准库,运行在独立端点上。该插件只是一个轻薄的评估客户端。这种分离意味着插件不会给 OpenClaw 的核心循环增加任何延迟——它触发一个异步 HTTP 调用然后继续执行。
将此配置到你的 openclaw.json:
{
"plugins": {
"agentshield": {
"endpoint": "https://agentshield.fly.dev",
"apiKey": "${AGENTSHIELD_API_KEY}",
"rules": {
"transactionLimit": 100,
"dailyCap": 2000,
"velocityThreshold": 10,
"merchantAllowlist": ["openai-api", "anthropic-api"]
}
}
}
}
就这样。对 OpenClaw 无需任何代码更改。该插件在 beforeModelDispatch 之前拦截,根据规则评估估算成本,并在 1ms 内返回 ALLOW 或 BLOCK。
该插件在每次模型调用前向规则引擎发送三样东西:
Estimated cost(估算成本) — 根据模型层级和 token 估算计算
Provider(提供商) — "anthropic-api"、"openai-api" 等,用于商户白名单
Session cost so far(当前会话成本) — 用于每日上限执行
引擎按优先级顺序针对 7 条可组合规则进行评估:
Transaction limit(事务限制) — 阻止任何单次超过 $X 的调用
Daily total(每日总额) — 限制每个 agent 每天的累计支出
Velocity(速度) — 如果在时间窗口内发生 N+ 次调用则标记
Merchant allowlist(商户白名单) — 仅允许已批准的 API 提供商
Category block(类别阻止) — 阻止整个支出类别
Combined rules(组合规则) — 堆叠多条规则以实现纵深防御
Edge cases(边缘情况) — 字段缺失时的优雅降级
第一条匹配的规则做出决策。决策以 JSON 形式返回:{"decision": "BLOCKED", "rule": "transaction_limit", "evaluation_ms": 0.09}
规则引擎有一个包含 7 个类别、50 个标记场景的测试套件。全部通过:
边缘情况才是正确性真正重要的地方:$500.00 在 $500 限额下是 APPROVED(不是严格大于)。$500.01 是 BLOCKED。缺失的金额字段是 FLAGGED 而不是崩溃。同优先级的两条规则是确定性的——列表中靠前的胜出。
Risk calculator(无需注册):https://agentshield.fly.dev/tools/risk-calculator/
Plugin code:https://github.com/kindrat86/agentshield/tree/main/integrations/openclaw
Eval gym:https://agentshield.fly.dev/eval
Full architecture:https://dev.to/maryan_k_bef6cf83fa64e809/i-built-a-firewall-for-ai-agent-spending-here-is-the-architecture-2560
该插件是开源的。引擎是纯 Python 3.11 标准库——零 pip 依赖,可在 60 秒内部署到 Fly.io 免费层。如果你不想自托管,托管托管服务可用($19/月)。
欢迎 Pull requests。欢迎 Issues。如果你正在运行带有多个 agent 的 OpenClaw 并且有预算方面的惨痛经历,我很想听听。