💼 商业平台

MakerChecker

开源 AI Agent 安全防火墙,在 Agent 每次操作执行前进行 deny-by-default 安全检查,支持人工审批门控和 Ed25519 签名审计链,Agent 结构上无法批准自己的工作

📅 收录: 2026-07-09 🔄 更新: 2026-07-09

MakerChecker:AI Agent 的安全防火墙

MakerChecker 是一个开源的 AI Agent 安全治理层,核心定位是”Agent 安全防火墙”。它在 Agent 每次工具调用前充当检查点,在调用后充当签名账本—Agent 只能通过被授权的角色执行操作,不能超出权限范围,更不能批准自己的工作。

与传统 Agent 监控工具(如 AgentOps)不同,MakerChecker 不是事后记录而是事前拦截。它的核心理念是”deny-by-default”:未被显式授权的操作在执行前就被拒绝,而不是在事后才被发现。每个决策(无论允许还是拒绝)都会写入 Ed25519 签名、SHA-256 哈希链的审计日志,审计员可以完全离线验证。

这是什么?适合谁?

MakerChecker 适合需要将 AI Agent 部署到生产环境的企业团队,尤其是:

  • 受监管行业:金融(交易审批)、医药(药物警戒报告)、医疗器械(MDR 合规)—这些场景中 Agent 的不可逆操作需要人工签字
  • 安全敏感团队:担心 Agent 被 prompt injection 攻击后执行危险操作(删库、转账、泄露密钥)
  • 需要审计证据的组织:需要向监管机构或内部审计证明 Agent 的每次操作都有合规记录

它不适合:只想跑简单 Agent 任务的个人开发者(集成成本高于收益),或不需要不可逆操作控制的场景。

核心架构

MakerChecker 由三个独立包组成,可以单独使用:

  1. mc scan(静态扫描器):npx @makerchecker/scan . 零安装扫描 Agent 代码,标记所有未受治理的危险能力(删数据、转账、执行 shell、泄露密钥),每个发现映射到真实事故库中的 41 个案例。支持 --fix 自动生成治理策略代码。

  2. @makerchecker/embedded(嵌入式治理):纯进程内治理原语,deny-by-default 授权 + 职责分离,无需服务器/Postgres/审计链。用 createGovernor() 定义角色和技能,用 governedTool() 包装任何工具。

  3. 自托管服务器(完整网关):docker compose up 启动 Postgres + 服务器 + 演示数据。提供集中式授权、人工审批收件箱、审查控制台。每个决策 Ed25519 签名并哈希链化,导出后可离线验证。

准备工作

  • Node.js 18+(扫描器和嵌入式包):MakerChecker 基于 TypeScript/Node.js 生态
  • Docker(自托管服务器):需要 Docker 和 Docker Compose
  • Python 3.10+(Python SDK):如果使用 Python SDK 集成
  • 现有 Agent 框架:MakerChecker 不是独立 Agent,需要集成到 LangChain、Claude Agent SDK 等框架中
  • 无需 API Key:MakerChecker 本身不依赖 LLM,纯确定性代码执行(扫描器可选调用 Anthropic API 做”二次意见”)

3 步快速上手

第 1 步:扫描你的 Agent

最快体验方式是运行静态扫描器,不需要安装任何东西:

npx @makerchecker/scan .

它会扫描你当前目录下的 Agent 工具定义,输出类似:

Scanning tool definitions in /usr/src/app...
[CATASTROPHIC] Tool 'transfer_funds' has no preceding approval gate.
  Resembles: AID-2026-0004 (Morse Code Prompt Injection Grok Wallet Drain)
  Fix: Add approval_gate control in mc-policy.json

[HIGH] Tool 'delete_database' has no preceding gate.
  Resembles: AID-2025-0008 (Amazon Q VS Code extension database-wiping prompt injection)
  Fix: Add limit_violation or approval_gate

Scan failed. Found 1 CATASTROPHIC and 1 HIGH risk ungoverned capabilities.
To fix the build, run: npx @makerchecker/scan init .

每个发现都会匹配到真实事故库中的案例(如 Amazon Q 删库事件、Grok 钱包 drain 事件),让你直观理解风险。运行 npx @makerchecker/scan init . 会自动生成治理策略文件。

第 2 步:集成嵌入式治理

安装嵌入式治理包:

npm i @makerchecker/embedded

