核心组件
数据路径
同步管理和后台学习在这条路径中保持分离:- 用户明确新增、纠正或遗忘时,Provider 立即执行确定性操作;
- 任务结果需要语义归纳时,Journal 先记录事件,再由 Reflection 后台处理;
- Context Director 只选择当前任务需要的内容,不修改记录正文;
- 应用结果重新进入 Journal,供后续排序和生命周期更新。
记录模型
Personal Memory Record(个人记忆记录)由正文和治理信息共同组成:
Provider 保存规范化机器状态,供 CLI、Dashboard、Skill 和 Hook 共同读写。用户可读的 Markdown 用于查看和管理,也可以作为索引损坏后的重建输入。
记录形成路径
用户明确设置
user.signal 表示用户主动提出的长期偏好、纠正或遗忘。协调器先将事件写入 Journal,再同步完成确定性处理。
明确的长期要求可以直接进入 proven,因为当前用户就是这类内容的权威来源。系统还会识别一次性措辞,例如“这次先不要提交”;该要求继续约束当前任务,但不写入长期记忆。
系统推断候选
任务完成、验证、Review 和上下文应用结果可以形成推断候选。Reflection 将相关 Personal Episode 转换为 Learning Delta(记忆变更指令):
Consolidation 合并近义记录,保留更具体的 selector(适用条件),并将新 evidence(证据)连接到已有记录。系统推断内容初始进入
trial,以较低优先级参与相关任务;一次成功应用后可以晋升为 proven。
Experience Journal 的职责
Experience Journal 是追加式、可重放的机器事件日志,承担三项职责:- 使用稳定
eventId去重,避免重试产生重复学习; - 使用
episodeId关联恢复、复验和跨会话继续产生的事件; - 在后台 Reflection 失败后保留重放能力,不阻塞当前工作流。
任务匹配
Provider 先返回可用候选,Context Director 再按当前请求执行分层匹配:proven的优先级高于trial;- 用户明确设置的优先级高于系统推断;
- 精确项目和路径 selector 的优先级高于宽泛全局内容;
- 最近成功应用会提高后续排序;
- 纠正或参与失败会降低排序,并触发后续 Reflection;
superseded记录不进入任务上下文。
渐进式上下文
Comet 使用分层提供方式控制常驻上下文:- 关键 Core Profile 可以完整进入上下文;
- 少量直接相关的稳定 Collaboration Policy 可以完整进入上下文;
- 其他相关候选先进入 Context Manifest;
- Agent 通过稳定 ID 展开所需的正文、来源和验证信息。
whyApplied。whyApplied 来自实际匹配条件,例如“当前项目匹配”“当前路径匹配”“用户明确设置”或“最近应用成功”。
字符预算只限制一次任务中的常驻正文。保存成功的记录只有在命中当前条件时,才会出现在上下文或 Manifest 中。
应用反馈
Context Director 提供一条记录时会创建 application record(应用记录)。任务结束后可以写入以下结果:
检索命中率用于衡量相关性,应用结果用于衡量实际任务价值。两类信息共同决定后续排序和生命周期。
纠正、遗忘与重放
纠正操作创建更新后的规范化记录,并将冲突旧版本标记为superseded。系统推断内容不能覆盖用户明确设置的正文。
遗忘操作写入 tombstone(遗忘标记)。该标记与生命周期分开保存,使历史事件重放时仍能识别用户已经撤回的内容。
forget 默认保留回滚能力;--permanent 执行永久删除。显式操作失败时,Provider 保持原状态并返回实际错误。
Local 与 Remote Provider
Personal Memory 领域通过统一的status / query / apply 契约访问 Provider。
Local Provider
- 保留用户可读的
profile.md和项目投影; - 机器索引可以在升级或损坏后重建;
- 使用稳定 repository identity 识别同一仓库;
- 主工作区和 linked worktree 共享项目范围的个人记忆;
- 不同仓库相互隔离。
Remote Provider
- 使用与 Local 相同的版本化 Provider 契约;
- token 只通过环境变量提供;
- 配置启用 Remote 后,不再同时读取 Local;
- Remote 失败时返回实际状态,不读取 Local 数据。
learning 会停止形成新记录,并保留已有数据。关闭 retrieval 会停止向任务提供记忆,Dashboard 和显式管理操作仍然可用。
失败隔离
召回诊断
诊断一次记忆使用时,依次检查三个环节:- 保存状态:使用
comet memory list .或 Dashboard 查看记录; - 匹配条件:检查 scope、project、path、operation 和 phase;
- 应用依据:查看
whyApplied、delivery 和 application outcome。

