Skip to main content
梦境(Dreaming)会在指定条件满足时创建一个普通会话,由配置的智能体读取并修改原记忆库中的文件。 梦境策略由平台管理的触发器执行,结果直接写回原记忆库,不会创建新的记忆库。
梦境失败时不会自动回滚已经写入的内容。 梦境可能修改多个文件,恢复时需要逐个文件处理,不能一次性恢复整个记忆库。

选择运行方式

手动复制记忆库

默认情况下,梦境直接更新当前记忆库,不会创建新的记忆库。如果担心整理结果影响现有内容,可以先复制记忆库,再在副本上配置和运行梦境:
  1. 在记忆库详情页点击「复制记忆库」。复制包含当前全部记忆文件,不包含历史版本,原记忆库保持不变。
  2. 在副本上创建并运行梦境,检查整理结果。
  3. 后续任务需要使用整理后的内容时,在创建会话时选择该副本。

官方或自定义梦境智能体

平台官方梦境智能体适合大多数场景;需要定制整理重点时,可以在控制台选择自定义智能体,例如:
  • 通过智能体指令限定整理范围,如只整理项目约定和未解决问题,或重点关注 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 中的链接和摘要,确保与实际内容一致。
  • 梦境运行期间尽量避免同时大量修改同一个记忆库,以降低写入冲突风险。
  • 自动梦境会消耗模型额度,触发频率按需设置。定期检查整理结果是否有效、相关且便于后续使用。

相关资源

记忆库

创建记忆库、绑定会话并管理记忆版本。

会话

了解会话的创建方式和记忆库绑定配置。

智能体

配置执行梦境的智能体。