Skip to main content
MemoryLake 实现了 Google 的 A2A(Agent 对 Agent)协议。如果你已熟悉 A2A,可以使用任何兼容 A2A 的客户端与 MemoryLake Agent 交互。 有关标准请求和响应 schema,请参阅 A2A 规范。官方 SDK 可在 github.com/a2aproject 获取。
所需权限: workspace:a2a

Base URL

直接追加标准 A2A 路径即可 —— 例如 POST {baseUrl}/message:sendGET {baseUrl}/tasks/{taskId}

协议版本

MemoryLake 并行暴露两套 A2A 路由,分别对应一个协议版本;每个版本都可以通过两种传输方式调用:REST 与 JSON-RPC 2.0。
/v1/ 路径前缀指的是较旧的 A2A v0.3 传输格式,而非协议 1.0 版本。不带前缀的路由实现的才是当前的 A2A v1.0 格式。请确保请求体结构与所调用的路由匹配 —— v0.3 风格的 REST 请求体(message.content)会被 v1.0 REST 路由拒绝,反之亦然。
走 JSON-RPC 时,两个协议版本都 POST 到不带后缀的 {baseUrl},由 method 指定具体操作:v1.0 使用 SendMessageSendStreamingMessageGetTaskCancelTaskSubscribeToTask;v0.3 使用 message/sendmessage/streamtasks/gettasks/canceltasks/resubscribe。协议版本由方法名协商得出;v1.0 客户端还应额外发送 A2A-Version: 1.0 四组路由都接受同一个 configuration 对象,以及下文描述的同一套 MemoryLake 扩展:

MemoryLake 扩展

MemoryLake 通过 metadata.memorylake 命名空间扩展了标准 A2A 协议。在 message:sendmessage:stream 的请求元数据中传入此对象,以控制 Agent 与 MemoryLake 记忆层的交互方式。 这是与普通 A2A 服务器的核心区别 —— 这些字段将 Agent 连接到 MemoryLake 中的工作空间、项目和 Actor。
object
必填
MemoryLake 专属配置。不传此字段时,Agent 将在没有任何记忆上下文的情况下运行。

示例

发送一条消息涉及三个彼此独立的选择 —— 协议版本(v1.0 / v0.3)×方法(send / stream)×传输方式(REST / JSON-RPC),因此共有 8 种有效组合。以下把 8 种全部列出。 下表的路径均相对于上文的 base URL;JSON-RPC 一律 POST 到不带后缀的 base URL,由 method 指定操作。 上表 header 列中,SSE 表示 Accept: text/event-streamv1.0 表示 A2A-Version: 1.0。8 种组合都使用同一个 configuration 对象和同一套 metadata.memorylake 扩展。其中 4 个 streaming 变体以 text/event-stream 返回;4 个 send 变体返回单个 JSON 响应体。
请注意版本与传输方式之间的三处结构差异:v1.0 使用 partsrole"ROLE_USER";v0.3 REST 使用 contentrole"ROLE_USER";v0.3 JSON-RPC 使用 parts 且每个 part 都带 kind 判别符,role 为小写的 "user"

REST 传输

JSON-RPC 传输

两个协议版本共用同一个路径 —— 不带任何后缀的 POST {baseUrl}。协议版本由方法名决定;v1.0 客户端还应额外发送 A2A-Version: 1.0