EMILIA Protocol
官方要求指定人类在AI代理执行不可逆操作(如支付放行、记录变更、部署)前进行离线可验证的审批。双人规则,Ed25519信任收据,IETF起草,Apache-2.0。
你可以用 EMILIA Protocol MCP 做什么?
-
扫描声明的工具面 — 运行
npx @emilia-protocol/scan protect ./tools.json以映射支持的操作,并在保护工作流之前审查生成的清单。 -
签发离线收据 — 使用
npx @emilia-protocol/issue demo在本地生成信任收据,无需 API 密钥或后端。 -
在浏览器中验证收据 — 将任何收据粘贴到 emiliaprotocol.ai/verify 以离线检查其真实性;不会上传任何内容。
-
运行 AEB-1 一致性测试 — 执行
npx @emilia-protocol/verify aeb-conformance --reference以测试证据到效果的边界,支持原生验证和无盲重试行为。 -
使用 Gate 保护 MCP 工具 — 包装诸如
release_payment或delete_repo之类的工具,使其在没有有效收据时拒绝执行,如捆绑的 MCP 示例所示。 -
将 EMILIA 添加到 Claude/Cursor/Cline — 运行
npx -y @emilia-protocol/mcp-server以将权威控制平面集成到您的 AI 助手中。
文档
EMILIA Protocol
AI 智能体正在成为劳动者。劳动者需要授权。
EMILIA 是自主工作的授权控制平面。 Gate 是后果边界——智能体凭据化的意图在此转变为对资金、代码、权限、记录或基础设施的变更。人类或机构定义有限的操作授权;Gate 在受保护提供方路径开始之前,对照该授权检查确切的工单单元。
Gate 是该边界上的商业后果防火墙。它验证所有者对确切操作所要求的授权,在进入提供方之前预留该授权,允许一次被接纳的提供方尝试在其持久授权域内覆盖对应的授权实例,并留下受保护路径所接纳及后续观察到的可移植证据。当结果未知时,它要求对账而非盲目重试。协议证明。Gate 预防。
- Authority Brain 在本地映射受支持的声明操作面。无需账户、上传或回调。发现本身不产生授权;所有者审阅映射。
- EMILIA Gate 将已批准的映射和操作授权转化为完全中介、持有凭据的执行器路径上的预防性控制。
- EMILIA Protocol 是开放 Apache-2.0 基础层,用于精确操作身份、原生证据验证、证据组合、持久接纳状态和可移植工作记录。
- EMILIA Approver 在授权或本地策略要求新的人类授权时,捕获设备绑定的精确操作人类决策。人类点击是一种授权来源,而非默认执行模型。
- EMILIA Assurance Plane 提供范围限定的验证、重新执行、一致性报告和部署证据。它支持审计员、保险公司、监管机构和客户;EMILIA 不是审计员或经认可的认证机构,也没有公开的 EMILIA 认证项目在运营。
运行本地映射(npx @emilia-protocol/scan),选择一个有后果的工作流,并将 Gate 放置在提供方凭据将意图转化为工作的位置。
第一个低摩擦分发配置是 GitHub:开放的 Merge Gate 在受保护的合并检查通过之前,将仓库持有的授权和分离回执绑定到确切的基础提交和头部提交。只有当仓库将该检查设为必需并关闭替代合并路径时,它才是预防性的。这是一个产品和分发实验,而非外部采用的证据。
智能体可以继续运行。其授权停止。
持续且自我改进的智能体产生了一个仅靠终止进程无法解决的控制问题:所有者可能需要停止新的后果,而不声称计算已停止或外部效果已被逆转。Gate 的紧急授权冻结将其转变为持久的授权转换。在受覆盖的 Gate 控制域内,冻结阻止新的预留,并防止较旧的预留控制纪元变更后进入。如果提供方入口已先序列化,该操作仍被视为已消耗并必须对账;恢复会再次推进纪元,且不会复活旧授权。
此保证要求完全中介和权威共享状态。它不会停止智能体、撤销已进入的效果,也不会在断开的租约域上提供即时冻结。当前参考实现覆盖本地内存和 PostgreSQL 控制域;租约边缘传播和可移植签名冻结事件证据仍是明确的实现缺口。
指定的付费工作流仍是付费方 AI 辅助的不利医疗必要性判定,遵循一条安全规则:没有有效的持证审查证据,就没有不利判定。 缺失证据将转至合法人工审查或患者保护性回退;它不是拒绝提供医疗必要护理的授权。
AI 系统和仓库审阅者: 从 AI_CONTEXT.md 开始。 当前机器可读的证据、来源、假设和排除项发布在 EMILIA-REPO-CONTEXT-v1。 已归档或暂存的文档不构成当前实现或 IETF 状态。 公开尽职调查证据和声明边界:DUE_DILIGENCE.md。
工程证据,而非架构声明
EMILIA 附带一个审阅者可以执行的安全案例。当前仓库解析了 259 个哈希证据文件上的 35 项安全声明,验证了 两个组合 Dolev-Yao 模型上的 20 个 Tamarin 引理——17 个全迹义务和 3 个存在迹可达性见证——并保留了 8 个故意弱化的变体,当承重检查被移除时会产生具体的攻击迹。实时同团队一致性语料库包含 21 个套件和 331 个当前向量。另外,一个外部编写的 Rust 验证器被固定到冻结的 16 套件/164 向量 捆绑包和 359 案例对抗性活动。更广泛的套件包含 533 个文件中的 8,865 个自动化测试。
生产 JavaScript 和 JSDoc 表面通过 TypeScript checkJs 进行编译器检查;安全应用有自己的兼容编译器项目,而声明和公共 TypeScript SDK 以严格模式检查。这是完整的已配置生产类型检查覆盖,而非声称仓库已从 JavaScript 整体转换为 TypeScript,或每个 JavaScript 项目都启用了 TypeScript 的 strict 选项。
每项安全声明都指明执行路径、正负向量、语言覆盖、形式范围或明确缺口、假设、排除项和证据哈希。从 人类可读证据映射 开始,然后检查 已解析的安全案例 或运行 npm run check:security-case。
AEB-1:测试证据到效果的边界
开放的 AEB-1 后果接纳一致性 测试包测试有后果操作之前的最后一个控制点:原生验证、依赖方接受、精确 CAID/操作匹配、证据满足、本地授权、原子预留、INVOKING 保管、独立的提供方结果和观察效果真相、无盲目重试行为以及认证对账。
npx @emilia-protocol/verify aeb-conformance --reference
它是格式中立的且可自行运行。通过的报告是自我声明的一致性证据——不是审计、认证、生产部署声明或执行操作的许可。
要获得仓库 Gate 路径的聚焦可执行证明,请运行:
npm run proof:gate:reference
此命令使用生成的密钥、内存状态和模拟提供方行为来演练本地示例和聚焦的服务边界。它是有用的本地证明,而非真实人类、外部银行、生产部署或端到端生产集成的证据。
身份不是工作描述
身份说明谁或什么在调用。策略说明一般允许什么。两者都不定义自主工作者现在可以执行的有限工作:其任务、物质操作限制、预算、所需证据、过期时间、委派规则和异常路径。
EMILIA 将这些问分开:
| 层 | 问题 |
|---|---|
| 身份 | 谁或什么在场? |
| 策略 | 一般允许什么? |
| 授权 | 此智能体在此授权下可以执行什么确切工作? |
凭据授予可达性。授权定义工作。并非每个操作都需要人类;每个有后果的操作都需要有效授权。
在基础层,EP Core 仍然暴露 三个可互操作对象:Trust Receipt 携带可归因证据,Trust Profile 表示结构化信任状态,Trust Decision 记录依赖方策略评估的结果。授权控制平面层添加了精确操作绑定、有限授权、接纳、消耗和结果证据,而不会将这些对象合并为一个声明。
设置一次授权。让智能体工作。
客户定义任务、限制、证据要求、过期时间和异常规则。本地代码可以收窄该授权;它不能发明或扩大它。Gate 将每个可执行请求绑定到授权,在提供方入口之前预留覆盖的授权,允许一次被接纳的提供方尝试在共享持久授权域内对应授权实例,并且仅在授权缺失、过期、耗尽或过窄时升级。
捆绑的 MCP 示例演示了一种策略配置,其中在边缘需要新的人类决策。它们运行完整的本地循环——缺失证据被拒绝、精确操作被签名、一次提供方尝试被接纳、伪造证据被拒绝——而不声称每个自主操作都需要人类点击:
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
更深入的组合演示通过 Gate 的真实有界能力路径执行 CAID 绑定的委派支付,然后离线验证签名执行证书:
npm run demo:receipt-program
它刻意不包含区块链或模拟零知识声明。参见 回执程序架构 了解生产状态和信任要求。
从针对你声明的工具表面的试运行开始,然后生成可审阅的集成文件:
npx @emilia-protocol/scan protect ./tools.json
npx @emilia-protocol/scan protect ./tools.json --apply
node emilia/verify-setup.mjs
生成的本地检查使用明确临时的演示状态,仅证明其合成处理器未被调用。生产需要持久来源账本、共享原子消耗存储、固定密钥,以及通往真实提供方凭据的每条路径上的包装器。参见 examples/mcp/ 和 /mcp。
30 秒试用
# Issue a receipt offline — no API key, no backend needed
npx @emilia-protocol/issue demo
# Add EMILIA to Claude / Cursor / Cline
npx -y @emilia-protocol/mcp-server
尝试真实 Face ID 签核 → 使用你自己的通行密钥批准一笔 82,000 美元的汇款。看看 VERIFIED 是什么样子。伪造回执。看看它失败。
在浏览器中验证任何回执 — 粘贴进去,不会上传任何内容。
工作原理 — 一个授权生命周期

