外观
如何理解从概念走到仓库?
项目版本说明
这些问答整合历史设计与实现资料;当前 main 分支 README 以工作包描述建设状态。具体能力、实验数据与设计目标的边界见项目状态与证据。
标准回答
第一次读仓库,只追三个问题:候选在哪里被接受、记忆在哪里被返回、来源变化在哪里让旧内容失效。
不要从所有目录一起读起
| 顺序 | 文件 / 目录 | 重点问题 |
|---|---|---|
| 1 | README.md | 系统边界、三个对象和目录分工是什么? |
| 2 | architecture/overview.md | 哪些是不允许绕过的系统约束? |
| 3 | operations/commit.go | 候选按什么任务种类分发,怎么进入正式提交? |
| 4 | operations/candidate_refs.go | 提交时怎样检查来源快照与当前状态? |
| 5 | api/v1/handlers_memories.go | Recall 请求入口怎样取得调用者和参数? |
| 6 | memory/service.go | RecallProjection 如何组织受控返回? |
| 7 | ask/current_state.go | 答案相关内容怎样检查当前有效性? |
| 8 | product/continuity.md | 跨会话投影和宿主接入有哪些明确边界? |
写入路径:先读这几个位置
DefaultCommitter.Commit先验证候选 JSON,再根据任务种类分发;commitExtract把抽取出来的陈述置为suggested,并采用确定性标识处理重复写入。
继续看answerSupportingClaims:它在答案提交时检查引用的来源与记忆,过滤不可用依据,并调用IsClaimInferenceCurrent检查推导是否仍然当前有效。
语义版本:重点看什么
candidate_refs.go中存在对来源快照SemanticRevision与当前记忆版本的比较。找出错误ErrInferenceNeedsReprojection的返回条件,再追调用者怎样重投影或重试。
不要只找到一个函数名就认定所有路径都安全。一次完整代码走查应把 HTTP、MCP、缓存、导出等实际相关读取路径分别列出来,查看它们是否复用或补足必要校验。
读不懂 Go 时,先找“边界”
- **输入:**谁调用?参数来自用户、任务,还是处理器?
- **状态:**读了哪些当前记录?是否可能并发变化?
- **校验:**什么条件返回错误、跳过或重试?
- **写入:**哪些字段被修改?重复执行会怎样?
- **输出:**返回事实、候选、状态,还是上下文投影?
本次核对到什么程度
读取了 README、产品与架构文档、查询向量服务说明、完整提交实现和评估调查;通过代码搜索核对了候选来源与当前状态检查入口。没有对所有模块做完整审计,也没有重新运行仓库。
内容来源
- EachOf Wiki · 记忆与上下文 · 原条目
code