跳转到内容

搜索记忆

搜索是「先资格、后排序、最后按预算装箱」的只读操作。查询本身不会记录曝光、改变记忆真值或调用模型。

步骤 输入或动作 输出
1. 定义范围 当前工作区、scope_epochknown_atvalid_at 明确的 Query
2. 资格筛选 状态、来源支持、时间和作用域 可读取的 Claim 候选
3. 生成候选 词法、实体和可选语义索引 带分数的候选
4. 排列与装箱 相关性排序、max_itemsmax_bytes 有界 MemoryPack
5. 展示前复核 revision、epoch、来源和大小 可交给 Cue、问答或回顾的快照

没有明确作用域时,查询不会扩大到其它工作区。候选索引只能加速查找,不能绕过第 2 步的资格门。

信号 做什么 适合回答
作用域 限制在当前工作区或明确授权的全局偏好 避免不同项目互相混入
状态与来源 排除被纠正、冲突、失效、遗忘或失去依据的 Claim 当前能否可靠使用
词法 用 BM25 风格统计和中文相邻双字词匹配原词 名称、编号和事实查找
实体 使用真实的人物、项目和来源连接增强候选 关于某个人或项目的问题
语义 接收作用域和版本一致的可选语义候选 概念相近但用词不同的问题
时间 根据 known_atvalid_atTransitions 判断状态 「什么时候」「现在是否仍然」

多个通道合并时,每个通道只贡献一次确定性排名。Grounded 只表示引用片段仍可读取,不表示模型推断已经被语义证明。

查询模式 会返回什么 典型入口
Cue Current + Grounded 的当前记忆 停顿建议、原位续写
Inspect 用于核对的完整状态,包括部分支持或历史项 记忆列表、来源和图谱
恢复 用户确认的决定和承诺,再加近期有依据的事实 query_resume
偏好 用户明确确认的偏好 query_preferences

query_resume 不用问题文本的相似度假装待办事项;query_preferences 也不会自动读取其它工作区。

  • max_items 限制返回条目数。
  • max_bytes 计算序列化 items 数组的 UTF-8 字节。
  • 放不下的完整条目会跳过,不会截断一句 Claim。
  • 记忆包是某个 revision 上的快照;删除、纠正或切换工作区后必须重新查询。

桌面 Cue 会把结果转换为有界的 TabFuel。显示前和按 Tab 接受前,ProductMemoryService::validate_pack 会重新比较作用域、revision、epoch、有效性、来源和序列化大小。输入、焦点、插入点或工作区变化时,旧提示会被清除。

明确的 / 问答可以继续读取当前输入和按需工具结果。它与自动 Cue 共用同一记忆资格规则,但问题本身是用户主动触发。

关注点 代码证据
Query 资格、时间和预算 crates/harocue-memory/src/retrieval.rs
版本绑定的词法索引 crates/harocue-memory/src/indexed.rs
语义向量适配约束 crates/harocue-memory/src/semantic.rs
工作区、恢复和偏好查询 crates/harocue-runtime/src/product_memory.rs
Cue 燃料、焦点绑定和接受前复核 crates/harocue-runtime/src/completion_engine.rs