用 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.md
touch ~/vault/System/preferences.md
touch ~/vault/System/environment.md
在 preferences.md 里写下你的基本偏好(语言、时区、工作习惯等),这将成为 AI 每轮注入的基础素材。
Step 2:配置定时任务 Cron Jobs
以早报为例,设置两个 Cron:
# cron 1: 06:50 — 拉取数据,生成 daily note
import datetime
import requests
def generate_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)}
"""
with open(f"~/vault/Daily/{today}.md", "w") as f:
f.write(note_content)
# cron 2: 07:00 — 读取缓存,推送 Telegram
def send_morning_briefing():
today = datetime.date.today().isoformat()
with open(f"~/vault/Daily/{today}.md") as f:
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 时,通过工具调用实现:
def search_vault(query: str, path: str = "~/vault") -> str:
"""搜索 Obsidian Vault 中的内容"""
import subprocess
result = subprocess.run(
["rg", "-l", "--max-count=5", query, path],
capture_output=True, text=True
)
files = result.stdout.strip().split("\n")
contents = []
for f in files[:3]: # 最多返回3个文件
with open(f) as fp:
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 集成方案。