在你的 Agent 代码中,用 createGovernor() 定义角色和技能,然后用 governedTool() 包装工具:

import { createGovernor, GovernanceDeniedError } from "@makerchecker/embedded";

const gov = createGovernor()
  .defineSkill("place-order@1", { riskTier: "high" })
  .defineRole("agent")
  .defineRole("risk-desk")
  .grant("risk-desk", "place-order@1")   // agent 未被授权 -> deny by default
  .defineAgent("trader", "agent");

// 包装工具,Agent 现在结构上无法触发它
const placeOrder = gov.governedTool("trader", "place-order@1", (order) => broker.submit(order));

try {
  await placeOrder({ symbol: "BTC", qty: 10 });
} catch (err) {
  if (err instanceof GovernanceDeniedError) console.log(err.code); // "skill_not_granted"
}

关键设计:高风险技能分配给单独的角色(risk-desk),Agent(trader)不被授权—所以 Agent 结构上无法执行,必须由人工审批后才能触发。Agent 永远无法批准自己的工作。

第 3 步:部署完整服务器(可选)

如果你需要集中式授权、人工审批收件箱和审查控制台:

docker compose up

这会启动 Postgres + 服务器(localhost:3000) + 演示数据,打印两个 API Key:管理员密钥(Agent 认证)和审批员密钥(人工审查者)。

演示的药物警戒流程会停在一个医学审查门控:

# 启动流程
curl -X POST localhost:3000/api/flows/pv-icsr-processing/runs -H "$H" -d '{}'

# Agent 不能自己审批 -- 返回 403
curl -X POST localhost:3000/api/approvals/<id>/decision -H "$H" -d '{"decision":"approved"}'

# 需要单独的审批员签字
curl -X POST localhost:3000/api/approvals/<id>/decision -H "$OFFICER" -d '{"decision":"approved","reason":"Seriousness confirmed"}'

# 验证审计链
curl localhost:3000/api/audit/verify -H "$H"

竞品对比

与 AgentOps 对比:AgentOps(GitHub 5.7K Stars)是 Agent 可观测性平台,专注于事后监控、调试和成本追踪。MakerChecker 是事前拦截,在操作执行前就阻止未授权行为。两者互补:AgentOps 告诉你 Agent 做了什么,MakerChecker 阻止 Agent 做不该做的事。

与 Iron Gorilla 对比:Iron Gorilla 是商业 Agent 运行时拦截平台,2026 年 6 月 GA,闭源付费。MakerChecker 是开源方案(AGPL-3.0 核心 + Apache-2.0 SDK),可自托管,数据不离开你的基础设施。

与 SuperAgent 对比:SuperAgent(GitHub 6.6K Stars)专注于 prompt injection 防护,属于概率性过滤。MakerChecker 明确表示”不做更好的 prompt 过滤器”,而是在 LLM 之外构建确定性运行时围栏,即使 Agent 被完全攻破也无法执行未授权的不可逆操作。

常见踩坑

1. mc scan 报 “command not found” 症状:运行 npx @makerchecker/scan . 提示找不到命令。 原因:Node.js 版本低于 18。 解决:升级 Node.js 到 18+,用 node -v 确认版本。

2. embedded 包的 GovernanceDeniedError 未被捕获 症状:Agent 运行时抛出未捕获异常导致崩溃。 原因:governedTool() 包装的工具在权限不足时抛出 GovernanceDeniedError。 解决:在 Agent 的工具调用逻辑中 try/catch 此错误,将其转化为用户友好的”操作需审批”提示。

3. docker compose 启动失败 症状:docker compose up 报端口冲突。 原因:3000 端口已被占用。 解决:修改 docker-compose.yml 中的端口映射,或停掉占用 3000 端口的服务。

4. 审计链验证失败 症状:/api/audit/verify 返回验证失败。 原因:数据库中的审计记录被手动修改。 解决:这正是设计预期—任何篡改都会导致验证中断并指向被修改的行。恢复数据库或重新初始化。

高级玩法

1. CI/CD 集成:将 npx @makerchecker/scan . 加入 GitHub Actions 工作流,--fix 生成的 mc-policy.json 提交后 CI 扫描通过,构建徽章变绿。生产环境的自托管引擎执行相同的策略文件。

2. Kubernetes 部署:项目提供 Helm Chart(deploy/helm),支持加固的 Kubernetes 部署,适合企业级生产环境。

