跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.qoder.com/llms.txt

Use this file to discover all available pages before exploring further.

Session 结束后,Agent 的上下文默认随之消失。Memory Stores 让 Agent 的学习成果和工作产出跨 Session 持久保留——下次启动时,Agent 可以”回忆”之前的内容。

核心概念

概念说明
Memory Store记忆仓库,按项目或领域划分
Entry一条记忆,由 path 标识,每条 Entry 有唯一的 entry_id
Version每次写入/更新/删除自动生成的版本快照
Redact不可逆地遮蔽某版本内容(合规场景)
层级关系:Store → Entry → Version

API 端点一览

方法路径说明
POST/memory_stores创建 Memory Store
GET/memory_stores列出所有 Memory Store
GET/memory_stores/{id}获取 Memory Store 详情
DELETE/memory_stores/{id}删除 Memory Store
POST/memory_stores/{id}/memories创建 Entry
GET/memory_stores/{id}/memories列出所有 Entry
GET/memory_stores/{id}/memories/{entry_id}获取单条 Entry(含 content
PUT/memory_stores/{id}/memories/{entry_id}更新 Entry(OCC)
DELETE/memory_stores/{id}/memories/{entry_id}删除 Entry
POST/memory_stores/{id}/versions/{version_id}/redact遮蔽某版本内容

路径规则

Entry 的 path 必须是相对路径:
  • 合法:notes/meeting-2026-05-18.mdconfig.yaml
  • 非法:/notes/meeting.md(不能以 / 开头)
路径用于组织记忆结构,类似文件系统。

完整流程

1. 创建 Memory Store

curl -X POST https://openapi.qoder.sh/api/v1/cloud/memory_stores \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "project-alpha-memory",
    "description": "Alpha 项目的 Agent 知识库"
  }'
响应示例:
{
  "id": "ms_abc123",
  "name": "project-alpha-memory",
  "description": "Alpha 项目的 Agent 知识库",
  "entry_count": 0,
  "total_size": 0,
  "created_at": "2026-05-18T08:00:00Z",
  "updated_at": "2026-05-18T08:00:00Z"
}

2. 创建 Entry

curl -X POST https://openapi.qoder.sh/api/v1/cloud/memory_stores/ms_abc123/memories \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "path": "decisions/arch-choice.md",
    "content": "# 架构决策\n\n选择微服务架构,原因:团队规模扩大,需要独立部署。"
  }'
列表接口不返回 content 字段,需要调用单条获取接口才能读取内容。

3. 获取单条 Entry

通过 entry_id 获取完整内容(包括 content 字段):
curl https://openapi.qoder.sh/api/v1/cloud/memory_stores/ms_abc123/memories/mem_entry_xyz \
  -H "Authorization: Bearer $QODER_PAT"
响应示例:
{
  "id": "mem_entry_xyz",
  "path": "decisions/arch-choice.md",
  "content": "# 架构决策\n\n...",
  "version": 2,
  "created_at": "2026-05-18T08:00:00Z",
  "updated_at": "2026-05-18T09:30:00Z"
}

4. 更新 Entry

更新 Entry 必须使用 PUT 方法,路径中带 entry_id,并携带当前 version(乐观并发控制)。系统会自动生成新版本快照:
curl -X PUT https://openapi.qoder.sh/api/v1/cloud/memory_stores/ms_abc123/memories/mem_entry_xyz \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "# 架构决策 v2\n\n改为 Modular Monolith,原因:微服务运维成本超出预算。",
    "version": 1
  }'
请求字段:
字段类型必填说明
contentstring新的内容
versioninteger当前 Entry 的版本号(用于冲突检测)
如果传入的 version 与服务端不一致(说明有并发写入),API 将返回 409 Conflict,需要先 GET 最新版本再重试。

5. 删除 Entry

通过 entry_id 删除指定 Entry:
curl -X DELETE https://openapi.qoder.sh/api/v1/cloud/memory_stores/ms_abc123/memories/mem_entry_xyz \
  -H "Authorization: Bearer $QODER_PAT"
删除使用 entry_id(如 mem_entry_xyz),不支持通过 path 查询参数删除。

6. 在 Session 中使用

创建 Session 时通过 memory_store_ids 关联:
curl -X POST https://openapi.qoder.sh/api/v1/cloud/sessions \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "agent_xxx",
    "memory_store_ids": ["ms_abc123"]
  }'
Session 内 Agent 可读取和写入关联的 Memory Store。

版本追踪

每次对 Entry 执行创建、更新或删除操作,系统都会自动生成一个版本快照。版本不可修改,提供完整的变更历史。

Redact(内容遮蔽)

当某个版本包含敏感信息需要永久清除时:
curl -X POST https://openapi.qoder.sh/api/v1/cloud/memory_stores/ms_abc123/versions/ver_xyz789/redact \
  -H "Authorization: Bearer $QODER_PAT"
注意:Redact 操作不可逆,遮蔽后内容无法恢复。

统计字段

字段说明
entry_countStore 中的 Entry 总数
total_size所有 Entry 内容的总字节数

常见问题

Q: 一个 Session 可以关联多少个 Memory Store? A: 支持多个,按需关联。 Q: Entry 的 path 可以包含子目录吗? A: 可以,如 notes/2026/05/daily.md,支持多级路径。 Q: 删除 Entry 后版本还在吗? A: 删除操作本身会生成一个”删除”版本记录,之前的版本仍可追溯。 Q: Memory Store 有容量限制吗? A: 具体限制请参考账户配额,通常足够一般项目使用。
建议为每个独立项目创建单独的 Memory Store,避免不同项目的记忆混淆。