用途
Openterms 位于 AI 智能体与其执行的操作之间,用于证明智能体同意了什么、并控制它被允许做什么。它由三层组成:收据(Receipts)、策略引擎(Policy Engine)和提供商验证(Provider Verification)。
主要能力
- 收据:在智能体调用 API 之前,它会获得一份 Ed25519 签名的收据。采用 RFC 8785 规范化 JSON、SHA-256 哈希和真实加密。任何人都可以用公钥验证,无需 API 密钥,也无需信任服务器。
- 策略引擎:支持每日支出上限、操作类型白名单、升级阈值。策略引擎在收据签名之前进行评估,被拒绝的操作永远不会获得收据。
- 提供商验证:API 提供商注册其条款 URL,并在处理请求前验证智能体同意。只需一次公开 GET 调用,交易双方都信任该证明。
使用方式
快速开始(60 秒获得第一份收据):
git clone https://github.com/jstibal/openterms.git cd openterms pip install flask pyjwt cryptography pyyaml bash quickstart.sh
或使用 Docker:
git clone https://github.com/jstibal/openterms.git cd openterms docker compose up --build
在另一个终端运行:
bash quickstart.sh
收据签发是免费的,无需钱包、押金或付款。
自托管
方式一:直接运行
pip install flask pyjwt cryptography pyyaml python run.py
服务器位于 http://localhost:5000
方式二:Docker
docker compose up --build
方式三:将 MCP 服务器指向你的实例
export OPENTERMS_API_URL=http://localhost:5000 python openterms_mcp_server.py
所有内容都在本地运行。使用 SQLite 数据库,无外部依赖。
托管服务
如果不想自托管,可使用 openterms.com 的托管实例——相同的开源代码,由官方托管。
MCP 服务器
为 AI 智能体提供 10 个工具:
- issue_receipt:在任何操作前签发签名收据,并附带提供商验证头
- verify_receipt:验证收据的加密完整性(公开)
- verify_receipt_by_hash:通过规范化哈希查找并验证(公开)
- check_balance:工作区余额
- get_pricing:每份收据的定价列表
- list_receipts:最近的收据
- get_policy:当前生效的护栏——启动时调用
- simulate_policy:预检查:该操作是否会被允许?
- policy_decisions:每次允许/拒绝/升级的审计记录
- provider_activity:你的 API 的收据统计(提供商认证)
MCP 配置:
{ "mcpServers": { "openterms": { "command": "python3", "args": ["openterms_mcp_server.py"], "env": { "OPENTERMS_API_URL": "https://openterms.com", "OPENTERMS_API_KEY": "openterms_your_key_here" } } } }
提供商验证如何工作
Agent → Openterms → API Provider 流程:
- Agent 调用 issue_receipt,获得收据 + headers
- Agent 将 X-Openterms-Receipt header 包含在 API 调用中
- 提供商调用 GET /v1/receipts/verify/{hash}(公开,无需认证)
- 有效则提供服务;无效则拒绝。
核心方法:
- POST /v1/receipts(Bearer):签发签名收据
- POST /v1/receipts/verify(无):验证收据
- GET /v1/receipts/verify/{hash}(无):按哈希验证
- GET /v1/receipts(Bearer):列出收据
- GET /.well-known/jwks.json(无):公开签名密钥
策略引擎方法:
- GET /v1/policy(Bearer):当前策略
- PUT /v1/policy(Admin):创建/更新策略
- POST /v1/policy/simulate(Bearer):测试假设操作
- GET /v1/policy/decisions(Bearer):决策审计记录
提供商验证方法:
- POST /v1/providers(无):注册为提供商
- POST /v1/providers/verify(Provider):验证域名
- GET /v1/provider/stats(Provider):收据统计
- GET /v1/provider/receipts(Provider):最近收据
架构
openterms/ ├── app.py # Flask API(1135 行) ├── db.py # SQLite 数据库(15 张表) ├── openterms_mcp_server.py # MCP 服务器 + CLI(10 个工具) ├── core/ │ ├── canonical.py # RFC 8785 规范化 │ └── signing.py # Ed25519 签名 + JWKS ├── services/ │ ├── receipt_service.py # 收据管线 │ ├── ledger_service.py # 余额跟踪 │ └── policy_engine.py # 规则评估 ├── tests/ │ ├── test_core.py # 80 个测试 │ └── test_mvp3.py # 40 个测试 ├── Dockerfile ├── docker-compose.yml ├── quickstart.sh └── .env.example
共 120 个测试通过(80 核心 + 40 提供商验证)。
阶段状态
- MVP1(已发布):签名收据——记录发生了什么
- MVP2(已发布):策略引擎——强制执行允许的操作
- MVP3(已发布):提供商验证——双方都信任该证明
- ORS 规范(进行中):开放收据规范——可移植格式
- 集成(进行中):LangChain、CrewAI 单行回调
- MVP4(计划中):收据链、智能体认证
许可
Apache 2.0,见 LICENSE。版权所有 2026 Staticlabs Inc.
限制
以上资料未提供关于定价、收费、平台兼容性、性能指标或效果保证的具体说明。ORS 规范、框架集成和 MVP4 尚在进行或计划中,暂未提供完成时间。