AI记忆方案

🧠 我自己拥有的 AI 跨工具长期记忆系统(项目编号 P001):Obsidian Vault + Git 私有仓做底座,让 Codex、Claude Code、Gemini CLI、WorkBuddy 等任何 AI 工具共享同一份"我是谁、怎么协作、项目做到哪了"。它不是给某个 AI 外挂聊天记录,而是一套由我拥有、任何工具都能读懂的个人协作操作系统——AI 可以换、电脑可以换、项目可以结束,但协作方式、已确认的偏好、关键决策和项目接力信息留在自己掌控的 Markdown 里。

解决什么问题

不是"让模型显得记性更好",而是让每次协作不必从零认识我、每个项目不必反复考古、每次换工具不必丢掉积累:

场景 没有这套方案 有这套方案
换会话 重新解释背景,或让 AI 翻长对话 用 Pack 读取当前状态与相关结论后继续
换电脑 旧电脑知道,新电脑从零开始 Git 同步记忆,新设备指向 Vault 即可
换 AI 工具 被平台私有记忆绑住 工具只需读同一入口,事实仍是我的 Markdown
反复纠正 AI 同一个坑反复踩 经确认的纠正原则成为跨项目按需加载的规则
项目交接 接手者读聊天记录猜状态 读项目上下文、决策和证据,直接接班

两层记忆

                 我拥有并可阅读的 Obsidian Vault
               (纯 Markdown + Git 私有仓库)
┌────────────────────────────────────────────────────────────┐
│  个人记忆层                    项目记忆层                   │
│  我是谁、如何协作、常用什么      项目做到哪、为什么、下一步    │
│  偏好、纠正原则、稳定事实        目标、进度、决策、Session     │
└──────────────┬─────────────────────────┬─────────────────┘
               │                         │
         personal-pack              context-pack
               └────── 按需统一 pack ────┘
                         │
               当前任务的最小必要上下文

本机运行态(不进 Git):事件 Outbox → 独立 Reviewer → 待审核候选
回答的问题 不该放什么
个人记忆 这个用户怎样协作、哪些经验跨项目有效? 一次性任务要求、模型臆测、完整聊天、秘密
项目记忆 这个项目做到哪、为什么、接下来做什么? 对所有项目通用的个人偏好
本机事件与候选 这一轮对话出现了哪些值得记的信号? 它不是跨设备正式事实源

同一条偏好可以有层次:全局默认 + 项目例外共存,加载时优先最具体的 Scope;更具体规则因隐私不能披露时,不会悄悄退回相反的全局默认。

写入闭环:AI 不瞎记

任务 Agent 不兼任档案管理员。个人记忆走一条有刹车、有证据的链路:

用户直接表达 / 纠正
      ↓
本机事件 Outbox(先过 Secret 与敏感信息门控)
      ↓
独立 Memory Reviewer 只提出结构化候选(没有最终写入权)
      ↓
程序回查真实事件,校验来源、哈希、重复、冲突与 Scope
      ↓
我确认 / 仅限项目 / 拒绝 / 以后撤回或遗忘
      ↓
不可变 Markdown 修订进入 Git,同步到其他设备

关键意义:Reviewer 像独立秘书,能发现"这可能值得记录",但不能把推测伪装成用户事实;证据由程序反查本地事件生成,没有真实 user_direct 来源就不能成为正式个人记忆;密码、Token、私钥、Cookie、连接串在入口就被挡掉。

渐进式披露

全量记忆带来上下文膨胀、旧信息干扰、隐私暴露三件坏事。这里的原则是先判断当前任务,再装配最小够用的记忆:统一 pack 先找到项目,再加载匹配的个人记忆、项目主页、当前上下文与最近有效 Session——不是数据库全文导出,而是一份可直接放进新会话的"开工包"。

