用 Obsidian 做 AI Agent 的长期记忆中枢:架构解析与实践指南
一张架构图,揭示了 AI 助手"记住一切"背后的完整信息流。
为什么 AI Agent 需要长期记忆?
大语言模型本身是无状态的——每次对话结束,上下文清空,一切归零。
这是个根本性缺陷:你今天告诉它你的偏好,明天再开一个新对话,它对你一无所知。要让 AI 助手真正"懂你",必须在模型外面搭一套持久化记忆系统。
有人用数据库,有人用向量检索,有人用纯文本文件。而这套架构选择了一个出人意料却极其务实的方案:Obsidian Vault。
架构全景:三层信息流
整套系统分为三层,信息从外向内流动,再通过反馈回路闭环。
外部数据源 → AI Agent(Hermes)→ Obsidian Vault → 反馈回 AI第一层:外部数据源
五类外部 API 持续向系统注入实时数据:
| 数据源 | API | 用途 |
|---|---|---|
| 日历 | Google Calendar | 今日日程、待办提醒 |
| 任务 | Todoist API | 任务清单、优先级 |
| 股票 | Yahoo Finance | 行情、涨跌、情绪分类 |
| 邮件 | Email API | 重要邮件摘要 |
| 天气 | OpenWeather | 当日天气、穿搭建议 |
这些数据不是手动输入的,而是由**定时任务(Cron Jobs)**自动拉取,写入 Vault。
第二层:AI Agent 核心
AI Agent(图中称为 Hermes Agent)包含四个组件:
1. Cron Jobs — 定时自动化
- 早报(6:50 AM):拉取 Todoist + Google Calendar,生成当日 daily note,写入 Vault;7:00 AM 第二个 Cron 读取缓存,格式化后推送到 Telegram。
- 财报(9:00 AM):爬取 Yahoo Finance,按 ticker 提取价格、涨跌幅、新闻标题,自动分类牛/中性/熊情绪,推送表格到 Telegram。
2. Skills Library — 技能库
- 存储 150+ 可复用工作流
- 覆盖:网页搜索、发布博客、控制智能家居、运行代码等
- Skills 可以直接读写 Vault,实现跨会话的工作流持久化
3. Memory Tool — 会话记忆
- 每次对话开始时,将9K 字符的精华记忆注入 system prompt
- 存储用户偏好、环境信息、已知 quirks 等稳定事实
- 当记忆接近 67% 容量上限时,触发记忆迁移流水线
4. Chat Interface — 交互入口
- 支持 Telegram 和 CLI 双入口
- 是唯一一个接收 Vault反向反馈的组件
- AI 可在对话中按需查询 Vault 中的历史记录和文档
第三层:Obsidian Vault
Vault 是整套架构的"持久化大脑",组织结构如下:
Vault/ ├── System/ # 稳定参考资料 │ ├── context.md # 当前环境上下文 │ ├── preferences.md # 用户偏好 │ └── environment.md # 系统配置 ├── Daily/ # 可检索的时间线 │ ├── 2026-04-23.md │ ├── 2026-04-22.md │ └── ... ├── Work/ # 工作记录 │ ├── Business-A/ │ ├── Business-B/ │ └── Reports/ └── Personal/ # 个人追踪 ├── Finance/ ├── Health/ └── Projects/记忆迁移流水线:核心设计亮点
这是整套架构最精妙的部分,解决了一个棘手问题:热记忆有限,如何不丢失重要信息?
Hot Memory(9K,每轮注入) ↓ 达到 67% 容量 Stable Vault Files(按需检索) ↓ AI 需要时 On-demand Lookup → 回注入对话上下文三段式设计的逻辑:
工作记忆(Hot Memory):每轮对话都注入的 9K 字符,相当于人类的短期记忆,存放最近、最常用的信息。
迁移触发(67% 阈值):当热记忆快满时,系统将"已稳定、不常变动"的事实迁移到 Vault 文件。这不是简单的 overflow,而是有意识的知识分层。
按需检索(On-demand Lookup):AI 在对话中可以主动查询 Vault,拉取特定历史记录或参考文档,实现"想起来了"的效果。
这套设计的本质是模拟人类记忆的工作记忆 + 长期记忆分层模型,用工程手段在 LLM 的无状态架构上打了一个补丁。
实践指南:如何复刻这套架构
Step 1:初始化 Obsidian Vault
mkdir-p~/vault/{System,Daily,Work,Personal}# 创建核心系统文件touch~/vault/System/context.mdtouch~/vault/System/preferences.mdtouch~/vault/System/environment.md在preferences.md里写下你的基本偏好(语言、时区、工作习惯等),这将成为 AI 每轮注入的基础素材。
Step 2:配置定时任务 Cron Jobs
以早报为例,设置两个 Cron:
# cron 1: 06:50 — 拉取数据,生成 daily noteimportdatetimeimportrequestsdefgenerate_daily_note():today=datetime.date.today().isoformat()# 拉取 Todoist 任务tasks=fetch_todoist_tasks()# 拉取 Google Calendar 事件events=fetch_calendar_events()note_content=f"""#{today}## 今日任务{format_tasks(tasks)}## 日程安排{format_events(events)}"""withopen(f"~/vault/Daily/{today}.md","w")asf:f.write(note_content)# cron 2: 07:00 — 读取缓存,推送 Telegramdefsend_morning_briefing():today=datetime.date.today().isoformat()withopen(f"~/vault/Daily/{today}.md")asf:content=f.read()send_to_telegram(format_briefing(content))Step 3:设计记忆注入格式
Hot Memory 的 9K 字符需要精心设计,建议分区:
## USER PROFILE - 姓名、角色、偏好语言 - 工作习惯、时区 ## ENVIRONMENT - 系统路径、工具配置 - API key 位置(只记路径,不记值) ## ACTIVE PROJECTS - 当前在做的项目 - 关键决策和进展 ## QUIRKS & LESSONS - 工具的已知 bug 和绕过方式 - 用户的纠正记录(不要再做 X,要做 Y)Step 4:技能库组织
将可复用的工作流封装为独立 Skill 文件,每个 Skill 包含:
--- name: skill-name description: 一句话描述 --- # 触发条件 什么情况下用这个 skill # 步骤 1. 具体操作步骤 2. 关键命令 # 注意事项 已知坑点Step 5:实现反向查询(On-demand Lookup)
当 AI 需要查询 Vault 时,通过工具调用实现:
defsearch_vault(query:str,path:str="~/vault")->str:"""搜索 Obsidian Vault 中的内容"""importsubprocess result=subprocess.run(["rg","-l","--max-count=5",query,path],capture_output=True,text=True)files=result.stdout.strip().split("\n")contents=[]forfinfiles[:3]:# 最多返回3个文件withopen(f)asfp:contents.append(f"##{f}\n{fp.read()[:2000]}")return"\n\n".join(contents)这套架构的本质思想
看完整张图,有一个核心洞察值得单独说:
AI Agent 的记忆问题,本质上是一个信息架构问题,而不是模型能力问题。
Obsidian 之所以适合做记忆后端,不是因为它有什么神奇的技术,而是因为它的核心设计哲学——纯文本、本地优先、双向链接——天然契合 AI 的信息消费方式。
- 纯文本 = LLM 可直接读取,无需解析
- 本地优先 = 延迟低,无网络依赖
- 文件夹结构 = 天然的信息分层,对应记忆的冷热分层
换句话说:用 Obsidian 做 AI 记忆后端,是把人类知识管理的最佳实践,嫁接到了 AI Agent 的工程架构上。
这也是为什么它比向量数据库方案更直觉友好——你可以直接打开 Obsidian 看到 AI 的"大脑"里存了什么,随时编辑、随时理解。
小结
| 组件 | 作用 | 对应人类记忆 |
|---|---|---|
| Hot Memory(9K) | 每轮注入的核心上下文 | 工作记忆 |
| Daily Notes | 每日自动生成的时间线 | 日记/情节记忆 |
| System/ 文件 | 稳定的参考资料 | 语义记忆 |
| Skills Library | 可复用的程序性知识 | 程序性记忆 |
| On-demand Lookup | 按需检索历史 | 提取式回忆 |
这不只是一套工具组合,而是一种关于"AI 应该如何记忆"的完整思考框架。
如果你正在构建自己的 AI 助手,这套架构值得认真参考。
参考架构来源:Reddit r/ObsidianMD,原帖展示了完整的 Obsidian + Hermes Agent 集成方案。