文章

CrabTrap:Brex 开源的 LLM-as-a-Judge 代理安全网关

CrabTrap:Brex 开源的 LLM-as-a-Judge 代理安全网关

作为 OfoxAI(ofox.ai)的开发者,我每天都需要处理多个 AI Agent 的安全问题 — 从模型选择到权限控制,从输入过滤到输出审计。最近 Brex 开源的 CrabTrap 让我眼前一亮:这不是又一个理论上的安全框架,而是一个已经跑了 6 个月、处理了超过 1 亿次请求的实战级解决方案。

CrabTrap Landing Page CrabTrap 是 Brex 开源的 LLM-as-a-Judge HTTP 代理,用于实时拦截和审计 AI Agent 请求

生产环境的安全痛点

把 AI Agent 部署到生产环境,最头疼的不是模型能力,而是不可预测性

Agent 可以调用外部 API、可以访问数据库、可以读写文件。你给它的 prompt 是”帮用户查询订单”,但它可能理解成”帮用户查询并修改订单”,甚至更糟 — “帮用户查询其他用户的订单”。

传统的安全方案是静态规则:黑名单、权限检查、输入验证。但 LLM 的输入是自然语言,规则很难覆盖所有边界情况。更麻烦的是,Agent 的行为是动态的 — 它会根据上下文生成调用参数,静态规则几乎不可能预判所有风险路径。

CrabTrap 的核心设计

CrabTrap 解决这个问题的思路很直接:让另一个 LLM 来当裁判

它的架构是一个 HTTP 代理,位于 Agent 和外部世界之间。每个 outgoing request 都要经过两轮检查:

  1. 静态规则匹配:快速过滤已知的危险模式
  2. LLM 动态判断:对于边界情况,交给 Judge LLM 做语义级决策

CrabTrap 拦截演示 CrabTrap 实时监控 Agent 请求,显示拦截决策日志和判断依据

这个设计的巧妙之处在于延迟控制。静态规则在几毫秒内完成,LLM 判断可以异步进行。对于高吞吐场景,你可以配置成”先放行、后审计”模式;对于敏感操作,可以配置成”阻塞等待 Judge 决策”。

从实战中沉淀的策略

Brex 的工程师在博客中提到,他们花了 6 个月时间迭代安全策略。最开始的版本只有简单的关键词过滤,后来发现根本不够用。

举个例子:Agent 请求”GET /api/users/12345”。关键词过滤会放行,因为这个 URL 不包含敏感词。但 Judge LLM 会结合上下文判断 — 如果当前会话的用户 ID 不是 12345,这个请求可能是越权访问。

更复杂的场景是多轮推理。Agent 可能在第一步请求”获取用户列表”,第二步请求”获取订单详情”,第三步请求”取消订单”。每一步单独看都是合法的,但组合起来可能是违规操作。CrabTrap 的策略引擎支持跨请求的上下文追踪。

开源的意义

CrabTrap 已经在 GitHub 上开源(brexhq/CrabTrap),采用 MIT 协议。这不是一个 marketing stunt — Brex 的团队是真的在生产环境里用这个系统跑了半年。

开源的价值在于:

  • 策略即代码:安全规则可以版本控制、可以代码审查、可以 CI/CD
  • 社区贡献:不同行业的合规要求不同,社区可以贡献特定领域的策略模板
  • 透明审计:Judge LLM 的决策逻辑是可见的,便于事后分析和调试

对开发者的启示

CrabTrap 代表了一种新的安全范式:从静态规则到语义判断

在 AI Agent 时代,传统的 WAF、API Gateway 已经不够用了。你需要一个理解自然语言的中间层,一个能根据上下文做动态决策的安全屏障。

这并不意味着完全依赖 LLM。CrabTrap 的设计是”混合模式” — 静态规则处理 90% 的常见情况,LLM 处理剩下的 10% 边界情况。这样既保证了低延迟,又覆盖了长尾风险。

如果你正在构建生产级的 AI Agent,建议把 CrabTrap 加入技术栈评估。它可能不是唯一选择,但这个领域确实需要更多像 Brex 这样愿意分享实战经验的团队。


参考链接

本文由作者按照 CC BY 4.0 进行授权