内容
# Axisrobo AEP
**代理事件协议(AEP)** 是一个拟议的开放协议,用于大型语言模型代理、工具、记忆系统、上下文提供者、环境观察者和多代理运行时之间的异步通信。
AEP 被设计为与 MCP 的异步对应。MCP 擅长于同步能力调用:列出工具、调用工具、读取资源和返回即时结果。AEP 关注 MCP 无法自然覆盖的通信模式:事件流、长时间运行的任务生命周期、后台反馈、内存更新、上下文失效、持久交付、重放、取消和代理间协调。
## 关于
AEP 0.1 草案是一个多语言协议存储库,包含:
- **16 项协议规范**,涵盖会话、订阅、任务、错误、版本控制、交付、可靠性、安全性和一致性以及传输层
- **4 个参考实现**(TypeScript、Python、Go、Java),通过共享的固定装置验证跨语言一致性
- **4 种传输绑定**(stdio、WebSocket、SSE、gRPC)在所有语言中实现
- **SQLite 支持的交付存储**,在每种语言中都支持重试、死信和重放
- **约 320 个测试**,跨四种语言,所有测试均通过
- **规范网站**,位于 [axisrobo.github.io/aep](https://axisrobo.github.io/aep/)
[中文文档](README_zh.md)
## 愿景
代理不仅应该请求能力,还应该监听、反应、协调和恢复。
AEP 定义了一个通用的事件模型,以便代理可以从工具、其他代理、内存系统、外部环境和运行时基础设施接收异步反馈,而无需每个系统都发明一个自定义的回调、轮询或消息队列接口。
## 范围
AEP 涵盖:
- 异步事件和通知
- 发布/订阅通信
- 长时间运行的工具和任务生命周期
- 进度、输出、完成、失败、取消和超时事件
- 上下文和内存变更流
- 环境观察流
- 代理间消息
- 交付确认、重放和关联
- 用于本地和分布式运行时的传输绑定
AEP 不会取代:
- MCP 同步工具调用
- LLM 完成 API
- 向量数据库 API
- 业务特定的内存模式
- 通用消息代理
## 与 MCP 的关系
| MCP | AEP |
| --- | --- |
| 同步请求/响应 | 异步事件流 |
| 工具调用 | 任务生命周期和工具反馈 |
| 资源读取 | 上下文更新和失效 |
| 客户端驱动的调用 | 生产者驱动的事件 |
| 即时结果 | 延迟、增量、可重放的结果 |
AEP 应该与 MCP 互操作,而不是分叉它。AEP 可以承载关于 MCP 工具调用的事件,但它应该保持足够的协议独立性,以支持非 MCP 代理、工具、内存系统、机器人系统、浏览器、IDE 和云运行时。
## 文档
- `docs/vision.md` — 项目愿景、目标、非目标和原则
- `docs/architecture.md` — 系统架构和主要协议层
- `docs/differentiation.md` — 非规范性定位和比较材料
- `docs/protocol-design.md` — 初始协议模型、信封、事件和生命周期
- `docs/mcp-relationship.md` — 与 MCP 的详细比较和互操作模型
- `docs/roadmap.md` — 拟议的开放协议阶段
- `docs/specs/session.md` — 会话生命周期规范
- `docs/specs/subscription.md` — 订阅模型规范
- `docs/specs/task-lifecycle.md` — 任务生命周期规范
- `docs/specs/error-model.md` — 错误模型规范
- `docs/specs/versioning.md` — 版本控制规则规范
- `docs/specs/transport-stdio.md` — stdio 传输规范
- `docs/specs/transport-websocket.md` — WebSocket 传输规范
- `docs/specs/transport-sse.md` — HTTP SSE 传输规范
- `docs/specs/transport-grpc.md` — gRPC 流式传输规范
- `docs/specs/delivery.md` — 交付语义、确认和重放规范
- `docs/specs/reliability.md` — 重试、持久性和死信处理规范
- `docs/specs/security.md` — 身份、授权、审计和租户隔离规范
- `docs/specs/conformance.md` — 草案一致性级别和共享固定装置清单规则
- `docs/specs/event-registry-governance.md` — 事件类型注册治理和版本控制
- `CONTRIBUTING.md` — 贡献指南和存储库约定
- `CODE_OF_CONDUCT.md` — 贡献者行为准则
## 存储库布局
- `docs/` — 协议愿景、架构、设计草案、规范、路线图和 Superpowers 工件
- `docs/specs/` — 按层划分的协议规范(会话、订阅、任务生命周期、错误模型、版本控制)
- `schemas/` — 共享的草案 JSON 模式资产
- `conformance/` — 用于参考实现一致性的共享固定装置
- `reference/` — 特定语言的参考实现
- `reference/typescript/` — 主要的可运行 AEP 参考实现
- `reference/python/` — 具有完整传输和交付支持的第二优先级参考实现
- `reference/go/` — 具有 C0/C1 一致性的 Go 参考实现
- `reference/java/` — 具有 C0/C1 一致性的 Java 参考实现(JDK 21)
- `.github/workflows/` — 存储库 CI
## 开发工具
该项目使用 Superpowers 作为其代理开发工具。OpenCode 通过 `opencode.json` 加载它;持久规范和计划位于 `.superpowers/` 下。
- `AGENTS.md` — OpenCode 项目规则
- `CLAUDE.md` — Claude Code 项目规则
- `.superpowers/specs/` — Superpowers 支持的设计规范
- `.superpowers/plans/` — Superpowers 支持的执行计划
## AEP 工具
存储库包含一个最小的本地 AEP 0.1 草案一致性工具,使用 stdio 上的换行符分隔的 JSON。
运行测试:
```sh
cd reference/typescript && npm install
cd reference/typescript && npm test
```
运行 TypeScript 一致性固定装置:
```sh
cd reference/typescript && npm run conformance
```
运行跨语言一致性:
```sh
node tools/conformance-runner.js
```
这会在所有四种语言参考上运行共享的固定装置,并打印一个统一的通过/失败矩阵。
运行 stdio 工具:
```sh
cd reference/typescript && npm run harness < ../../conformance/fixtures/task-lifecycle.ndjson
```
运行示例:
```sh
cd reference/typescript && npm run demo:async-tool
cd reference/typescript && npm run demo:memory
cd reference/typescript && npm run demo:agent
cd reference/typescript && npm run demo:mcp-bridge
cd reference/typescript && npm run demo:mcp-aep-consumer
cd reference/typescript && npm run demo:production-e2e
```
该工具验证草案信封字段,检查事件类型是否符合标准注册表,创建订阅,跟踪任务生命周期,支持 stdio/WebSocket/SSE 传输,验证共享的 JSON 模式,并演示 MCP 互操作性。
## 规范网站
已渲染的规范发布在 **[https://axisrobo.github.io/aep/](https://axisrobo.github.io/aep/)**。
## 状态
AEP 是一个草案开放协议,具有四个活跃的参考实现(TypeScript、Python、Go、Java),它们保持跨语言一致性。存储库包含分层的规范,用于会话、订阅、任务生命周期、错误模型、版本控制、一致性、交付、可靠性、安全、事件注册治理和四种传输绑定(stdio、WebSocket、SSE、gRPC)。每个参考都支持 SQLite 支持的交付存储,并且跨语言一致性运行器(`node tools/conformance-runner.js`)验证所有四种语言的共享固定装置。