跳转到主要内容
Memory Store 中的记忆会随着使用不断积累,可能出现重复、过时或遗漏的问题。Dreams 提供异步的记忆整理能力——系统会启动一个专用 Agent,回顾近期会话,对 Memory Store 进行合并、删减和补充。

核心概念

概念说明
Dream一次异步记忆整理任务
输入 Memory Store整理的数据源,不会被修改
输出 Memory Store系统自动克隆的副本,整理结果写入此处
Dreaming SessionDream 运行时创建的内部 Session,不会出现在普通 Session 列表中

工作流程

POST /v1/dreams

克隆输入 Memory Store → 生成独立的输出副本

创建 Dreaming Session(内置 Memory Consolidation Agent)

Agent 执行:读取近期会话 → 合并/删除/补充记忆

Dream 完成 → outputs 中返回整理后的 Memory Store ID

API 端点一览

方法路径说明
POST/dreams创建 Dream
GET/dreams列出 Dreams
GET/dreams/{id}获取 Dream 详情
POST/dreams/{id}/cancel取消运行中的 Dream
POST/dreams/{id}/archive归档已完成的 Dream

快速开始

1. 触发一次记忆整理

curl -s -X POST 'https://api.qoder.com/api/v1/cloud/dreams' \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "inputs": [
      { "type": "memory_store", "memory_store_id": "memstore_019e5cdb9c3f71c3b6505eba937a40b4" }
    ]
  }'

2. 查询进度

curl -s 'https://api.qoder.com/api/v1/cloud/dreams/drm_019e86b4a8f070a3b6c5d4e3f2a1b0c9' \
  -H "Authorization: Bearer $QODER_PAT"

3. 查看结果

Dream 完成后,outputs 字段中包含整理后的 Memory Store ID:
{
  "status": "completed",
  "outputs": [
    { "type": "memory_store", "memory_store_id": "memstore_019e86b4b10578059435632bb357c5ed", "files_touched": ["preferences.md", "project/arch.md"] }
  ]
}

可选参数

参数说明
model选择整理使用的模型:auto(默认)、liteultimate
instructions自定义指令(如”重点关注 Python 项目约定”),最长 4096 字符
inputs[].type: "sessions"指定重点回顾的 Session ID 列表(最多 100 个)

安全设计

  • Copy-on-Write:输入 Memory Store 永不被修改,所有写入发生在克隆副本上
  • 最小权限:Dreaming Agent 仅可使用 memorysession_listsession_read 三个工具,无法执行代码或访问网络
  • Single-flight:每个用户同一时间只能有一个活跃 Dream(状态为 pending 或 running),重复创建返回 409

常见问题

Q: Dream 会修改我原来的 Memory Store 吗? A: 不会。Dream 始终在克隆副本上操作,原始 Memory Store 完全不受影响。 Q: Dream 需要多长时间? A: 通常 1-5 分钟,取决于 Memory Store 大小和需要回顾的会话数量。