Lore

优先级

标出真正重要的记忆,又不让召回被一堆“看起来重要”的内容淹没。

优先级告诉 Lore 一条记忆相对于其他记忆有多重要。使用三个层级:0 为核心身份,1 为关键事实,2 及以上为一般内容。容量上限让 0 和 1 保持足够少,才有意义。

三个层级

优先级含义上限(全库)典型内容
0核心身份:每次会话都应当遵守的规则和身份信息5启动记忆(boot)节点,以及极少数每次会话都必须遵守的规则
1关键事实:大多数项目工作都需要的约束、偏好和工作流15项目约束、稳定偏好、高价值工作流
2+一般内容。数字越大,越偏向背景和历史。无实现笔记、决策、命令、历史背景

容量上限

优先级容量检查默认开启。新建记忆时,或把记忆调整为 0 或 1 时,如果该层级已满,Lore 会拒绝写入,并提示你先降低一条现有节点的优先级。

上限是固定值,无法在设置中修改。你可以关闭这项检查(对应 policy.priority_budget_enabled)。在 Loremem 云服务中,它位于设置 → 策略;在自托管服务中,位于 /settings。关闭后就没有这道限制了,除非有明确理由,否则请保持开启。

说明

启动记忆节点也会占用容量。首次设置流程会把启动记忆节点创建为优先级 0,因此三个全局启动记忆节点已经占用了该层级 5 个名额中的三个。每增加一个运行时的启动记忆节点,就再占用一个。

优先级在排序中的作用

优先级只会带来一点排序加分。默认值如下:

优先级排序加分
00.05
10.04
20.03
30.02
40.01
5 及以上0

这些默认值来自 recall.bonus.priority_base(0.05)和 recall.bonus.priority_step(0.01)。请记住以下几点:

  • 加分很小,相关性仍然是主要因素。
  • 优先级不会强制让记忆出现在召回结果中,展示阈值(默认 0.60)依然生效。
  • 得分相同时,优先级数字更小(更重要)的排在前面。
  • 优先级为 0 和 1 的记忆,不会随时间推移而减少时间加分。参见召回如何工作。

典型的优先级分布

大部分记忆应当是优先级 2。较高层级刻意保持很少。

层级典型用途数量预期
0启动记忆节点,以及每次会话都必须遵守的少数规则很少,上限是 5
1项目的关键约束、稳定偏好,以及大多数任务都需要的工作流有一些,上限是 15
2实现笔记、普通决策和常用命令大部分记忆
3+背景、历史,以及很少用到的上下文不限,它们本身排序就较低

当所有内容都“很重要”时

如果每条记忆看起来都该是 0 或 1,请按以下步骤整理:

  1. 先问:哪些记忆是 Agent 每次会话都必须知道的?只有这些可以是 0 或 1。
  2. 如果某个层级已满,找出其中最不重要的一条节点,用 lore_update_node 把它降到 2。
  3. 如果一条记忆只对某一类任务重要,就把它留在 1,并让它的触发条件更具体。不要为了弥补而提高优先级。
  4. 用几个真实提示词跑一遍召回。如果记忆仍然不出现,问题出在触发条件或术语,而不是优先级。

优先级只能为已经匹配上的记忆排序,无法让一条匹配不上的记忆出现。

之后调整优先级

用 lore_update_node 修改节点的优先级,只需传入 uri 和新的 priority,其他字段保持不变。

{
  "uri": "project://checkout_api/testing",
  "priority": 2
}

你也可以在 Loremem 云服务的记忆页面,或自托管服务的 /memory 页面中,在记忆编辑器里修改优先级字段。

只有当节点从其他层级调整为 0 或 1 时才会检查容量。已经处于该层级的节点不会重复检查。把节点降到 2 或以上,永远不会被容量上限阻止。