MemoryLake 实现了 Google 的 A2A(Agent 对 Agent)协议。如果你已熟悉 A2A,可以使用任何兼容 A2A 的客户端与 MemoryLake Agent 交互。
有关标准请求和响应 schema,请参阅 A2A 规范。官方 SDK 可在 github.com/a2aproject 获取。
Base URL
直接追加标准 A2A 路径即可 —— 例如 POST {baseUrl}/message:send 或 GET {baseUrl}/tasks/{taskId}。
协议版本
MemoryLake 并行暴露两套 A2A 路由,分别对应一个协议版本:
/v1/ 路径前缀指的是较旧的 A2A v0.3 传输格式,而非协议 1.0 版本。不带前缀的路由实现的才是当前的 A2A v1.0 格式。请确保请求体结构与所调用的路由匹配 —— v0.3 风格的请求体(content、blocking)会被 v1.0 路由拒绝,反之亦然。
两组路由都支持下文描述的同一套 MemoryLake 扩展。
MemoryLake 扩展
MemoryLake 通过 metadata.memorylake 命名空间扩展了标准 A2A 协议。在 message:send 或 message:stream 的请求元数据中传入此对象,以控制 Agent 与 MemoryLake 记忆层的交互方式。
这是与普通 A2A 服务器的核心区别 —— 这些字段将 Agent 连接到 MemoryLake 中的工作空间、项目和 Actor。
MemoryLake 专属配置。不传此字段时,Agent 将在没有任何记忆上下文的情况下运行。
代表终端用户的 Actor 标识符。从会话中提取的事实将关联到此 Actor,实现按用户记忆。
Agent 可读写的项目。提取的事实和会话历史将持久化到此项目。
Agent 可搜索(文档和事实)但不能修改的附加项目。用于让 Agent 访问共享知识库。
将子 Agent 名称(在 Agent 配置中定义)映射到具体的 Agent ID。允许在请求时动态路由子 Agent 调用。
Agent 配置的运行时覆盖。
覆盖 Agent 的模型(例如 gpt-4o、claude-sonnet-4-20250514)
覆盖模型参数(例如 temperature、max_tokens)