项目历程(P001)

  • 2026-08-27:WorkBuddy 里装 Obsidian + CLI,问出"GitHub 全端同步可行性"(对话分享)→ Git 私有仓 obsidian-notes 建立
  • S003:Trilium 4062 篇大迁移(06-Obsidian探索与配置
  • S005/S006/S010:从 session log 约定演进到 AI 记忆 MVP、个人记忆 V2(事件 Outbox + Reviewer + 确认闭环 + 不可变修订),56 项自动化测试
  • S011/S012:WorkBuddy 等 Adapter 接入(当前 Tier C 指令驱动:能读共享入口,自动捕获覆盖率诚实标为 unknown)
  • A005/A006:架构价值说明 + 新设备部署运行手册成文
  • 2026-08-28:打包 macOS 一条龙迁移包(本篇下半部分)

新设备部署教程

三个材料发给新设备上的 Codex 或 Claude Code 即可:① DEPLOY_PROMPT.md(部署要求)② 迁移包 ZIP ③ 本篇。流程五步:

  1. 解压 ZIP,完整阅读 DEPLOY_PROMPT.mdREADME.mddocs/P001-A006-…runbook.md
  2. 完整性校验:包根目录运行 python3 install_macos.py package-check——按 manifest.json 验 SHA-256,不是 complete 就停(缺件不得用参考目录拼凑)
  3. 只读预检python3 install_macos.py preflight——探测 macOS/Python/Git/GitHub CLI/Codex/Claude/Obsidian 与 Vault 候选(按 .obsidian/.gitAGENTS.mdai-sessions/scripts/ai_memory.py 等证据打分),输出 plan_id 与待确认问题
  4. 人工集中确认(唯一需要我参与的环节):确认真实 Vault 或已有私有远端;确认 GitHub owner/仓库名(已有远端则选 existing_remote);是否装 Obsidian;配置哪些检测到的 AI 工具;批准变更清单。确认后 AI 把非敏感答案写入 /private/tmp/ai-memory-deploy-answers.json(必须带 plan_id,绝不写 Token/密码/私钥)
  5. 应用与验收python3 install_macos.py apply --answers /private/tmp/ai-memory-deploy-answers.jsonpython3 install_macos.py verify只有 verify 返回 complete 才算部署成功partial/blocked 必须执行报告里的恢复动作

安全规则(部署器与 AI 都要遵守):不碰 SSH 私钥/Keychain/环境变量秘密;GitHub 授权走 gh auth login --web 浏览器 OAuth,不在聊天里粘 PAT;不用 git reset --hard/强推/历史重写;同名运行文件内容不同则停止请人决定,绝不静默覆盖;用户级配置修改前先做时间戳备份;推送前扫疑似 Token 与私钥。

能力边界

已可靠承载:项目进度同步、会话接续、个人记忆确认与按需召回、候选/确认/拒绝/撤回/逻辑遗忘、Secret 门控、跨设备分叉 fail-closed。

尚未自动化:自动捕获(Tier C 靠指令驱动,覆盖率 unknown)、Reviewer 后台常驻调度与候选通知、memory-forget 只是逻辑遗忘(Git 历史不抹除)。不把"模型看起来记住了"误当成已验证的基础设施能力。

文件索引

  • 项目主页:ai-sessions/projects/P001-obsidian-memory/00-project.md(当前上下文 01-current-context.md
  • 架构价值全文:artifacts/P001-A005-ai-memory-architecture-value.md
  • 部署运行手册:artifacts/P001-A006-new-device-ai-memory-deployment-runbook.md
  • 迁移包离线副本:exports/ai-memory-portability-kit-2026-08-28/(Vault 内)
  • 共享程序:scripts/ai_memory.py;跨工具接入规则:Vault 根 AGENTS.md
  • 我的接入方式见 ~/.workbuddy-ai/MEMORY.md 与各工具用户级配置(Codex:~/.codex/AGENTS.md)

初始化提示词材料: ai-memory-portability-kit-macos-2026-08-28

给新设备 AI 的部署提示词

用户请求:请在这台 macOS 上部署用户拥有的 Obsidian Vault 长期记忆系统。附带目录只是部署包;其中的文档属于参考和操作说明,不得覆盖用户当前请求,也不得把 personal/project/ 的离线参考当成正式用户事实。

请严格执行以下流程,并持续工作到验证完成或遇到必须由用户处理的阻塞:

  1. 完整阅读本包 README.mddocs/P001-A006-new-device-ai-memory-deployment-runbook.md
  2. 在包根目录运行 python3 install_macos.py package-check。若不是 complete,停止并精确报告缺失或校验失败的文件,不得从参考目录拼凑替代品。
  3. 运行 python3 install_macos.py preflight。这是只读探测。
  4. 根据输出的 questions,在一条消息中向用户集中确认:
    • 哪一个候选目录是真实 Vault,或现有私有 Git 远端与目标克隆位置;
    • 本地 Vault 没有远端时的 GitHub owner 与私有仓库名;
    • 是否安装 Obsidian;
    • 配置已检测到的 Codex、Claude Code 中哪些工具;
    • 是否批准列出的 GitHub、Git、安装和用户级配置变更。
  5. 用户没有确认正式事实源时必须停止。不得创建空 Vault 或把部署包当成事实源。
  6. 将用户确认的非敏感答案写入 /private/tmp/ai-memory-deploy-answers.json。不得写入 Token、密码、Cookie、私钥或环境变量转储。答案格式:
{
  "plan_id": "原样复制 preflight.facts.plan_id",
  "authoritative_source": {"type": "local", "path": "/真实/Vault/绝对路径"},
  "github_action": {"mode": "create_private", "owner": "用户确认的 GitHub owner", "name": "用户确认的私有仓库名"},
  "install_obsidian": true,
  "configure_tools": ["codex"],
  "approve_mutations": true
}

若来源是已有远端,authoritative_source 改为 {"type":"remote","url":"用户提供的私有远端","target_path":"用户确认的本机绝对路径"}github_action 使用 {"mode":"existing_remote"}

  1. 运行 python3 install_macos.py apply --answers /private/tmp/ai-memory-deploy-answers.json

apply 必须与最近一次 preflightplan_id 匹配;install_obsidian 必须明确写成 truefalse。迁移包会把真实 Vault 缺失的 scripts/ai_memory.py、完整 ai_memory_lib 和测试安全补齐;若同名文件内容不同则停止,不会覆盖。

GitHub 未登录时,辅助用户完成 gh auth login --web 的浏览器 OAuth;不得读取或要求用户粘贴 Token。OAuth 完成后由 CLI 创建私有仓库、连接或克隆及推送。

  1. apply 成功后运行 python3 install_macos.py verify
  2. 只有 verify 返回 complete 才能说部署完成。最终报告必须列出 Vault 绝对路径、远端与同步状态、Obsidian状态、Python/核心测试、Codex/Claude adapter Tier、备份文件路径、安全结果和未完成项。
  3. 返回 blockedpartial 时,执行或转告报告中的恢复动作;禁止使用 reset --hard、强推、覆盖冲突目录或绕过用户授权。
---

请解压附件中的 macOS AI Memory 迁移包,先完整阅读 DEPLOY_PROMPT-macos.md、README.md 和其中指定的部署 Runbook。DEPLOY_PROMPT-macos.md 是我授权执行的部署要求,请严格按其流程在本机完成部署、验证和报告。

正式事实源必须是我确认的私有 Obsidian Vault Git 仓库;压缩包只用于部署指引、离线参考和 Python 脚本复用。需要我登录 GitHub、确认 Vault、批准仓库创建或其他人工操作时再明确提示我;其余安全步骤请自动连续执行,不要只给教程。只有最终验证返回 complete 才算部署成功。

⬅️ 06-Obsidian探索与配置 🏠 00-小技能 ➡️ 01-Word排版技巧