2026/9/20 11:09:59

LifeOS Cortex 本地记忆 CLI:如何把文件型记忆做到可验证、隐私优先(完整指南)

LifeOS Cortex 本地记忆 CLI:如何把文件型记忆做到可验证、隐私优先(完整指南) LifeOS Cortex 本地记忆 CLI如何把文件型记忆做到可验证、隐私优先完整指南【免费下载链接】LifeOS⛰️ LifeOS — The universal AI Harness designed to move you from Current to Ideal state in both life and work.项目地址: https://gitcode.com/GitHub_Trending/pe/LifeOSLifeOS 是一个把从现状到理想状态装进本地 AI 工作流的个人操作系统而 Cortex 是它内置的LifeOS Cortex 本地记忆 CLI一条基于 Bun 的命令行工具直接在文件型记忆之上做本地、可验证的检索与受控写入。全程零向量索引、零守护进程、零网络服务——记忆文件还是那些 Markdown 和 JSONL只是多了一副能被核验的规矩。它是个什么东西记忆文件上的一台检索终端把~/.claude/LIFEOS/MEMORY想象成一个只放纸质卡片的档案室档案本体没有变Cortex 是在门口加的一台终端。你用自然语言问它它在本地用 BM25一种按词出现的稀有程度和密度给结果排名的经典文本检索算法翻完卡片把结果吐回给你。它提供的 8 个子命令分两类只读五件套status报告语料形状、search本地检索、timeline按时间轴展开、get按 ID 取完整记录、export把选中记录序列化为标准 payload 打印到 stdout不写任何文件变更两件套remember与propose唯一的写入口且写权限逐次授予、双重绑定外加rebuild一条只读的重建自证命令。它坚决不做的部分同样写在契约里没有 MCP 服务器或 HTTP 端点不被调用就不存在没有 Chroma、嵌入、向量索引一类的第二套记忆引擎没有跨设备或云端同步没有外部遥测搜索只回卡片绝不把整条记忆悄悄灌进你的上下文。走一遍真实请求一条 search 命令的完整旅程所有命令的形态都一样bun LIFEOS/TOOLS/Cortex.ts search 上周的健康指标基线 \ --type memory --from 2026-08-01 --page-size 5记忆根目录按四级优先级确定运行注入的memoryRoot→ 命令行--memory-root→ 环境变量CORTEX_MEMORY_ROOT→ 默认~/.claude/LIFEOS/MEMORY。顶层是符号链接没关系Cortex 会把它解析成真实目录并锁定为信任边界但锁定的根之下再出现符号链接、或任何路径解析逃逸出根一律以完整性错误拒绝。语料本身也有硬上限最多 1 万个文件、单文件 8 MiB、总量 128 MiB、记录 5 万条在读内容之前就先卡掉超规模语料。命令结束后stdout 上恰好一个JSON 对象永远长这样五个顶层字段多一个都不允许{schema:lifeos-cortex/v1,ok:true,command:search,data:{...},error:null}把它理解成信封正面只印五项——协议版本、成败、命令名、载荷、错误。失败时信封不变形只是ok变false、error里装下{code, message}。这套约定由 JSON Schema 固化命令内部每次构造结果前也会先过一遍自检。光能解析出 JSON 不等于成功退出码才是第二把钥匙退出码白话含义你该怎么做0成功读data1未预期的内部故障检查环境、保留信封报错3你点名的 ID或扩展根不存在/已过期核对 ID 与有效期4命令、选项或 payload 不合法或语料完整性不过关修输入完整性错误别硬闯5写授权不足或既有治理流程拒绝了变更补--allow-write治理拒绝请走审批选项解析是拒绝式的拼错选项名、重复传参、命令不适用某个选项都不会被默默忽略而是直接以 4 号错退回。隐私边界怎么守可疑即私有先扣再放行Cortex 的隐私边界靠一种类 HTML 标签声明这段是公开的 private这段绝不落盘或外发/private 这段又是公开的处理规则是典型的 fail-closed宁错杀、不放过思路嵌套的私有标签整体移除孤立的闭合标签按控制标记剥掉两侧公开文本保留开了头却没收尾从开标签处起整段抑制——宁可多藏不可漏任何长得像私有开标签但格式有病的构造插了控制字符、用了全角符号、丢了右尖括号都按不可信开头处理直接按私有抑制而不是尝试宽松解析净化不止作用于正文标题、名称、理由、会话出处、关联项等承载持久化语义的元数据同样递归清洗清洗后变空的必填字段直接拒收。这条净化链路的位置很讲究它跑在 reviewer 推断之前、调试/错误序列化之前、类型化条目路由之前以及 search / timeline / get / export / rebuild 的每一次规范读取之前——也就是说任何旧文件里已标记的内容在离开边界前都会被再洗一遍。同时 Cortex 说得也很直白原生 harness 的转录可能在 30 天保留期内仍含有private内容这超出它的管辖范围。Cortex 只保证自己经手的副本在推断、持久化、导出前被剥离标签是持久化与处理边界不是对上游日志、终端回显的清洗承诺。有效期窗口同理地保守valid_from含边界、valid_until不含缺失的边界视为开放而解析不出的时间戳直接判定无效不猜。如何自证可重建、无隐藏索引rebuild 与策略标记Markdown 与 JSONL 是唯一的规范源任何派生索引都定位成可丢弃的缓存永远不能反过来成为事实来源。rebuild命令就是给这个承诺做体检bun LIFEOS/TOOLS/Cortex.ts rebuild --from-canonical它把规范记录规范化后分别对规范视图和重建视图计算 SHA-256 摘要报告两者是否等价、记录数与indexes:[]。摘要相等证明的是记录视图可以被确定性重建命令本身不创建、不修改任何索引。缺 Markdown ID 的记录会拿到一个由路径派生的稳定 ID出处一律用相对规范根的路径记录——所以换机器、换根目录别名摘要不变。至于到底有没有偷偷建索引系统发布了一份标记文件 CORTEX_INDEX_POLICY.json内容就是policy: no-index-v1。这个标记的价值在于健康检查只验证标记存在、且没有索引清单就能把当前确实没有索引判为健康状态不需要为了证明没索引去遍历或哈希整个语料。三种状态各归各位标记与清单的状态健康判定标记在、无清单健康的no-index-v1基线两者都缺索引状态歧义仅告警index-evidence-missing标记格式错误 / 清单非法 / 索引字节与哈希对不上critical如果将来真出现一个合法的已采用索引清单它优先于 no-index 标记且索引文件的实际字节与哈希会被逐项比对。质量与运行状态怎么量得出两条证据链证据链一检索基准——证明的是披露成本不是换了算法带标签的查询集放在LIFEOS/MEMORY/BENCHMARKS/下标签由操作者在自己的语料上、首次跑基准前自行编写不随系统发布每行还需附带溯源声明证明期望 ID 来自真实 CLI 执行与人工核验。基准工具CortexBenchmark.ts有个刻意设计它直接导入生产代码里的排序器做测量而不是自带一套基准专用逻辑。每条带标签查询跑 25 次且每个样本只做一次生产排序同份排序结果共享给两种披露模式bm25-baseline把 top-5 完整记录全部序列化progressive只序列化 top-5 卡片抓取其中选中的第一条完整记录。排序质量被刻意保持完全一致被比较的是注入成本token 数、p95 延迟、峰值 RSS、后代进程数、语料盘上字节数。报告 schema 为lifeos-cortex-benchmark/v1落在操作者自己的MEMORY/BENCHMARKS/下文件名带版本不覆盖已有报告。向量索引的采用门槛也钉在这条链上当前vector_config为空。想上向量或混合索引前提是一份带标签报告证明了对渐进式 BM25 的检索质量提升且索引可规范重建、有独立文档化的磁盘与进程边界。token 用量降了但质量没证据——不构成采纳理由。证据链二运营健康检查——证据缺席时灯永远不绿运营健康不靠status那只报告语料形状而由另一个工具出机器可读报告bun LIFEOS/TOOLS/MemoryHealthCheck.ts --json报告给出overall判定、逐项证据、生效阈值、findings健康退出码 0/1/2 分别对应 ok/warn/critical。核心原则一句话拿不出证据的项目绝不自动记为健康。证据项默认阈值越界后果最近一次 reviewer 成功的新鲜度7 天陈旧 → WARN进行中 reviewer 运行的终行宽限10 分钟超时 → CRITICAL检索证据最新有效检索日志行24 小时缺失/陈旧 → WARN待审提案积压仅计pending行10 条超出 → WARN可观测性日志总量256 MiB超出 → WARN最老可观测性日志年龄30 天超出 → WARN已采用索引的新鲜度7 天超出 → WARN几处容易误读的细节最新的 reviewer 证据优先于历史成功——最近一次跑失败、解析失败、超时或 schema 不完整全部 critical格式坏掉的 JSONL 会被显式暴露而不是悄悄回退到上次成功未来时间戳不能当新鲜度用。阈值支持有限正数覆盖CORTEX_RETRIEVAL_STALE_MS等四个环境变量传入非法值不会产生比较失效而是给出一条 critical 的cortex-threshold-invalid。边界与上手它不做什么以及最小可用命令能力边界的负清单与契约一致供你判断选型无 MCP / HTTP / 任何网络接口无常驻进程或 sidecar无跨设备或云端同步无外部遥测无 CMEM / Chroma / SQLite FTS / 嵌入 / 向量索引不对所有 hook、通道、采集表面做自动接管不清洗原生 harness 转录搜索结果只给卡片不自动注入完整记录。最小可用姿势就两条——读bun LIFEOS/TOOLS/Cortex.ts search 你的问题 --type memory写身份与授权双绑定缺一即退出码 5bun LIFEOS/TOOLS/Cortex.ts remember {type:memory,content:...} \ --adapter claude --allow-writeremember只收memory/idea/knowledge三种类型化条目propose只收proposal类型不符在触碰持久化层之前就被拒绝。写入之后既有的变更分层、提案审批、审计日志、快照与收缩守卫保持权威地位治理拒绝即退出码 5不存在写了一半。适用前提需要 Bun 运行时与已部署的规范记忆根~/.claude/LIFEOS/MEMORY或CORTEX_MEMORY_ROOT指向的目录基准标签、检索日志、索引清单都是操作者本地资产不随开源仓库分发。所有契约细节以仓库LIFEOS/TOOLS/下的实现为准。延伸阅读记忆架构与策展分层MemorySystem.md隐私 span 与有效期实现CaptureEnvelope.ts健康证据与本地可观测性管线ObservabilitySystem.md进程内读/写适配器工厂CortexAdapter.ts【免费下载链接】LifeOS⛰️ LifeOS — The universal AI Harness designed to move you from Current to Ideal state in both life and work.项目地址: https://gitcode.com/GitHub_Trending/pe/LifeOS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考