3. 离线验证:导出审计包后,审计员可以在自己的笔记本上完全离线验证,不需要访问你的系统,也不需要运行 MakerChecker 的代码。验证器会重新计算 SHA-256 哈希链,任何一行被修改都会在那一行中断。

4. 框架连接器:项目提供 LangChain 连接器(packages/connector-langchain)和 Claude Agent SDK 连接器(packages/connector-claude-agent),可以直接治理你现有的 Agent 工具。

小技巧

  1. 先跑 mc scan 再集成:扫描结果会告诉你哪些工具最危险,优先治理 CATASTROPHIC 级别的。
  2. --fix 自动生成策略:扫描器可以自动写出 mc-policy.json,不用手写。
  3. 理解”角色分离”:MakerChecker 的核心是 Agent 不能批准自己的操作。定义至少两个角色:一个给 Agent,一个给人工审批者。
  4. 审计日志是写时签名:操作和日志同时写入,不存在”执行了但没记录”的情况。

参考链接

📊 评分与标签

评分说明

总分 8.3/10 · P_优选

📊 可观测社区指标(数据核验日期:2026-07-23)

🤖 Agent 能力 1.6/2.0

  • 提供静态扫描、运行前策略门禁、职责分离和签名审计链,未授权或自我审批会在执行前被拒绝
  • Ed25519 签名与 SHA-256 哈希链可由审计方离线复核,修改任一记录会使验证失败
  • 扣分项:它是 Agent 安全治理层而非通用任务 Agent,不负责规划、推理或自主完成业务目标

🖐️ 易用性 1.2/1.5

  • 静态扫描可直接运行 npx @makerchecker/scan .,默认离线、无需注册或遥测
  • SDK 包装现有工具时保留名称与 schema,降低对业务 Agent 的改造量
  • 扣分项:生产治理仍需部署服务、设计角色/技能/风险层级并维护审批流程

🔌 生态集成 1.6/2.0

  • 提供 TypeScript、Python SDK,以及 LangChain、Claude Agent SDK 的类型化连接器
  • CrewAI、LlamaIndex、AutoGen 可通过通用 SDK 适配;策略文件可进入 CI/CD 版本管理
  • 扣分项:官方类型化连接器数量仍少,非主流框架需要自行适配

👥 社区支持 1.0/1.5

  • 仓库近期活跃并已发布多个版本,官网、文档、事故库和离线验证器均可访问
  • 但 50 Stars、1 Fork 且 npm 周下载为个位数至十位数,社区和生产采用仍处早期

💡 创新程度 1.5/1.5

  • 将 maker-checker 职责分离落实到模型外部执行边界,使提议动作的 Agent 无法批准自身高风险操作
  • 用可离线验证的签名哈希链提供第三方可复核证据,不依赖运营方数据库自证
  • 不把安全承诺建立在提示词过滤上,而以确定性权限和审批门禁限制动作后果

🔒 稳定性 1.4/1.5

  • 核心 AGPL-3.0、SDK Apache-2.0,可自托管并审计实现;仓库近期持续推送
  • 拒绝逻辑位于 Agent 外部,签名链支持离线验证,降低模型被攻陷后绕过审批的风险
  • 扣分项:项目历史不足两个月、使用样本有限,长期升级兼容性和高负载表现尚待验证

评分依据可追溯至公开来源,每项分数均有明确理由和数据支撑。

🏷️ 标签说明

  • 开源免费: 核心采用 AGPL-3.0,SDK 采用 Apache-2.0。来源:MakerChecker 官网
  • 安全: 以 deny-by-default、独立审批和签名审计治理 Agent 动作。来源:安全模型
  • Agent: 面向现有 AI Agent 的执行边界治理。来源:MakerChecker 官网
  • CLI: 静态扫描器可通过 npx 在命令行运行。来源:扫描说明

📋 来源与核验记录

  • ✅ 已核验:MakerChecker 官网
  • ✅ 已核验:GitHub REST API(50 Stars、1 Fork、5 Open Issues)
  • ✅ 已核验:npm Downloads API
  • ✅ 已核验:官网集成示例与 Ed25519/SHA-256 离线验证说明
  • ⚠️ 未验证:完整生产网关的压力、故障恢复与升级兼容性
  • ⚠️ 项目处于早期采用阶段,缺少长期生产样本

同分类推荐

商业平台 分类下的其他 Agent