外观
一条记忆如何写进去?
项目版本说明
这些问答整合历史设计与实现资料;当前 main 分支 README 以工作包描述建设状态。具体能力、实验数据与设计目标的边界见项目状态与证据。
标准回答
外部请求先变成可追踪的操作,后台处理器产生候选内容,Core 再校验并完成正式写入。
先认清 Operation 和 Task
**Operation:**用户发起的一次完整操作,例如“记住这个网页”。**Task:**完成该操作的一项内部工作,例如抓取、抽取、向量化。
一个操作可以拆成多项有前后依赖的任务。所有任务加起来形成一张有向无环图,简称DAG。类比 Android:提交一项完整后台工作,内部再组织若干有顺序或可并行的步骤;这里涉及跨进程与持久化,机制比进程内线程池更完整。
以记住网页为例
- **Capture:**取得资料,建立原始资源与事件记录。
- **Extract:**提取可长期保留的候选陈述。
- **Concept / Embed:**进行概念处理和向量化,部分步骤可并行。
- **Consolidate:**整合已有内容与新内容,减少重复或处理关系。
- **Generalize:**从具体信息中形成更一般的候选结论。
这是架构文档中的示例任务链,不意味着每一种写入请求都必须跑完全部步骤。
候选结果为什么不能直接入库
模型可能提取错,处理器也可能存在缺陷。更严重的是,计算期间权限或来源已经变化。处理器拿到输入时可以用,不代表交结果时仍然可以用。
因此处理器不能直接连接数据库,也不能自行写成权威记忆。它只交候选结果,Core 校验协议与结构、任务身份、来源、权限和策略,并按任务类型完成幂等写入。这一步叫Trusted Commit。
可信写入的准确含义
它保证写入经过平台控制与校验,不保证模型生成的语义一定真实。当前抽取实现把新陈述先置为 suggested,后续确认或策略提升才改变其事实状态。
“已接收”不等于“已经记住”
请求被接受后,操作可能仍在排队或处理中。客户端需要查看操作状态,判断最终成功、失败或需要重试。后台任务的失败不会把已经接受的那个 HTTP 响应重新变成失败响应。
自查:我应该如何用一句话解释 Trusted Commit?
“模型只提交候选结果,由核心服务检查权限、来源和数据约束,再按可重试、避免重复副作用的方式写入。”
内容来源
- EachOf Wiki · 记忆与上下文 · 原条目
write