试跑
公开 Demo:调用前拦截长什么样
这里不是空壳列表。下面可以现场试跑真实策略引擎,再对照预置审计回放。 看懂 allow / deny / redact / require_approval 四种动作,就算 Demo 验收过关(A8)。 真正装进 IDE 后,审批在 Agent 对话里完成。
验收清单(A1–A8)
- A1:工作区读 → allow (本页试跑 / 公开回放)
- A2:系统写 → deny (本页试跑 / 公开回放)
- A3:HTTP 密钥 → redact (本页试跑 / 公开回放)
- A4:危险 shell → require_approval (本页试跑)
- A5:Agent 对话内 guardian_decide 批准/拒绝 (Cursor/Codex 会话)
- A6:统计含 deny/redact/approval (本页顶部数字)
- A7:断网 CLI:bash scenarios/a1-a5.sh (终端)
- A8:未登录可看公开 Demo,不能改策略 (本页)
allow
1
deny
2
redact
2
require_approval
1
现场试跑策略(真引擎)
点下面按钮会在浏览器里用默认 fail-closed 策略即时评估(与仓库 policies/default.fail-closed.yaml 对齐)——不是写死的假数据。
预置审计回放(只读)
点开每条看「发生了什么 / 期望是什么」。不能改策略(A8)。
- A2 · deny拒绝:写入系统目录
Agent 试图写 /etc/passwd。策略命中 deny-system-write,硬拒绝。
- A3 · redact脱敏:HTTP 请求里的 API Key
URL / Authorization 含密钥。策略 redact 后再放行,审计里只见 ***REDACTED***。
- A4 / A5 · require_approval需审批:高危 shell
命令含 rm -rf。策略 require_approval;Gateway 立刻返回 pending,由 Agent 在对话里问你,再调 guardian_decide。
- A1 · allow允许:读工作区文件
Agent 要读 /workspace/readme.md。策略命中 allow-workspace-read,放行。
- A6 / fail-closed · deny默认拒绝:未匹配规则
读 /tmp/bomb-1 无规则命中。fail-closed 模式下一律 deny(批量轰炸同理)。
- A6 · redact脱敏:可疑元数据 URL
指向 169.254.169.254 且带 api_key 的 fetch,同样走 redact 规则。
本机完整闭环
浏览器试跑只验证策略理解;Gateway + IDE 闭环请在仓库根目录跑:
cd mcp-guardian bash scenarios/a1-a8.sh bash scenarios/ide-smoke.sh bash scenarios/real-filesystem.sh