关于 smartpolicy
SmartPolicy 为 AI Agent 和智能合约提供基于链上策略注册表的运行时授权,适用于需要将规则与执行位置分离的团队。规则可通过链上事务更新;MCP 服务和 REST API 可发放短时签名授权。
主要功能
- 01在链上注册成员、条件和有效期
- 02通过不可变注册表检查策略
- 03发放短时 EIP-712 签名授权
- 04提供 MCP 服务与 REST API
- 05以 Solidity 修饰器保护合约
适用场景
- 01在执行前检查 Agent 是否获准操作
- 02让后端验证签名授权
- 03更新访问规则而不重新部署合约
MCP 相关
SmartPolicy 的 MCP 服务向 AI 系统提供策略授权检查,并可返回短时签名授权。该服务与 REST API 连接链上策略注册表。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @smartpolicy/mcpSMARTPOLICY_REGISTRYPolicyRegistry contract address (omit for the public Sepolia default)SMARTPOLICY_VERIFIERGrantVerifier contract address (omit for the public Sepolia default)SMARTPOLICY_RPC_URLEVM RPC endpoint (omit for the public Sepolia default)SMARTPOLICY_ISSUER_KEY密钥Optional grant-issuer private key; enables the grant_issue tool本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
8收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | string | 是 | 操作名称(例:"withdraw")或带 0x 前缀的 bytes32。名称会进行 keccak256 哈希,与受保护合约中的 keccak256("withdraw") 一致。 |
| subject | string | 是 | |
| policyId | any | 是 | 策略 ID,格式为十进制字符串或整数 |
详细介绍
SmartPolicy
面向 AI Agent 和智能合约的运行时授权。
只需定义一次策略,即可规定 Agent、用户或合约可以执行哪些操作。 在所有场景中执行该策略:链上通过精简的验证器,链下通过 AI 系统可直接调用的 MCP 服务和 REST API。无需重新部署即可更新规则。
状态(2026-06-12):核心合约已部署到 Ethereum Sepolia (已通过 Etherscan 验证,地址见 contracts/deployments/sepolia.json);54 项 Foundry 测试全部通过;MCP 服务 v0 已打包——运行
npx smartpolicy-mcp即可零配置连接 Sepolia,运行npx smartpolicy-mcp deploy即可通过内嵌字节码在任意链上引导部署;通过未经辅助的新 Agent 执行测试(包括在空链上冷启动)证明可供 AI 直接使用。目前未经审计;成熟前仅供内部使用——尚无公开仓库或注册表条目。 当前状态、决策和恢复工作的方法:PLAN.md。
为什么要做
每个交付 AI Agent 的团队都会遇到同一个难题:Agent 在技术上可以执行其密钥所允许的任何操作,而限制它的方式只有硬编码提示词或重新部署代码。每个智能合约团队也面临着类似的问题:访问规则在部署时就被写入合约。
SmartPolicy 将规则与执行点分离:
- 策略存放在链上 Registry 中:成员、管理员、条件、过期时间和可变性标志。它是数据,不是代码。更改规则只需发起一笔交易,无需重新部署。
- 执行发生在操作进行的任何位置:
- 智能合约继承一个修饰器并检查 Registry(免费调用 view 函数)。
- AI Agent(或其前置服务)向 MCP 服务 / REST API 询问:“
0xAgent是否可以根据策略N执行action?”,并收到一个短期有效的签名授权(EIP-712),任何合约或后端都可以验证该授权。
本项目不是什么
- 不是代币。没有协议代币、ICO 或治理作秀。 收入来自费用:链上写入策略收取少量费用,托管 API 按调用计费(x402)。读取和验证均免费。
- 不可升级。核心 Registry 部署后不可变。信任来自可供你阅读的代码,而不是需要你信任的管理员密钥。新协议版本通过全新部署发布。
- 不是预言机。SmartPolicy 回答“是否允许?”,而不是“世界上发生了什么?”。依赖外部事实的条件值,由策略所有者选定的来源通过签名授权进行证明。
架构(简版)
┌─────────────┐ MCP / REST (x402 metered) ┌──────────────────┐
│ AI agents │ ────────────────────────────▶ │ SmartPolicy MCP │
│ & services │ ◀──── signed grants ──────── │ server (TS) │
└─────────────┘ └────────┬─────────┘
│ reads + grant issuance
┌─────────────┐ inherit Gate modifier ┌────────▼─────────┐
│ Protected │ ────── view calls ──────────▶ │ PolicyRegistry │
│ contracts │ │ (Base, immutable)│
└─────────────┘ └──────────────────┘
完整设计以及各项决策的依据(包括链、费用、信任模型,以及从 v1 中有意删去的内容),请参阅 ARCHITECTURE.md。
仓库结构
contracts/ Solidity core: PolicyRegistry, PolicyGate, interfaces (Foundry)
mcp/ MCP server + REST API (TypeScript, x402 metering)
sdk/ TypeScript client SDK (@smartpolicy/sdk) — reads, grants, tx-building
docs/ Integration guides (planned)
项目沿革
SmartPolicy 是对 2025 年原型(“Smart Policy Protocol”,Sepolia)中最优秀构想的全新重写:策略注册表、分层集成模式,以及链上与签名令牌相结合的执行方式。重写版有意删去了 SPOL 代币 / ICO / 治理套件、体育赛事预测预言机、工厂合约和可升级代理信任模型,并修复了已知安全问题(tx.origin 检查、缺少重入保护、仅基于请求头的 API 身份验证)。
许可证
Apache-2.0——详见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。