选择运行方式
手动复制记忆库
默认情况下,梦境直接更新当前记忆库,不会创建新的记忆库。如果担心整理结果影响现有内容,可以先复制记忆库,再在副本上配置和运行梦境:- 在记忆库详情页点击「复制记忆库」。复制包含当前全部记忆文件,不包含历史版本,原记忆库保持不变。
- 在副本上创建并运行梦境,检查整理结果。
- 后续任务需要使用整理后的内容时,在创建会话时选择该副本。
官方或自定义梦境智能体
平台官方梦境智能体适合大多数场景;需要定制整理重点时,可以在控制台选择自定义智能体,例如:- 通过智能体指令限定整理范围,如只整理项目约定和未解决问题,或重点关注 Python 相关讨论;
- 要求只整理记忆库现有内容,不参考历史会话;
- 选择执行梦境时使用的模型;
- 搭配技能或插件,在整理时补充相关资讯;
- 通过 Subagent 并行整理。
触发方式
手动触发适合先验证整理效果并检查文件版本,确认结果符合预期后,再启用自动触发。 自动触发适合长期维护,可以按活跃会话数或每日计划运行。两个条件相互独立,任一条件满足都会触发梦境。配置自动梦境
使用已有的记忆库 ID,选中需要更新的记忆库。 配置执行梦境的智能体时,agent_id 可以省略,省略后使用平台默认的梦境智能体。
每次更新都要同时传入完整的 activity 和 schedule 对象,代表执行梦境的活动条件或定时条件。
两个条件相互独立,任一条件满足都会触发梦境。
两个条件启用任意一个,就必须提供执行环境 ID。
下面的示例请求同时启用活动条件和定时条件。
MEMORY_STORE_ID、ENVIRONMENT_ID 和可选的 agent_id 应替换为已有资源的 ID。
min_changed_sessions 后,平台会触发一次梦境。min_changed_sessions 的取值范围为 1 到 100。
梦境创建的普通会话不会再次触发该条件。
定时条件表示,梦境每天在指定的本地时间触发一次。
触发时,即使没有新的会话,平台也会创建一次梦境运行,让智能体检查是否需要更新记忆库。
local_time 使用 HH:mm 格式,timezone 使用 IANA 时区名称。
如果只需要其中一个条件,需要将另一个条件的 enabled 设置为 false,但仍然要传入完整的条件对象。
也可以在控制台打开记忆库详情页,点击「创建梦境」进行配置,详见 使用控制台:
- 活跃会话数:达到 1–100 个变更会话后运行,对应
activity。 - 每日计划:按
HH:mm和 IANA 时区每日运行,对应schedule。 - 梦境智能体:默认使用平台官方梦境智能体,也可以换用自定义智能体。
- 环境:任一触发条件启用时必选;触发后会话以读写方式挂载当前记忆库。
关闭自动梦境
将两个条件的enabled 都设置为 false,即可关闭自动梦境。
关闭时不需要提供 environment_id。
先将当前策略响应中的 agent_id 保存为 DREAM_AGENT_ID,这样可以保留当前使用的梦境智能体。
如果当前使用的是平台默认的梦境智能体,可以将 DREAM_AGENT_ID 设置为 agent_dream。
agent_id 会选择平台默认的梦境智能体。
查看当前策略
更新后查询梦境策略,并保存响应中的trigger_id。
trigger_id 标识梦境策略管理的触发器。
触发器(Trigger)是一条按照条件启动智能体会话的规则。
活动条件或定时条件满足时,平台会通过这条触发器创建一次梦境会话。
查询代码:
trigger_id,将它设置为 TRIGGER_ID。
后续手动运行梦境和查询运行记录时需要使用这个值。
触发器由梦境策略接口统一管理,不能通过触发器接口更新、暂停、恢复或归档。
需要调整触发条件或关闭自动梦境时,继续使用梦境策略接口。
如果要立即运行一次梦境,可以调用这个触发器的运行接口。
手动运行梦境
梦境策略没有单独的立即运行接口。 调用触发器的运行接口即可手动触发一次梦境。completed、failed 或 skipped)。
响应中的 id 是本次 TriggerRun 的 ID。
将它保存为 TRIGGER_RUN_ID,用于查询本次运行状态。
手动运行只按当前策略运行,不接收额外会话或 instructions,也不改变活动条件的统计进度和定时条件;之后仍按已启用的条件继续触发。
每次触发都会生成 TriggerRun;只有实际创建会话并执行时才会更新现有记忆库,.dream/log.md 会追加运行记录,包括没有实际更新的 no-op 记录。
查看触发记录
TriggerRun 是一次运行记录,用于记录梦境的执行状态和关联会话。
使用上一步得到的 TRIGGER_RUN_ID 查询本次运行的最新状态。
running、completed、failed 和 skipped。
其中,running 表示会话正在启动,failed 表示运行失败(详见 error),skipped 表示触发时触发器不在活跃状态。
completed 只表示平台已经创建会话,并且接受了会话的初始事件,不表示梦境已经完成记忆整理。
需要继续查看 session_id 对应的会话事件和记忆库版本,确认梦境的实际执行结果。
如果运行记录还没有 session_id,说明本次运行还没有创建或关联会话,此时不能查询对应会话。
如果需要查看历史运行记录,可以列出该触发器的所有 TriggerRun:
查看关联会话
获取运行记录中的session_id 后,使用该值查询本次运行创建的会话。
SESSION_ID 应替换为 TriggerRun 响应中的 session_id。
查看会话事件可以了解梦境的执行过程:
检查记忆库的修改
梦境可能修改记忆库中的多个文件。 先列出文件,选择需要检查的文件 ID:id 保存为 MEMORY_ID,查询该文件的版本列表。版本按时间从新到旧排列:
source: "session",source_id 是本次梦境会话的 ID。
source 为 api 表示通过 API 直接写入;通过 API 恢复文件产生的版本也是 api。
先将 TriggerRun 响应中的 session_id 保存后,在版本列表中筛选 source 为 session 且 source_id 等于该会话 ID 的版本,就能定位本次梦境产生的所有变更。
再结合 operation、path 和 created_at,判断本次运行对该文件执行了创建、修改、重命名还是删除(重命名通过比较相邻版本的 path 判断)。
需要读取正文时,选择 operation 不是 "deleted" 且没有 redacted_at 的版本,将它的 id 保存为 VERSION_ID:
content 是 Base64 编码。
operation 为 "deleted" 的版本只是删除标记,没有正文;已经 redacted_at 的版本正文已被清除。恢复被删除的文件时,应使用该文件删除前最近一个可读版本,而不是删除标记本身。
梦境失败时可能已经留下部分文件变更,因此需要逐个检查受影响的文件。
恢复文件
恢复文件就是把某个历史版本的正文写回当前文件。 上一节已经取得历史版本响应中的content,将它保存为 HISTORICAL_CONTENT。
恢复前,重新读取当前文件,取得最新的 content_sha256:
content_sha256 保存为 CONTENT_SHA256。
这里只需要保存 content_sha256,当前文件响应中的 content 不用于本次恢复。
CONTENT_SHA256 必须直接使用接口返回的值,不能自行填写或修改。
然后,将历史版本的正文写回当前文件:
content_sha256。
如果当前文件在读取后已经被其他操作修改,旧的 content_sha256 与当前值不匹配,更新会返回 409,平台不会覆盖新的内容。
此时应重新读取当前文件,取得新的 content_sha256,再决定是否继续恢复。
恢复多个文件时,需要为每个文件分别读取最新的 content_sha256 并执行更新,恢复结果也要逐个确认;已成功恢复的文件不会因后续失败而撤销。
维护与使用建议
- 按稳定用途拆分记忆库,例如用
project-conventions保存项目规范和架构决策、用customer-context保存长期客户背景与偏好、用research-findings保存已验证的调研结论、用operations保存运行手册和故障经验。清晰的记忆库描述有助于 Agent 判断何时读取和更新。 README.md和index.md应保持简洁,作为内容入口。新增、移动、重命名或删除文件时,同步更新index.md中的链接和摘要,确保与实际内容一致。- 梦境运行期间尽量避免同时大量修改同一个记忆库,以降低写入冲突风险。
- 自动梦境会消耗模型额度,触发频率按需设置。定期检查整理结果是否有效、相关且便于后续使用。
相关资源
记忆库
创建记忆库、绑定会话并管理记忆版本。
会话
了解会话的创建方式和记忆库绑定配置。
智能体
配置执行梦境的智能体。