MakerChecker
开源 AI Agent 安全防火墙,在 Agent 每次操作执行前进行 deny-by-default 安全检查,支持人工审批门控和 Ed25519 签名审计链,Agent 结构上无法批准自己的工作
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 由三个独立包组成,可以单独使用:
-
mc scan(静态扫描器):
npx @makerchecker/scan .零安装扫描 Agent 代码,标记所有未受治理的危险能力(删数据、转账、执行 shell、泄露密钥),每个发现映射到真实事故库中的 41 个案例。支持--fix自动生成治理策略代码。 -
@makerchecker/embedded(嵌入式治理):纯进程内治理原语,deny-by-default 授权 + 职责分离,无需服务器/Postgres/审计链。用
createGovernor()定义角色和技能,用governedTool()包装任何工具。 -
自托管服务器(完整网关):
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 工具。
小技巧
- 先跑
mc scan再集成:扫描结果会告诉你哪些工具最危险,优先治理 CATASTROPHIC 级别的。 - 用
--fix自动生成策略:扫描器可以自动写出mc-policy.json,不用手写。 - 理解”角色分离”:MakerChecker 的核心是 Agent 不能批准自己的操作。定义至少两个角色:一个给 Agent,一个给人工审批者。
- 审计日志是写时签名:操作和日志同时写入,不存在”执行了但没记录”的情况。
参考链接
- MakerChecker 官网:https://www.makerchecker.ai
- GitHub 仓库:https://github.com/makerchecker/MakerChecker
- npm 包 @makerchecker/scan:https://www.npmjs.com/package/@makerchecker/scan
- npm 包 @makerchecker/embedded:https://www.npmjs.com/package/@makerchecker/embedded
- 信任与合规页:https://www.makerchecker.ai/trust
- HN 讨论:Show HN: Scan your AI agents for dangerous capabilities
- AgentOps(竞品):https://github.com/AgentOps-AI/agentops
📊 评分与标签
评分说明
总分 8.3/10 · P_优选
📊 可观测社区指标(数据核验日期:2026-07-23)
- GitHub: makerchecker/MakerChecker ★50,Forks 1,Open Issues 5
- 仓库创建于 2026-06-11,最近推送于 2026-07-20,AGPL-3.0,未归档
- npm 周下载:
@makerchecker/scan6、embedded10、sdk9,仍处早期采用阶段
🤖 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,可自托管并审计实现;仓库近期持续推送
- 来源:MakerChecker 官网
- 来源:GitHub 仓库
- 拒绝逻辑位于 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