记忆类型
HaroCue 用几组彼此独立的字段描述一条记忆:它表达什么、来自谁、现在是否有效、依据是否仍然可读,以及属于哪个作用域。类型不是模型的置信度,来源也不是用户确认。
| 维度 | 它回答什么问题 | 典型值 |
|---|---|---|
| Claim 类型 | 这条记忆表达什么? | 事实、偏好、决定、承诺 |
| 来源类型 | 它从哪里来? | 应用、对话、文档、用户输入 |
| 提供者 | 谁写下或提出它? | User、Producer |
| 有效性 | 它在什么时候成立? | 当前、未来、过期、冲突、遗忘 |
| 依据支持 | 还能不能打开原文? | Grounded、Partial、Unavailable |
| 作用域 | 哪个工作区可以读取? | 工作区、全局偏好 |
Claim 类型
Section titled “Claim 类型”Claim 是可以被检索和引用的陈述。类型只说明陈述的用途,不代表它已经被用户确认。
| 类型 | 适合表达 | 典型使用位置 |
|---|---|---|
Fact 事实 |
从来源中提取的可复用陈述 | Cue、/ 问答、回顾 |
Preference 偏好 |
你明确表达的长期偏好 | 选定工作区,或获授权的全局偏好 |
Decision 决定 |
已经做出的选择或规则 | 续接工作、问答、回顾 |
Commitment 承诺 |
已经答应要做的事或计划 | 续接工作、回顾 |
「习惯」「情节」「程序记忆」可以帮助解释产品体验,但不是当前内核的持久化类型。活动频率不会自动变成偏好,模型推断也不会自动变成用户确认。
每个 Claim 至少引用一个 Evidence。Evidence 保存原文和时间信息,Claim 保存指向它的字节范围。
| 来源 | 含义 | 是否能直接修改 |
|---|---|---|
Application |
获准的应用文字或桌面活动线索 | 不能,需通过新证据纠正 |
Conversation |
获准的对话内容 | 不能,需通过新证据纠正 |
Document |
通过文件查询得到的文本 | 不能,需通过新证据纠正 |
UserInput |
你在记忆界面直接写下的内容 | 原文作为用户证据保存 |
Evidence 带 source_id、观察时间、摄入时间和可选过期时间。点开记忆节点时,界面可以用这些字段说明「为什么记得」。
三个独立判断
Section titled “三个独立判断”| 提供者 | 含义 | 能否代表确认 |
|---|---|---|
User |
你明确输入、纠正或确认的内容 | 可以代表用户动作 |
Producer |
抽取或整理模型提出的内容 | 不能,仍需核对 |
现在是否有效
Section titled “现在是否有效”内核根据查询的 known_at 和 valid_at 计算状态:
| 状态 | 说明 | Cue 是否使用 |
|---|---|---|
Current |
在查询时间已经生效,且没有被替代 | 还需通过 Grounded 检查 |
Future |
记录存在,但尚未到生效时间 | 不使用 |
Expired |
已超过有效期 | 不使用 |
Superseded / Retracted |
被新决定替代或明确撤回 | 不使用 |
Conflict |
有互相冲突的有效陈述,尚未裁决 | 不使用 |
Forgotten |
被用户遗忘 | 不使用 |
纠正旧认识和后来发生变化是两种不同的关系;历史查看可以保留它们,普通 Cue 不会使用无效或未裁决的 Claim。
依据是否仍可读
Section titled “依据是否仍可读”| 支持状态 | 含义 | 适合展示 |
|---|---|---|
Grounded |
所有引用的来源片段仍可读取 | Cue、问答、回顾 |
Partial |
只剩部分来源片段 | 记忆检查页,提示需要复核 |
Unavailable |
没有可用来源片段 | 历史检查,不作为当前答案 |
Grounded 只说明引用片段可读,不说明模型推断一定正确。Cue 使用 Current + Grounded 的组合条件。
| 作用域 | 可以保存什么 | 查询规则 |
|---|---|---|
| 工作区 | 项目事实、决定、承诺和局部偏好 | 只在当前工作区读取,不自动跨区 |
| 全局偏好 | 你明确确认的长期偏好 | 只有产品适配器显式查询时才使用 |
工作区切换会同时改变 scope_id 和版本校验,防止同一个 revision 被误认为属于同一个空间。清空作用域还会推进 scope_epoch,让旧任务失效。
在界面中怎么看
Section titled “在界面中怎么看”- 「记忆」列表和知识图谱显示类型、状态、来源数量和关联。
- 点开节点可以查看原文片段,并区分「助理推断」和「已确认」。
- 关系整理只补充真实存在的实体或来源连接,不会凭相似文字制造捷径。
- 如果状态不是
Current + Grounded,普通 Cue 会跳过它;检查页仍可以让你找到原因。
对应代码:crates/harocue-memory/src/model.rs、crates/harocue-memory/src/retrieval.rs、crates/harocue-runtime/src/product_memory.rs、frontend/src/product-api.ts、frontend/src/knowledge-map.ts。