emiliaprotocol/emilia-protocol
GitHub: emiliaprotocol/emilia-protocol
EMILIA Protocol 是一个开放标准,为 AI agent 的不可逆操作提供离线可验证的授权收据机制,确保任何高风险操作在执行前都经过具名人类的加密签批。
Stars: 2 | Forks: 0
# EMILIA Protocol
[](https://github.com/emiliaprotocol/emilia-protocol/actions/workflows/ci.yml)
[](https://github.com/emiliaprotocol/emilia-protocol/actions/workflows/verify-receipt-example.yml)
[](https://www.npmjs.com/package/@emilia-protocol/verify)
[](LICENSE)
[](https://datatracker.ietf.org/doc/draft-schrock-ep-authorization-receipts/)
[](https://discord.gg/MSJXjEtD4)
## 没有刹车的引擎
五十年来,软件安全一直在回答一个问题:*谁被允许进入?* 防火墙、OAuth 和密码——全都是为了在门口验证人类身份而构建的。
那个时代正在终结。软件的主要用户不再是人类;而是自主 AI agent。Agent 不仅仅是登录——它们编写代码、调用工具,并实时改变现实。每位 CISO 都知道,一个糟糕的 prompt 就可能让 agent 清空生产数据库或将资金汇入错误的账户。因此,他们正在**阻止部署**——守着数十亿的 AI 预算无法支出,因为他们的合规团队无法回答一个问题:
**谁批准了该操作?**
我们这一代的危机不是身份验证。而是**行动时刻的授权**:你如何证明*agent 即将做的事情*,*正是某个具名人类所授权的*——在它执行之前?
**EMILIA 是 agentic 时代的_seatbelt_。**
## 没有收据,就没有不可逆操作
这就是整个协议。开发者层面的侵入点仅仅是围绕不可逆 MCP 工具的一个 wrapper。
在离线、无密钥、无账户的情况下冷启动查看它——每个演示都运行了整个循环(拒绝 →
具名人类签署确切操作 → 工具运行 → 伪造的收据被拒绝):
```
node examples/mcp/payment-server.mjs # release_payment — refuses without a receipt
node examples/mcp/github-admin.mjs # delete_repo — refuses without a receipt
node examples/mcp/prod-deploy.mjs # deploy_production — refuses without a receipt
```
在生产环境中包装你自己的工具调度器——参见 [examples/mcp/](examples/mcp/) 和 [`/mcp`](https://www.emiliaprotocol.ai/mcp):
```
import { withMcpGuard } from '@emilia-protocol/mcp-guard';
const guarded = withMcpGuard(handleTool, {
annotations: { release_payment: { irreversible: true, action: 'payment.release' } },
}); // missing receipt → refused, never a silent pass
```
## 30秒内试用
```
# 离线开具收据 — 无需 API key,无需 backend
npx @emilia-protocol/issue demo
```
```
# 将 EMILIA 添加到 Claude / Cursor / Cline
npx -y @emilia-protocol/mcp-server
```
**[尝试真实的 Face ID 签批 →](https://www.emiliaprotocol.ai/try)** 使用你自己的 passkey 批准一笔 82,000 美元的电汇。看看 VERIFIED 状态是什么样的。伪造收据。看它如何失败。
[在你的浏览器中验证任何收据](https://www.emiliaprotocol.ai/verify)——将其粘贴进去,不会上传任何内容。
## 工作原理——四个阶段

```
[ INTENT ] [ DECISION ] [ CEREMONY ] [ RECEIPT ]
Agent calls a Policy-bound, hash- Named human signs Signed, offline-
tool via MCP → pinned: allow / → the EXACT action → verifiable proof.
allow-with-signoff / on their own Tamper it:
deny (+observe device (passkey). fails by design.
mode: zero change What they saw =
to production) what they signed.
```
**阶段一——拦截(MCP 原生)。** 无需重写。EMILIA 在 Model Context Protocol 边界处 hook 工具调用——在 agent 尝试删除文件或转移资金的瞬间,该操作会在半空中被捕获。
**阶段二——决策(策略绑定、确定性)。** 根据 hash 锁定的策略检查操作:`allow`、`allow-with-signoff` 或 `deny`。此外还有一个 **observe 模式**,它不会改变生产环境中的任何内容,并报告*本应*被挂起的操作。确定性的、可审计的——而不是黑盒风险评分。
**阶段三——仪式(绑定设备的人类签批)。** 当策略需要人类介入时,EMILIA 会运行一个**绑定到确切操作的 WebAuthn / passkey 签批**——即在操作者自己的设备上进行 Face ID / Touch ID 验证。*人类所看到的就是他们所签署的。* 没有任何脚本可以伪造它;没有任何自主循环可以跳过它。
**阶段四——收据(证据)。** 结果是一份**已签名的授权收据**,任何人都可以**在离线状态下,使用开源代码验证,无需后端,无需供应商信任。** 一旦篡改,从构造上就会导致验证失败。可选择将其用于公共时间戳锚定——其核心不需要 blockchain。
## 为什么开发者使用它
你希望你的 agent 真正*做些事情*——但你被失控的循环、API 超支和意外的数据破坏所困扰。EMILIA 为你提供了一个**即插即用的 MCP 服务器 + 一个轻量级的 SDK wrapper**。应用策略 hash,不可逆的工具调用就会获得一个经过加密强化、映射到 NIST-AI-RMF 的审批与证据层——而无需从零开始构建审批工作流或审计基础设施。
```
# langchain-emilia — 用 EP gate 封装任何 LangChain tool
from langchain_emilia import EmiliaGateClient
gate = EmiliaGateClient(base_url="https://www.emiliaprotocol.ai", api_key="...")
safe_tool = gate.wrap(your_destructive_tool)
```
```
pip install langchain-emilia # PyPI
npm install @emilia-protocol/verify # npm
```
*你的 agent 无法逃脱它的约束。*
## 为什么企业需要它
每一次平台变革都会催生新的安全原语:Web 获得了 **SSL**,云获得了 **Okta / IAM**,而 agent 经济需要**操作级别的信任**。企业守着合规部门不允许他们支出的 AI 预算——EMILIA 是解锁这些预算的钥匙,它将不可预测的 agent 转化为可审计的基础设施,并与 NIST AI RMF、EU AI Act 和 SOC 2 CC6/7 控制要求实现原语对原语的映射。
托管层(**GovGuard / FinGuard**)通过特定行业的策略包、observe 模式试点和审计就绪的证据包扩展了开源标准——无需采购流程即可开始。
## 标准
EMILIA 是一个开放标准,而不是产品护城河。其核心是 Apache-2.0 许可证,并作为 IETF Internet-Draft 进行跟踪。
| | |
|---|---|
| **IETF Internet-Drafts** | 已发布:[authorization-receipts](https://datatracker.ietf.org/doc/draft-schrock-ep-authorization-receipts/) · [quorum](https://datatracker.ietf.org/doc/draft-schrock-ep-quorum/)。暂存在 [`standards/`](standards/) 中:authorization-evidence-chain (EP-AEC, 组合) · evidence-record (EP-EVIDENCE-RECORD, 长期保留)。字段映射:[全景调查](docs/strategy/AGENT-AUTHORIZATION-LANDSCAPE-2026.md)。 |
| **跨语言验证器** | JavaScript · Python · Go——这三者已被证明在对抗性一致性向量上达成一致,每次推送 (`npm run conformance`) 都会运行。这就是真正标准的 IETF 门槛:多个独立且可互操作的实现。 |
| **形式化验证** | 26 个 TLA+ 安全属性(0 错误) · 35 个 Alloy 事实、22 个断言——两者均在 CI 中运行 |
| **MCP 注册表** | 官方 MCP 注册表 · Glama(A 级,官方徽章) · Smithery |
| **许可证** | Apache-2.0 |
三个独立实现已被证明达成一致——参见 [CONFORMANCE.md](CONFORMANCE.md),或者在 [emiliaprotocol.ai/verify](https://www.emiliaprotocol.ai/verify) 自行验证收据。
## EP Stack
```
Eye observes. Handshake verifies. Signoff owns. Commit seals.
```
| 层级 | 功能 |
|---|---|
| **EP Eye** | 观察并对 agent 行为进行分类(OBSERVE → SHADOW → ENFORCE) |
| **EP Handshake** | 具有 7 项属性绑定的密码学同意仪式 |
| **EP Signoff** | 具名人类所有权——WebAuthn / passkey A 类,设备绑定;用于最高风险操作的**多方 quorum**(M-of-N / 有序——双重确认规则) |
| **EP Commit** | 带有 Merkle 链式收据的原子化、不可变操作结束 |
## 验证指标
| 指标 | 数值 |
|---|---|
| 自动化测试 | 跨 170 个文件的 4,195 个测试 |
| TLA+ 安全属性 | 26 个已验证(T1–T26),0 错误——参见 [PROOF_STATUS.md](formal/PROOF_STATUS.md) |
| Alloy 关系断言 | 跨两个模型的 35 个事实 + 22 个断言——已在 CI 中验证 |
| 已编录的红队案例 | 85——[RED_TEAM_CASES.md](docs/conformance/RED_TEAM_CASES.md) |
| 已修复的安全发现 | 31 |
| 一致性 (7/7) | `node conformance/ep-conformance-test.js https://www.emiliaprotocol.ai` |
| 跨语言一致性 | 8 个测试套件——收据 · 设备签批 · 多方 quorum · 吊销 · 时间证明 · 信任收据 · 来源 · 证据记录——JS / Python / Go 验证器达成一致 (`node conformance/run.mjs`) |
| Handshake 创建 p95 | 50 个 VUs 下为 575ms——[PERFORMANCE_PROOF.md](docs/operations/PERFORMANCE_PROOF.md) |
## EP Core 对象
EP 标准化了三个可互操作的对象,任何一致性实现都可以生成和验证它们:
| 对象 | 定义 |
|---|---|
| **Trust Receipt** | 授权事件的可移植、已签名记录——*发生了什么* |
| **Trust Profile** | 可观察信任状态的标准化摘要——*已知什么* |
| **Trust Decision** | 带有原因和申诉路径的策略评估结果——*现在该做什么* |
EP 扩展(Handshake、Signoff、Commit、Delegation)在系统必须限制执行的地方增加了更强的强化。产品层(GovGuard / FinGuard)建立在协议之上——而不是协议本身。
## 五步快速入门
1. 创建策略
2. 启动 handshake
3. 呈现证据
4. 验证
5. 签批并消耗
**[90秒演示](https://www.emiliaprotocol.ai/mcp)** · **[快速入门](https://www.emiliaprotocol.ai/quickstart)** · **[Agent 演练](https://www.emiliaprotocol.ai/use-cases/ai-agent)** · **[IETF Draft](https://datatracker.ietf.org/doc/draft-schrock-ep-authorization-receipts/)** · **[Discord](https://discord.gg/MSJXjEtD4)**
## EP 是什么——以及不是什么
EP 是行动时刻的授权,它不是身份验证系统,不是钱包,也不是信誉评分。
- **是**:在执行*之前*绑定 actor 身份、权限、策略和确切操作上下文的信任标准
- **不是**:OAuth / OIDC 的替代品(那些回答的是*你是谁*——而 EP 回答的是*谁批准了这个确切的操作*)
- **不是**:专有产品(其核心是 Apache-2.0 并受 IETF 跟踪)
- **不是**:blockchain(收据才是主角;可选的公共时间戳只是脚注)
参见 [CONFORMANCE.md](CONFORMANCE.md) · [SECURITY.md](SECURITY.md) · [THREAT_MODEL.md](THREAT_MODEL.md) · [GOVERNANCE.md](GOVERNANCE.md)
标签:AI代理, Streamlit, 内核驱动, 数据可视化, 日志审计, 网络协议, 自定义脚本, 访问控制, 身份认证与授权, 逆向工具