自己运行:
node examples/crash-test.mjs— 完全离线,无需 API 密钥。
[ MANDATE ] [ EXACT WORK ] [ VERIFY ] [ RESERVE + ENTER ] [ RECONCILE ]
mission, limits canonical action pinned native one admitted preserve provider
evidence, expiry + occurrence evidence provider entry and effect truth
授权。 授权来源定义有限工作。它可以是客户签署的操作程序、有界能力、所需人类决策、法定人数,或依赖方对原生证据的组合。
精确工作。 Gate 将方法、来源、被调用者、目标、发生次数和每个重要字段绑定到规范可执行对象中。意图、提示或工单文本不是该对象。
验证、预留和进入。 原生工件保持原生。依赖方固定信任和映射档案,评估完整证据要求,做出独立的本地授权决策,并在持有凭据的适配器进入提供方之前预留覆盖的授权。
在需要时获得新的人类授权。 策略可以要求绑定到精确操作和确定性显示哈希的 WebAuthn/通行密钥决策。这缩小了"所见即所签"的差距;它不证明理解、智慧、合法性或结果。
对于企业部署,Gate 还可以要求独立验证的授权服务器确认,绑定到该确切人类证据、同一确切操作、AS 实际观察到的身份快照以及预期的资源服务器密钥。快照时间和依赖方最大年龄是明确的:新令牌不能使过时的目录数据变为当前。AS 分支是客户固定信任下的证据;它本身从不授权,不证明即时雇佣状态,也不将智能体编排器转变为授权源。
真实的结果。 准入不等于执行,执行不等于效果。已签名的记录可以离线验证;提供方与观察方的证据保持分离。丢失的响应成为 INDETERMINATE,这是一个需要协调的状态——而非重试的许可。补救措施是一项新的授权操作,绝不会重写旧结果。
开发者为何使用它
先在本地映射工作,然后用 MCP 服务器或轻量 SDK 封装保护一个已声明的操作面。扫描器提出可审查的映射;所有者定义授权范围;Gate 持有提供方凭据并在覆盖路径上强制执行精确操作。没有任何扫描能证明完整的调解,仅靠发现本身不授予任何权限。
# langchain-emilia — wrap any LangChain tool with an EP gate
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
智能体获得的是执行有界工作的能力,而非可自行重新解释的常驻凭据。
企业为何需要它
智能体进程会重启,模型会更换。客户的授权范围、消费状态、撤销、不确定性和工作历史必须在其外部存续。EMILIA 将这一持久权威状态保留在客户边界,同时通过固定适配器接受外部证明。
受管 Gate 与 Assurance Plane 在开放协议之上增加了授权操作、集成、证据操作、重放、支持和服务级别。客户保留对权威、信任根、凭据、策略和可移植证据的控制权。
标准
EMILIA Protocol 是开放的,采用 Apache-2.0 许可。其标准工作以一系列独立 Internet-Draft 的形式发布。已发布的 Internet-Draft 不是 RFC、不是被采纳的工作组项目,也不代表 IETF 背书;Datatracker 对修订和状态具有权威性。
规范的四个文档展示面
为方便读者导航,规范证据路径为:
- Authorization Receipts-11 定义了绑定操作范围的批准证据配置文件。当前发布的修订版为 -11,作为 Standards Track 候选独立提交归档。
- Human Authorization Binding-00 将具名人类授权工件绑定到相邻的主机记录中。
- Authority Introduction-03 建立依赖方固定的信任根和范围化权威。
- Authorization Evidence Chain-05
评估原生验证的、操作匹配的证据是否满足依赖方的要求;它返回
SATISFIED或UNSATISFIED,绝不返回AUTHORIZED。
这一四个文档的展示面仅为呈现用途。它不会合并、退役、替换、更新、废弃、降级或从属化活动组合中的任何草案。
独立的运行时执行主线
运行时路径为 Architecture-02 → CAID-02 → AEC-05 → AEB-03: 系统边界、精确材料操作匹配、证据满足,然后是执行方准入和持久后果托管。AEC 出现在两个视图中,是因为证据满足为运行时准入提供输入,而非因为两个视图等价。
完整活动组合仍为 23 条 Datatracker 记录:20 条活跃的 draft-schrock-* 记录和三条合著记录,每条都有各自的范围和修订历史。参见标准指南、组合和机器可读的状态清单。
| IETF Internet-Drafts | 当前本地快照:已发布清单 · 权威实时状态:IETF Datatracker |
| 跨语言验证器 | JavaScript · Python · Go —— 三者均被证明在对抗性一致性向量上一致,每次推送均如此(npm run conformance)。这是对同一团队移植版本的一致性检查,而非独立洁净室实现。另外,一个外部编写的、基于规范的 Rust 实现(源码公开)通过了固定的 16 套件/164 向量包和固定的 359 例对抗性测试活动,且是在评估者控制的不可变源码树重建下进行的。其已检入的构建证据仍为实现者签名,而非第三方证明(签名声明);严格的洁净室验收需等待修正后的第三方证明清单和独立固定的证明者密钥。 |
| 形式化模型证据 | 26 条有界 TLA+ 安全属性在其配置的状态空间中成立;这不是实现精化或无界证明 · 35 条 Alloy 事实,四个模型中的 32 条断言 · 两个组合符号 Dolev-Yao 模型,覆盖挑战、CAID、两次批准、签发方与权威固定、注册表视图、撤销、消费、执行和六个专用声明边界。二十条 Tamarin 引理得到验证——17 条全迹义务和 3 条存在迹见证;八个刻意弱化的变体在移除承重检查时产生具体攻击迹(formal/tamarin/)。 |
| MCP 注册表 | 官方 MCP 注册表 · Glama(A 级,官方徽章)· Smithery |
| 许可证 | Apache-2.0 |
三个同团队参考移植版本(JS / Python / Go)在所有 21 个套件和 331 个向量上一致。另外,一个外部编写的 Rust 实现从固定的公开源码树重建,通过了固定的 16 套件/164 向量洁净室包和 359 例对抗性活动,并在每次变更时于其自己的 CI 通道中重新运行。较新的 AEC 验收和四结果解析套件不归属于 Rust。这是外部互操作性证据,而非严格的洁净室构建验收;汇总 CI 案例在独立证明之前将严格验收计数记录为零。参见 CONFORMANCE.md,或自行在 emiliaprotocol.ai/verify 验证收据。
权威栈
| 层 | 作用 |
|---|---|
| 授权范围(Mandate) | 定义使命、限制、证据、过期、委派和异常规则。 |
| CAID / 精确操作 | 冻结材料可执行对象,使证据无法转移到不同的工作。 |
| AEC | 评估独立验证且匹配的证据是否满足依赖方的要求;它不进行授权。 |
| AEB / Gate | 做出本地授权决策,预留覆盖的权威,并控制提供方入口。 |
| 结果证据 | 保持调用、提供方响应、观察效果和不确定性彼此区分。 |
证明要点
| 指标 | 值 |
|---|---|
| 自动化测试用例 | 533 个文件中的 8,865 个;所有平台适用用例必须通过 |
| TLA+ 安全属性 | 26 条有界不变量在配置的状态空间中成立;不是实现精化或无界证明——参见 PROOF_STATUS.md |
| Alloy 关系断言 | 四个模型中的 35 条事实 + 32 条断言——已在 CI 中验证 |
| 红队案例编目 | 85 个——RED_TEAM_CASES.md |
| 发布安全状态 | 仓库安全检查通过;审计变更上的每个 Strix 发现均已通过回归覆盖修复,其审查线程已解决 |
| 一致性(7/7) | node conformance/ep-conformance-test.js https://www.emiliaprotocol.ai |
| 跨语言一致性 | 331 个向量 · 21 个套件:收据 · 设备签署 · 四结果解析 · 多方法定人数 · 撤销 · 结果绑定(语义 + 真实加密)· 权威文档/证明签发方连接 · 时间证明 · 信任收据(x2 配置文件)· 来源 · 证据记录 · 规范化 · 边界 · AEC 验收 · 货币 · 发起方证明 · 消费证明 · 见证 · 时间戳证明(RFC 3161)。JS / Python / Go 验证器一致(node conformance/run.mjs)。外部 Rust 基线仍为 164 个向量 / 16 个套件。参见 CONFORMANCE.md。 |
| 握手创建 p95 | 50 个虚拟用户下为 575ms——PERFORMANCE_PROOF.md |
核心协议对象
| 对象 | 是什么 |
|---|---|
| 权威程序 / 有界能力 | 具有明确范围、预算或单位、过期、委派和消费规则的有限授权范围。 |
| CAID | 在指定映射配置文件下,一个材料操作的规范标识符;匹配不是授权。 |
| 证据要求与 AEC 结果 | 依赖方固定的规则及其 SATISFIED、UNSATISFIED 或 INDETERMINATE 评估。 |
| AEB 准入与托管记录 | 执行方关于授权、预留、提供方入口和协调状态的记录。 |
| 授权与结果证据 | 可移植的原生或 EP 工件,保留其确切的签发方、范围和声明边界。 |
快速开始
- 运行
npx @emilia-protocol/scan protect ./tools.json以映射支持的已声明表面。 - 审查生成的操作清单、材料字段、凭据和已命名的盲区。
- 在持有提供方凭据和持久消费状态的路径上安装 Gate。
- 定义运营授权范围以及任何新人类或法定人数异常规则。
- 在启用强制执行之前,运行拒绝、精确操作、重放、超时和协调用例。
90 秒演示 · 快速开始 · 智能体演练 · IETF 草案 · Discord
EP 是什么——以及不是什么
EMILIA 是自主工作的权威基础设施,而非身份系统、钱包、信誉评分、结算通道或通用策略引擎。
- 是:一个控制平面,用于有限运营授权范围、精确操作验证、持久准入状态、真实的不确定性和覆盖执行路径上的可移植证据。
- 不是:OAuth/OIDC、工作负载身份或策略引擎的替代品。这些仍作为依赖方固定项下的原生输入。
- 不是:要求人类批准每个操作。授权范围可允许在有限边界内进行自动工作,仅在边界处要求新的权威。
- 不是:已准入操作成功执行或产生预期效果的证明。
- 不是:专有协议控制。核心是 Apache-2.0,Internet-Drafts 是独立提交,而非 RFC 或 IETF 背书。
参见 CONFORMANCE.md · SECURITY.md · THREAT_MODEL.md · GOVERNANCE.md · 中立契约