如何用 Guardian Runtime 为你的 AI 编码 Agent 搭建本地防火墙?
一个被忽视的隐形成本
如果你每天都在用 Claude Code 或 Cursor 写代码,有没有想过一个问题:当 Agent 陷入死循环,一遍又一遍地读取超大日志文件、重试同一个 bug 修复时,账单在涨吗?
答案是:不仅涨,而且可能涨得很离谱。一个卡住的 Agent 一夜之间烧掉 $100 API 费用并非危言耸听。更可怕的是数据泄露——如果 .env 文件中躺着一条生产环境的 AWS Key,Agent 会毫无知觉地把它随上下文发送到 Anthropic 或 OpenAI 的服务器。
Guardian Runtime 就是为解决这两个问题而生的:一个本地优先的 FinOps 安全防火墙,在 LLM 请求离开你机器之前,对它做拦截、扫描和预算控制。
什么是 Guardian Runtime?
Guardian Runtime 是一个开源(MIT 协议)的本地代理防火墙,pip install 即可安装,无需注册、无需 API Key、零配置启动。它在你的机器上以 HTTP 代理或 Python SDK 的形式运行,位于 Agent 和 LLM API 之间,对每个请求执行三道检查:
- 安全扫描:检测请求中是否包含 API Key、AWS 凭证、PII 等敏感信息,一旦发现立即拦截
- 预算检查:实时追踪每天的花费,超出设定阈值后自动熔断
- 输出优化:Terse Mode 通过系统提示注入强制 LLM 输出精简回答,实测可减少 40-70% 的输出 Token
一分钟安装
pip install guardian_runtime
如果要用全功能版(含 ML 扫描器、文档转换等):
pip install "guardian_runtime[all]"
对,就这么简单。所有数据都存在本地 ~/.guardian_runtime/ 目录下,不会上传任何遥测信息。
三大核心功能详解
1. 硬预算控制(Hard Budgets)
这是最实用的功能。启动代理后,Guardian 会追踪每一轮请求的 Token 消耗和费用。你可以设定每日预算上限,比如 $5/天——一旦 Agent 当天累计花费达到这个数,后续请求会被直接拦截。
guardian_runtime proxy --port 8080
启动后 Agent 的请求路由到这个本地代理,所有 Token 用量和花费都在本地实时记录。用 guardian_runtime analytics 可以查看当天的费用明细:
$ guardian_runtime analytics ⛨ GuardianRuntime Session Analytics (Today) ────────────────────────────────────────────── Claude Code Cost: $2.3100 Requests: 54 Blocked: 3 (3 secret_detected) Tokens: 82,000
这不仅告诉你花了多少钱,还告诉你被拦截了哪些风险请求。
2. 本地密钥扫描(Secret Detection)
在 Agent 发送请求之前,Guardian 会扫描请求内容中是否包含常见的凭证模式——AWS Access Key、OpenAI API Key、GitHub Token、数据库密码等。如果检测到敏感信息,请求会在到达 LLM 之前被拦截。
$ guardian_runtime scan "My AWS key is AKIAIOSFODNN7EXAMPLE" 🛑 Scan failed! Threats detected: - [HIGH] secret_detected: AWS Access Key ID found.
关键区别:传统的可观测性工具(如 Langfuse)在密钥已经上传到云端之后才记录日志;Guardian Runtime 在请求离开机器之前直接拦截。
3. Terse Mode(输出简洁模式)
这是一个巧妙的设计:通过注入系统提示,引导 LLM 输出更简短、更精准的回答。对于 Agent 的日常操作(文件修改、代码生成),完整的长篇解释往往不是必需的。Terse Mode 实测可减少 40-70% 的输出 Token,直接对应 API 费用的降低。
实战:为 Claude Code 配置防火墙
这是最常见的场景。在终端中启动代理,然后通过环境变量让 Claude Code 路由到本地代理:
guardian_runtime proxy --port 8080 export ANTHROPIC_BASE_URL=http://localhost:8080 claude
发生了什么? 当 Claude Code 试图读取 .env 文件中的 AWS Key 并发送给 Anthropic 时,Guardian Runtime 会在本地拦截这个请求:
🚨 [SECRET_DETECTED] AWS key AKIAIOS... found — BLOCKED
同时如果 Agent 陷入了死循环、疯狂消耗 Token,当每日预算触达 $5 时:
🚨 [BUDGET_EXCEEDED] Daily budget of $5.00 exceeded. Current spend: $5.05 — BLOCKED
在 Cursor 中使用
对于 Cursor 这类可视化 IDE,配置同样简单:
- 启动代理:
guardian_runtime proxy --port 8080 - 打开 Cursor 设置(Cmd/Ctrl + ,)
- 导航到 Models > Override Base URL
- 设置为:
http://localhost:8080
之后所有 Cursor 的请求都会经过 Guardian 的保护。
Python SDK 集成
如果你在构建自己的 AI 应用,可以直接用 SDK 模式集成:
import os
from guardian_runtime import GuardianRuntime, GuardianRuntimeBlockedError
os.environ["OPENAI_API_KEY"] = "sk-proj-..."
gr = GuardianRuntime()
try:
response = gr.complete(
messages=[{"role": "user", "content": "My AWS Key is AKIAIOSFODNN7EXAMPLE"}],
raise_on_block=True
)
print(response.content)
except GuardianRuntimeBlockedError as e:
print(f"Blocked: {e.response.violations[0].detail}")
自定义策略配置
默认策略已经足够好用($10/天预算 + 严格密钥扫描)。如果需要定制,运行以下命令生成策略模板:
guardian_runtime init
这会生成一个 policy.yaml,你可以调整每日预算、禁用某些扫描器、或启用更严格的企业级 PII 拦截:
version: "1.0"
agents:
default:
cost:
daily_budget: 5.00
max_input_tokens: 20000
input_guard:
scanner_enabled: true
jailbreak_detection: true
optimizer:
enabled: true
terse_mode: true
更多命令一览
| 命令 | 用途 |
|---|---|
guardian_runtime proxy | 启动 HTTP 代理防火墙 |
guardian_runtime analytics | 查看当天费用和拦截统计 |
guardian_runtime dashboard | 启动本地 Web 仪表盘(端口 3000) |
guardian_runtime logs | 实时查看 JSONL 事件流 |
guardian_runtime scan | 手动扫描一段文本中的敏感信息 |
guardian_runtime convert | 将 PDF/DOCX 转换为 Token 优化的 Markdown |
guardian_runtime status | 检查安装状态和存储健康 |
总结
Guardian Runtime 的价值在于它解决了一个真实且普遍的痛点:AI 编码 Agent 在带来效率的同时,也在悄悄产生两个巨大风险——成本失控和数据泄露。
它不是那种「看起来很酷但很少真正用上」的工具。任何一个在团队中推广 AI 编码工具的人,都应该考虑在 Agent 和 LLM 之间加一层本地防火墙。pip install guardian_runtime 一分钟就能装好,给 Claude Code、Cursor、Aider 加上预算阀门和安全闸门。在 AI 编码工具逐渐成为基础设施的今天,这种「保护层」工具只会越来越重要。