内容
# <p><img src="https://raw.githubusercontent.com/pic-standard/pic-standard/main/picico.png" height="60" align="absmiddle"> PIC 标准:来源与意图合约</p>
**人工智能代理的本地优先操作门控。 在执行高影响力工具调用之前,验证意图、来源和证据。**
[](https://pypi.org/project/pic-standard/)
[](https://pypi.org/project/pic-standard/)
[](https://github.com/pic-standard/pic-standard/blob/main/RELEASING.md)
[](https://www.bestpractices.dev/projects/12790)
[](https://github.com/pic-standard/pic-standard/actions/workflows/ci.yml)
[](https://docs.astral.sh/ruff/)
[](https://github.com/pic-standard/pic-standard/blob/main/pyproject.toml)
[](https://github.com/pic-standard/pic-standard/commits/main)
[](https://github.com/pic-standard/pic-standard)
[](https://doi.org/10.5281/zenodo.18725562)
[](https://github.com/pic-standard/pic-standard/blob/main/LICENSE)
> **招募贡献者。** PIC 正在招募其首批外部贡献者和共同维护者。 从 [贡献者招募](https://github.com/pic-standard/pic-standard/discussions/117) 和固定的 good-first issues 开始。 目前,PIC 拥有一个 Python 参考实现; 第二个实现(TypeScript、Go 或 Rust)开放给任何人 ([#48](https://github.com/pic-standard/pic-standard/issues/48))。
PIC 是一个轻量级、本地优先的协议,强制要求 AI 代理在执行重要操作之前 **证明** 每个操作。 代理必须声明意图、影响、来源和证据; PIC 验证所有内容,如果有任何问题,**失败关闭**。
PIC 不是代理身份或委托基础设施; PIC 是动作绑定验证合约,决定高影响工具调用是否可以在当前执行。
* 不再有幻觉变成电汇。 不再有提示注入触发数据导出。 *
**示例 — 当 PIC 阻止时:** Slack 消息要求 LLM 代理发送 500 美元的付款。 PIC 要求代理证明:* 这个指令来自哪里? 来源是否可信? 是否有证据证明发票是真实的?* Slack 消息没有可信的来源,声明没有支持证据 — PIC 返回 `block`。 支付工具从未执行。
---
## 目录
- [为什么选择 PIC?](#为什么选择-pic)
- [快速入门](#快速入门)
- [PIC 合约](#pic-合约)
- [工作原理](#工作原理)
- [证据验证](#证据验证)
- [密钥环(可信签名者)](#密钥环可信签名者)
- [集成](#集成)
- [RFC 和前沿技术](#rfc-和前沿技术)
- [路线图](#路线图)
- [项目信息](#项目信息)
- [贡献](#贡献)
---
## 为什么选择 PIC?
> 护栏约束 **模型所说的内容**。 PIC 根据 **可验证的来源 + 证据** 约束 **代理允许执行的操作**。
PIC 是为代理框架、内部工具网关和生产系统而构建的,其中高影响力的操作必须在执行前得到证明。
- **阻止提示注入和盲目工具调用** 在操作边界
- **100% 本地运行**:零云,零数据离开您的机器
- **几分钟内插入您的堆栈**:LangGraph、MCP、OpenClaw、Cordum
- **开源(Apache 2.0)**:审核、复刻、拥有
---
## 快速入门
在不到一分钟的时间内,使用样本高影响力提案在本地测试验证器。
```bash
pip install pic-standard
# 验证示例提案
pic-cli verify examples/financial_irreversible.json
# 基于证据的验证(哈希)
pic-cli verify examples/financial_hash_ok.json --verify-evidence
# 基于证据的验证(签名 — 需要示例密钥环)
# macOS / Linux
PIC_KEYS_PATH=pic_keys.example.json pic-cli verify examples/financial_sig_ok.json --verify-evidence
# PowerShell
# $env:PIC_KEYS_PATH="pic_keys.example.json"
# pic-cli verify examples/financial_sig_ok.json --verify-evidence
```
**可选额外功能:**
```bash
pip install "pic-standard[langgraph]" # LangGraph PICToolNode
pip install "pic-standard[mcp]" # MCP 工具防护
pip install "pic-standard[crypto]" # Ed25519 签名证据
```
**从源代码(贡献者):**
```bash
git clone https://github.com/pic-standard/pic-standard.git
cd pic-standard && pip install -e ".[langgraph,mcp,crypto]"
pytest -q
```
---
## PIC 合约
PIC 在工具执行前强制执行。 代理必须发出一个结构化的操作提案,可以被验证、验证并绑定到预期的工具。
| 字段 | 目的 |
|-------|---------|
| `intent` | 代理试图执行的操作 |
| `impact` | 风险类别:`money`、`privacy`、`irreversible`、`compute`、... |
| `provenance` | 影响决策的输入(具有信任级别) |
| `claims` + `evidence` | 代理断言的内容和支持证据 |
| `action` | 实际工具调用(工具绑定) |
**规则:** 对于高影响力的提案,至少一项声明必须引用 **可信** 来源的证据。 失败关闭。
---
## 工作原理
```mermaid
graph TD
A[不可信输入] --> B{AI 代理 / 规划器}
C[可信数据/数据库] --> B
B --> D[操作提案 JSON]
D --> E[PIC 验证器]
E --> F{有效合约?}
F -- 是 --> G[工具执行器]
F -- 否 --> H[阻止 / 警报日志]
```
---
## PIC 与收据/审计/声誉系统的区别
PIC 是一个 **执行前操作验证合约** - 一个与代理安全堆栈并行的表面,而不是共享基板中的一个原语。 PIC 在操作边界决定高影响力工具调用是否可以在当前执行。 执行后系统 - 双边收据、签名审计日志、信任/声誉评分 - 记录已经发生的事情,在架构上是不同的。
| 关注点 | PIC(执行前) | 收据/审计/声誉系统(执行后) |
|---|---|---|
| 何时执行 | 操作执行前 — 失败关闭门 | 操作执行后 - 签名记录 |
| 决策输出 | `allow` / `block` / `require-more-evidence` | 签名收据、日志条目、声誉增量 |
| 阻止电汇? | 是 | 否 — 记录它已经发生 |
| 信任模型 | 本地密钥环、操作员拥有的根、注入解析器 | 通常依赖共享信任网络或跨组织联合 |
| 威胁关注点 | 提示注入、幻觉、盲目工具调用 | 可审计性、问责制、事后合规性 |
| 依赖表面 | 零出站 — 完全本地运行 | 通常依赖共享规范化基板、声誉聚合器或外部验证器网络 |
PIC 的执行前表面可以为第 12 条式可追溯性做出贡献:在决策方面,验证的操作提案是一个结构化的决策工件,可以纳入高风险 AI 系统的记录保存和日志记录架构中。 PIC 本身并不是第 12 条合规性; 它补充了第 12 条和第 19 条中更广泛的系统级日志记录和保留职责。 执行后证明表面绑定到相同的原语,在 [`docs/attestation-object-draft.md`](docs/attestation-object-draft.md) 中起草,保持本地优先并由设计操作员控制。
**经验法则:** 如果系统询问“是否应允许运行此操作?”,则这是 PIC 的表面。 如果它询问“此操作是否运行,代理的声誉是什么?”,则这是互补的执行后表面 — 不是 PIC 所在的层。
---
## 证据验证
PIC 支持确定性证据验证,可以在内存中升级来源信任。
| 类型 | 描述 |
|------|-------------|
| `hash` | 文件工件的 SHA-256 验证 (`file://...`) |
| `sig` | 通过可信密钥环的 Ed25519 签名验证 |
Ed25519 签名验证需要 `pip install "pic-standard[crypto]"`。
```bash
# 验证哈希证据
pic-cli verify examples/financial_hash_ok.json --verify-evidence
# 验证签名证据(需要密钥环)
# macOS / Linux
PIC_KEYS_PATH=pic_keys.example.json pic-cli verify examples/financial_sig_ok.json --verify-evidence
# PowerShell
# $env:PIC_KEYS_PATH="pic_keys.example.json"
# pic-cli verify examples/financial_sig_ok.json --verify-evidence
```
完整指南:[docs/evidence.md](docs/evidence.md)
**规范化(v0.8.0+):** PIC 规范 JSON v1(PIC-CJSON/1.0)定义了 PIC 哈希或签名 JSON 值时使用的字节精确序列化规则。 规范性规范位于 [`docs/canonicalization.md`](docs/canonicalization.md); 纯标准库参考实现位于 `pic_standard.canonical`(`canonicalize()`、`sha256_hex()`、`intent_digest_hex()`)。 在 v0.8.0 中,这是一个附加功能 — 现有签名验证路径继续按照 v0.7.x 工作; 将规范化连接到基于 attestation-object 的签名已安排在后续版本中。 一致性向量位于 [`conformance/canonicalization/`](conformance/canonicalization/) 下,并通过 `PIC Conformance` CI 作业在每个 PR 上执行。
---
## 密钥环(可信签名者)
签名证据需要一个具有过期和撤销支持的可信公钥密钥环。
```bash
pic-cli keys # 检查当前密钥环
pic-cli keys --write-example # 生成启动密钥环
```
**自定义解析器(v0.7+):** 从 v0.7 开始,信任解析是可注入和本地优先的。 PIC 不再为每个签名重新加载默认密钥环,自定义解析器可以直接插入验证器和管道。 实现 `KeyResolver` 协议以使用您自己的信任后端或预加载信任源(HSM 支持的服务、Vault 管理的密钥、缓存的远程密钥环等):
```python
from pic_standard import KeyResolver, StaticKeyRingResolver
```
**信任控制(v0.7.5+):** PIC v0.7.5 引入了 `strict_trust` 模式 — 启用后,所有传入的来源信任都会被净化为“不可信”,只有证据验证才能升级它。 有关迁移指南,请参阅 [docs/migration-trust-sanitization.md](docs/migration-trust-sanitization.md)。
完整指南:[docs/keyring.md](docs/keyring.md)
---
## 集成
### LangGraph
使用 `PICToolNode` 保护任何工具节点:
```bash
pip install "pic-standard[langgraph]"
```
`PICToolNode` 现在接受 `verify_evidence`、`strict_trust`、`policy` 和 `key_resolver` 以进行完整的管道配置(v0.7.5+)。
---
### MCP(模型上下文协议)
具有失败关闭默认值、请求关联、DoS 限制和证据沙盒的企业工具防护:
```bash
pip install "pic-standard[mcp]"
```
完整指南:[docs/mcp-integration.md](docs/mcp-integration.md)
---
### OpenClaw
OpenClaw AI 代理的 TypeScript 插件(`pic-gate`、`pic-init`、`pic-audit` 钩子):
```bash
pic-cli serve --port 7580
cd integrations/openclaw && npm install && npm run build
```
完整指南:[docs/openclaw-integration.md](docs/openclaw-integration.md)
---
### Cordum
提供 PIC 验证作为 Cordum 工作流门控步骤,具有失败关闭的三向路由。
完整指南:[docs/cordum-integration.md](docs/cordum-integration.md)
---
### HTTP 桥(任何语言)
对于非 Python 集成,PIC 公开了一个 HTTP 桥:
```bash
pic-cli serve --port 3100
# POST /verify — 验证操作提案
# GET /health — 运行状况检查
# GET /v1/version — 包 + 协议版本
```
---
## RFC 和前沿技术
[**RFC-0001:PIC/1.0 — AI 代理操作安全性的来源与意图合约**](docs/RFC-0001-pic-standard.md)
正式规范涵盖范围、威胁模型、安全属性、一致性级别和前沿技术区分。 作为具有 SHA-256 指纹清单的防御性出版物发布: [`docs/RFC-0001.SHA256`](docs/RFC-0001.SHA256)。
本地验证:`sha256sum -c docs/RFC-0001.SHA256`
[**规范词汇**](docs/vocabulary.md) — PIC 术语的权威词汇表,由外部交叉引用和注册表引用。
---
## 路线图
- [x] 核心验证器、CLI、模式、策略系统
- [x] 证据验证(SHA-256 哈希 + Ed25519 签名)
- [x] 锚点集成(LangGraph、MCP、OpenClaw、Cordum)
- [x] 可注入密钥解析 + 热点修复(v0.7)
- [x] 信任强化 + 证明对象草案(v0.7.5)
- [x] 规范化规范(PIC 规范 JSON v1)+ 参考实现(v0.8.0)
- [x] 初始一致性套件(规范化和核心模式)与 CI 运行器(v0.8.0)
- [ ] 跨实现一致性(TypeScript/Go 验证器对等性)
- [ ] 规范语义(MUST/SHOULD 规范文档)
- [ ] OpenAPI 规范 + 防护强化(结构化审计日志、请求关联)
- [ ] TypeScript 本地验证器(第二个独立实现)
---
## 项目信息
- **安全策略** — 参见 [`SECURITY.md`](SECURITY.md)。 通过 [GitHub 安全建议](https://github.com/pic-standard/pic-standard/security/advisories/new) 私密报告漏洞; 不要为安全报告提交公共问题。
- **行为准则** — 参见 [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md)。 PIC 遵循 [贡献者契约 2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct/)。 报告发送至 `team@madeinpluto.com`。
- **引用** — 参见 [`CITATION.cff`](CITATION.cff) 获取完整的引用元数据。 Zenodo 概念 DOI [10.5281/zenodo.18725562](https://doi.org/10.5281/zenodo.18725562)(页面顶部标记)解析为 Zenodo 上最新的存档版本; 每个版本的 DOI 均列在 Zenodo 记录中。
- **基金会跟踪反馈** — PIC 标准已完成 [AAIF 项目提案审查](https://github.com/aaif/project-proposals/issues/16#issuecomment-4455960990)。 技术定位得到认可; 当前重点是扩展多组织维护、生产采用和标准跟踪准备。
- **许可证** — Apache-2.0; 参见 [`LICENSE`](LICENSE)(也在页面顶部标记)。
---
## 贡献
我们欢迎贡献! 参见 [CONTRIBUTING.md](CONTRIBUTING.md) 了解如何提出更改或报告问题。
我们正在积极寻找:
- 安全研究人员测试因果逻辑
- 框架作者构建原生集成
- 企业架构师定义领域影响类别
当前良好的第一个贡献领域:一致性向量、OpenAPI 规范、TS 验证器基础和信任净化行为的安全审查。
如果您觉得 PIC 有用,请考虑在 GitHub 上给我们一个星星:它有助于吸引更多安全专家和框架作者加入社区。
问题和想法: [GitHub 问题](https://github.com/pic-standard/pic-standard/issues)
由 [ @fmsalvadori](https://www.linkedin.com/in/fmsalvadori/)
[ MadeInPluto](https://github.com/madeinplutofabio) 维护。
连接信息
猜你喜欢
暂无推荐服务器