peacprotocol/peac
GitHub: peacprotocol/peac
PEAC 是一个为代理、API 与跨运行时交互提供可验证签名记录与便携式审计标准的开源协议。
Stars: 11 | Forks: 7
# PEAC
PEAC 是一个用于代理、工具、API 和跨运行时系统的可验证交互记录的开源标准。发布机器可读条款,返回签名记录,并离线验证:跨组织边界的便携式审计记录,无需替换身份验证、支付通道或可观测性。
**面向** 需要跨边界传递签名记录的 API 提供者、MCP 工具宿主、代理操作员、平台和审计员。
## 工作原理
```
1. Publish terms at /.well-known/peac.txt
2. Return PEAC-Receipt with a signed interaction record
3. Verify offline with the issuer's public key
```
有治理的 HTTP 响应示例:
```
HTTP/1.1 200 OK
PEAC-Receipt: eyJhbGciOiJFZERTQSIsInR5cCI6ImludGVyYWN0aW9uLXJlY29yZCtqd3QifQ...
Link: ; rel="issuer"
```
## 快速开始
**要求:** Node 24(已测试);Node 22+(兼容)。[Go 1.26+](sdks/go/) 和 [Python 3.12+](examples/python/) 也支持。
### 验证收据
```
pnpm add @peac/protocol @peac/crypto
```
```
import { verifyLocal } from '@peac/protocol';
const receipt = response.headers.get('PEAC-Receipt');
const result = await verifyLocal(receipt, publicKey, {
issuer: 'https://api.example.com',
});
if (result.valid) {
console.log(result.claims.iss, result.claims.kind, result.claims.type);
}
```
或从命令行:
```
peac verify 'eyJhbGciOiJFZERTQSIsInR5cCI6ImludGVyYWN0aW9uLXJlY29yZCtqd3QifQ...'
```
### 发行收据
```
import { generateKeypair } from '@peac/crypto';
import { issue } from '@peac/protocol';
const { privateKey, publicKey } = await generateKeypair();
const { jws } = await issue({
iss: 'https://api.example.com',
kind: 'evidence',
type: 'org.peacprotocol/access-decision',
pillars: ['access'],
extensions: {
'org.peacprotocol/access': {
resource: 'https://api.example.com/inference/v1',
action: 'execute',
decision: 'allow',
},
},
privateKey,
kid: 'key-2026-03',
});
// Return jws in the PEAC-Receipt header
```
### 运行示例
```
pnpm install && pnpm build
pnpm --filter @peac/example-minimal demo
```
参见 [examples/minimal/](examples/minimal/) 获取完整源代码。如需 HTTP/REST、Express 中间件和 Go 示例,请参见 [docs/README_LONG.md](docs/README_LONG.md)。
## 常见用例
PEAC 在日志不足以应对的场景中最有价值:支付、跨边界验证、审计、争议审查以及多代理工作流。
- **代理商务与支付:** 证明在 paymentauth、x402、Agentic Commerce Protocol (ACP)、Stripe SPT 等支付通道及其他商务流程中提供、挑战、支付或结算的内容。参见 [paymentauth Kit](integrator-kits/paymentauth/README.md)、[ACP Kit](integrator-kits/acp/README.md)、[x402 Kit](integrator-kits/x402/README.md)。
- **审计与争议审查:** 保存跨组织边界有效的签名证据,而不仅限于本地日志。参见 [治理映射](docs/governance/)。
- **MCP 工具与 API:** 验证、发行并携带工具调用、API 响应和自动化操作的签名收据。参见 [MCP 集成套件](integrator-kits/mcp/README.md)。
- **代理到代理工作流:** 在 A2A 任务/状态转换和多代理链中携带可验证收据。参见 [A2A 集成套件](integrator-kits/a2a/README.md)。
- **运行时治理:** 将来自托管运行时(Microsoft AGT、Claude Managed Agents、OpenAI ACP)的治理决策记录为便携式签名记录。参见 [`@peac/adapter-runtime-governance`](packages/adapters/runtime-governance/)。
## 从这里开始
**[完整决策树与快速入门及集成套件](docs/START_HERE.md)**
- **我运行一个 API**:[API 提供者快速入门](docs/guides/quickstart-api-provider.md)(5 分钟,Express 中间件)
- **我运行一个 MCP 服务器**:[MCP 集成套件](integrator-kits/mcp/README.md) 或 `npx -y @peac/mcp-server`
- **我想要验证一个收据**:[代理操作员快速入门](docs/guides/quickstart-agent-operator.md)(5 分钟)
- **我构建 A2A 代理**:[A2A 集成套件](integrator-kits/a2a/README.md)
更多路径:[Go SDK](sdks/go/) | [Python 示例](examples/python/) | [paymentauth Kit](integrator-kits/paymentauth/README.md) | [ACP Kit](integrator-kits/acp/README.md) | [x402 Kit](integrator-kits/x402/README.md) | [治理映射](docs/governance/)
## 定位
| 现有系统 | PEAC 新增能力 |
| ----------------------------------------------- | ---------------------------------------------------------------- |
| **日志** | 跨组织边界的便携式签名记录 |
| **OpenTelemetry** | 与跟踪相关联的签名记录 |
| **MCP / A2A** | 与工具调用和代理交换一同携带的签名收据 |
| **AP2 / ACP (Agentic Commerce Protocol) / UCP** | 跨商务协议的费用与结果签名记录 |
| **paymentauth** | HTTP 支付身份验证挑战生成的收据 |
| **x402** | 结算记录映射与离线验证 |
| **Stripe SPT / 支付通道** | 可验证的委派与结算引用 |
| **运行时治理 (AGT、Claude MA、ACP)** | 跨边界的治理决策便携式签名记录 |
**你的堆栈中会发生变化:** 保留身份验证、保留支付、保留可观测性。添加 `/.well-known/peac.txt` 并在受治理的响应中返回 `PEAC-Receipt`。
## 工件外观
| 工件 | 描述 |
| ----------------------- | --------------------------------------------------------- |
| `/.well-known/peac.txt` | 机器可读条款 |
| `PEAC-Receipt` | 头或传输元数据中的签名交互证明 |
| `verifyLocal()` | 密钥可用时的本地验证 |
| `peac-bundle/0.1` | 便携式审计/争议包 |
## CLI
```
peac verify 'eyJhbGc...' # Verify a receipt
peac conformance run # Run conformance tests
peac reconcile a.bundle b.bundle # Merge and diff evidence bundles
peac policy init # Create peac-policy.yaml
peac policy validate policy.yaml # Validate policy syntax
peac policy generate policy.yaml # Compile to deployment artifacts
```
参见 [packages/cli/README.md](packages/cli/README.md) 获取完整命令参考。
## 版本管理
- **当前稳定版:** 交互记录格式 (`interaction-record+jwt`)
- **遗留版本:** 线格式 0.1 (`peac-receipt/0.1`) 已冻结;`verifyLocal()` 返回 `E_UNSUPPORTED_WIRE_VERSION`
参见 [docs/specs/VERSIONING.md](docs/specs/VERSIONING.md) 获取完整版本规范。
## 安全性
- 使用 JWS 签名验证后再信任任何收据声明
- 密钥发现通过 `/.well-known/peac-issuer.json` JWKS 并具备 SSRF 防护
- 内核约束在发行和验证时强制执行(失败关闭)
- 离线验证无静默网络回退
- 错误映射为 RFC 9457 问题详情
参见 [SECURITY.md](.github/SECURITY.md) 和 [docs/specs/PROTOCOL-BEHAVIOR.md](docs/specs/PROTOCOL-BEHAVIOR.md)。
## 文档
| 文档 | 目的 |
| -------------------------------------------------------------------- | ------------------------------------------------- |
| [规范索引](docs/SPEC_INDEX.md) | 规范性规格 |
| [交互记录规范](docs/specs/WIRE-0.2.md) | 收据信封、类型与扩展 |
| [架构](docs/ARCHITECTURE.md) | 内核优先设计 |
| [内核约束](docs/specs/KERNEL-CONSTRAINTS.md) | 在发行与验证时强制执行的结构限制 |
| [策略套件快速入门](docs/policy-kit/quickstart.md) | 策略编写指南 |
| [集成配置文件](docs/profiles/) | 集成配置文件(Stripe x402 等) |
| [证据载体契约](docs/specs/EVIDENCE-CARRIER-CONTRACT.md) | 传输中载体放置规则 |
| [开发者指南](docs/README_LONG.md) | 包目录、集成示例与层映射 |
## 实现
- **TypeScript**(本仓库):发行、验证、命令行界面、中间件
- **Go**:[sdks/go/](sdks/go/) 发行与验证
- **MCP**:[MCP 服务器](packages/mcp-server/) 证据发射与验证工具
- **A2A**:[A2A 载体映射](packages/mappings/a2a/) 元数据载体、OAuth PKCE 身份面
- **gRPC**:[gRPC 传输](packages/transport/grpc/) HTTP/2 元数据绑定的载体适配器
- **DID**:[DID 解析](packages/adapters/did/) did:key 与 did:web 解析器(带缓存)
- **Express**:[Express 中间件](packages/middleware-express/) 收据中间件
- **x402**:[x402 适配器](packages/adapters/x402/) 支付证据适配器(V1 与 V2)
- **运行时治理**:[运行时治理适配器](packages/adapters/runtime-governance/ 记录来自 AGT 及其他运行时的决策
- **托管代理**:[托管代理适配器](packages/adapters/managed-agents/) 会话生命周期记录
- **供应链**:[in-toto](packages/mappings/intoto/) 与 [SLSA](packages/mappings/slsa/) 溯源映射
构建实现?[提一个议题](https://github.com/peacprotocol/peac/issues/new)。
## 贡献与许可
欢迎贡献。如需实质性变更,请先开议题。参见 [docs/SPEC_INDEX.md](docs/SPEC_INDEX.md) 获取规范性规格,以及 [docs/CI_BEHAVIOR.md](docs/CI_BEHAVIOR.md) 获取 CI 指南。
Apache-2.0。参见 [LICENSE](LICENSE)。
PEAC 协议是一个由 Originary 和社区贡献者共同维护的开源项目。
[文档](https://www.peacprotocol.org) | [GitHub](https://github.com/peacprotocol/peac) | [Originary](https://www.originary.xyz) | [讨论](https://github.com/peacprotocol/peac/discussions)
标签:API安全, CVE, GNU通用公共许可证, Go, HTTP响应头, JSON输出, JWS, MCP工具主机, Node.js, PEAC-Receipt, Python, Ruby工具, SEO: PEAC协议, SEO: 便携式审计, SEO: 可验证交互, .well-known端点, 代理操作, 便携式审计, 公钥验证, 可验证交互记录, 审计日志, 开放标准, 授权记录, 数字签名, 无后门, 日志审计, 离线验证, 签发者元数据, 组织边界审计, 访问决策, 证据类型, 跨运行时系统, 逆向工具