Skip to content

Repository files navigation

AgentGuard

给 AI Agent 钱包,不给它失控的权力。

AgentGuard 是为 Monad Blitz 武汉站准备的 AI × Web3 Demo:用户把少量 MON 存入合约,为 Agent 配置会话预算、单笔上限和商户白名单。Agent 遇到付费 API 的 HTTP 402 响应时,可以在策略允许范围内自动付款并重试;超额、陌生 商户或重复请求会被合约拒绝。

为什么值得参赛

多数 AI Agent Demo 重点展示“它能做什么”,AgentGuard 展示的是“它不能做 什么”。当 Agent 开始自主购买数据、模型和算力时,支付权限不能只依赖提示 词。链上策略提供四个可验证边界:

  • 会话总预算
  • 单笔支付上限
  • 商户白名单
  • 请求 ID 防重放

Monad 的快速确认使支付护栏不会成为 Agent 体验中的明显阻塞点。

两分钟演示

  1. 用户输入一个调研任务并启动 Research Agent。
  2. GitHub Radar 返回 HTTP 402;0.004 MON 符合策略,支付通过。
  3. Premium Alpha 索要 0.025 MON,超过单笔上限,合约拒绝。
  4. Agent 自动选择 0.007 MON 的 Community Pulse,完成任务。
  5. 页面展示完整执行轨迹、花费与被阻止的风险支出。

网页会重放一条已经在 Monad 测试网真实执行的证明链,因此现场网络不稳定时 仍能展示;交易链接可在区块浏览器独立核验。

已验证的真实闭环

本项目的 agentguard-exact-mon 是基于原生 MON 和 AgentGuardVault 的实验性 402 支付方案,遵循“402 挑战 → 支付 → 链上验证 → 重试”的核心流程,但不 冒充 Monad facilitator 使用的标准 USDC exact 方案。

本地运行

npm install
npm run dev

打开终端显示的本地地址。

验证

npm test

测试覆盖:

  • 允许授权 Agent 向白名单商户付款
  • 拒绝非白名单商户
  • 拒绝超过单笔上限的付款
  • 拒绝重复请求
  • 真实 HTTP 服务器返回 402,链上付款后重试得到 200
  • 固定 gas 广播超额付款并确认交易状态为 reverted
  • 校验网页可由部署 Worker 正常渲染

重跑真实测试网流程

测试账户凭据只保存在被 Git 忽略的 .agentguard/ 目录中:

npm run real:accounts
npm run real:deploy
npm run real:flow

部署到 Monad 测试网

复制 .env.example,提供一个已有测试币的部署账户:

npm run contract:deploy

脚本默认使用 Monad 测试网(chain ID 10143)。私钥只从环境变量读取,不会 写入项目文件。

架构

User goal
   ↓
AI Agent ──→ Paid API (HTTP 402)
   ↓                 ↑
AgentGuardVault      │ retry after settlement
   ├─ budget         │
   ├─ per-call cap   │
   ├─ allowlist      │
   └─ replay guard ──┘
          ↓
        Monad

GitHub 调研

项目方向来自以下公开仓库与官方资料:

下一阶段

比赛当天优先完成这三个增强:

  1. 接入真实 x402 测试服务与稳定币支付。
  2. 部署合约并把真实交易哈希接回执行轨迹。
  3. 增加 EIP-712 会话授权,避免 Agent 长期持有主钱包权限。

About

AI Agent 自主支付安全护栏:基于 Monad 的预算、限额、白名单与防重放策略。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages