日常维护
轻量的每周例行检查、清理方式,以及用节点历史保持记忆可用。
简短的每周例行检查就能让记忆保持准确,不必搞一次大规模清理。
每周例行检查
- 一做出有长期价值的决定,就立刻保存为记忆。停留在聊天中的决定,会随会话结束而丢失。
- 在 召回 页面,为每个活跃项目运行三到五条真实的召回查询。
- 查看下一节的召回信号。优先修复缺失或错误的记忆。
- 审阅过去一周的 Dream 变更。通过好的变更。对于不好的变更,请编辑节点;在自托管服务器上,也可以从节点历史中回滚该节点。只有当某次运行是最近的一次,并且其中每项变更都不好时,才回滚整次运行。
- 按下文所述,清理一条过时或过宽的记忆。
- 检查最近的备份是否及时。在自托管服务器上,请查看 备份操作 下的列表。在 Loremem 云服务上,请查看 备份 标签页中的 最近备份。
需要维护的召回信号
召回分析能显示记忆在哪里失效。在自托管服务器上,打开 召回。在 Loremem 云服务上,打开 概览,查看召回分析和渠道概览。
| 信号 | 通常意味着什么 | 应该怎么做 |
|---|---|---|
| 你预期能命中的查询没有返回结果 | 记忆缺少术语(glossary),或其触发条件与人们的提问方式不符。 | 补上缺失的术语,或重写触发条件。在调整阈值或权重之前,先修正记忆的结构。 |
| 某条记忆经常出现,却从未被采用 | 它给提示词增加了噪声。 | 收窄它的触发条件,或将它拆分,让每一部分都有自己的触发条件。 |
| 区分度(Separation)低或为负 | 被采用的记忆与未被采用的记忆得分差不多。 | 检查那些在许多查询中出现的记忆的术语和触发条件。 |
| 同一个过宽的节点反复出现 | 它涵盖的内容太多。 | 将它拆分。 |
召回分析中的术语含义如下:
- 融合统计排序后的候选数量。展示统计注入提示词的记忆数量。采用统计智能体通过召回 ID 打开过的记忆数量。
- 区分度等于“采用样本的 p25 分数”减去“未采用展示样本的 p75 分数”。当它低或为负时,被采用与未被采用的记忆分数存在重叠。
清理过时或过宽的记忆
与其直接删除过宽的记忆,不如优先拆分它。过宽的记忆通常混杂着一两条有用的事实和过时的细节。
- 进行大规模清理之前,先做一次备份。
- 打开节点,阅读它的内容、触发条件、术语和优先级。
- 从以下操作中选择一种:
- 当某项事实已经改变时,修改 内容。节点的历史会保留之前的文本。
- 拆分 涵盖多个概念的节点。保留父节点作为抽象节点,并把每个概念移入一个子节点。
- 移动 位于路径树中错误位置的节点。
- 只有当其中的内容都已不再成立时,才 删除 节点。
- 在删除或替换内容之前,先检查节点的历史。如果某项事实已经改变,但旧版本仍能解释过去的决定,就修改节点,而不是删除它。
- 运行那些本应找到这条记忆的召回查询,并确认返回了正确的节点。
下面是一个拆分的示例。这个节点混合了两个主题,并且触发条件使用了 OR 逻辑:
URI: project://checkout_api/deploy
Priority: 2
Disclosure: When working on checkout-api releases or database migrations
Glossary: deploy, release, migration
Content: Deploy with make release. Roll back by redeploying the previous tag. Migrations must run before the new pods start.把父节点保留为总体概览,并为每个主题各建一个子节点:
URI: project://checkout_api/deploy/release
Priority: 2
Disclosure: When cutting or rolling back a checkout-api release
Glossary: make release, release, rollback
Content: Release with make release. Roll back by redeploying the previous tag.URI: project://checkout_api/deploy/migrations
Priority: 2
Disclosure: When adding or changing a checkout-api database migration
Glossary: migration, database migration
Content: Migrations must run before the new pods start.父节点 project://checkout_api/deploy 必须先作为真实节点存在,并带有自己的内容、触发条件和术语,然后才能为它添加子节点。
使用节点历史与回滚
每一次新增、修改、移动和删除都会记录在节点历史中,包括 Dream 做出的变更。
- 自托管:打开节点的历史,查看每个事件及其差异。在新增或修改事件上选择 回滚,即可把节点恢复到该事件之后的状态。其他类型的事件不能这样回滚。这适合撤销较早的变更,例如某次已不是最近一次的 Dream 运行所做的修改。
- Loremem 云服务:节点历史以差异形式显示每次变更。控制台不提供单个节点的回滚,因此请编辑节点,恢复之前的文本。
为新项目准备记忆
在智能体需要之前,先创建项目的记忆。多段路径需要一个真实的父节点,因此请先创建项目根节点,并为它填写内容、触发条件和术语。然后添加以下起始集合:
| 路径 | 内容 |
|---|---|
project://my_app/overview | 项目是什么,以及它位于哪里。 |
project://my_app/commands | 安装、开发、测试、构建和部署命令。 |
project://my_app/constraints | 架构规则、禁止的变更和产品约束。 |
project://my_app/deployment | 托管方式、环境变量、发布流程和回滚说明。 |
为每条记忆补充术语,覆盖产品名、别名和缩写。只有每个任务都需要的事实,才使用优先级 1。优先级预算会把整个记忆库限制为最多五个优先级 0 节点和十五个优先级 1 节点。
写完第一批记忆后,用一条真实的任务提示运行召回。如果概览没有出现,请先改进它的触发条件和术语。