核心概念
层级关系:Store → Memory → Version
API 端点一览
路径规则
Memory 的path 必须是相对路径:
- 合法:
notes/meeting-2026-05-18.md、config.yaml - 非法:
/notes/meeting.md(不能以/开头)、../secrets(不能包含..)
完整流程
1. 创建 Memory Store
2. 创建 Memory
列表接口不返回
content 字段,需要调用单条获取接口才能读取内容。3. 获取单条 Memory
通过memory_id 获取完整内容(包括 content 字段):
4. 更新 Memory
更新使用POST 方法,路径中带 memory_id,系统会自动生成新的版本快照。为防止并发写入,可携带上次读取到的 content_sha256——若与服务端当前内容不一致,API 返回 409 Conflict:
如果传入的
content_sha256 与服务端不一致(说明有并发写入),API 将返回 409 Conflict,需要先重新 GET 该 memory 再重试。
5. 在 Session 中使用
创建 Session 时通过resources[] 关联 Memory Store:
Memory 在 sandbox 内的路径
memory_store 绑到 session 后,每条 memory 在 sandbox 内挂在:path = "shared/note.txt" → sandbox 路径 /data/.qoder/awareness/shared/note.txt。
注意:sandbox 内没有 memory_store / mem_ 这些命名层级,全部平铺到 awareness/ 下。Agent 看不到也搜不到 memory_store 这个概念,只能按 path 直接读取文件。
版本追踪
每次对 Memory 执行创建、更新或删除操作,系统都会自动生成一个版本快照。版本不可修改,提供完整的变更历史。用GET /memory_stores/{id}/memory_versions(可用 memory_id 过滤)列出版本,用 GET /memory_stores/{id}/memory_versions/{memory_version_id} 读取单个版本的 content。
如果某个版本记录了敏感内容,可以 redact 永久移除其存储内容,同时保留版本元数据用于审计。
统计字段
常见问题
Q: 一个 Session 可以关联多少个 Memory Store? A: 支持多个,按需关联。 Q: Memory 的 path 可以包含子目录吗? A: 可以,如notes/2026/05/daily.md,支持多级路径。
Q: Memory Store 有容量限制吗? A: 具体限制请参考账户配额,通常足够一般项目使用。
建议为每个独立项目创建单独的 Memory Store,避免不同项目的记忆混淆。