catalog/repos/adamtylerlynch--obsidian-agent-memory-skills.md

12 KiB
Raw Permalink Blame History

Obsidian 持久化智能体记忆

智能体 Obsidian 知识库 记忆管理 Claude Code

obs-memory — 基于 Obsidian 的智能体持久记忆

通过 Obsidian 知识库,为你的编程智能体提供跨会话的持久记忆。

智能体在会话开始时自动定位上下文,通过图谱遍历导航项目架构,将发现写回知识库,并支持创建会话摘要、脚手架项目、搜索知识库内容以及管理组件关系等命令。

兼容所有支持 Agent Skills 规范的智能体 —— Claude Code、Cursor、Cline、Windsurf、GitHub Copilot 以及 35+ 更多

功能特性

  • 自动会话定向 — 会话开始时无需提示,自动读取 TODO 和项目概览
  • CLI 优先的图谱遍历 — 优先使用 Obsidian CLI 读取属性、反向链接、链接、标签和搜索,而非直接读取文件
  • 双向关系管理relate 命令管理 depends-on/depended-on-byextends/extended-byimplements/implemented-byconsumes/consumed-by,支持 BFS 树遍历
  • 结构化查询lookup 子命令支持依赖项、消费者、关联笔记、类型/层级筛选、关键文件和全文搜索
  • 自动行为 — 会话结束检测、组件发现提示、首次运行引导
  • 项目分析analyze 命令扫描仓库,从 README、CLAUDE.md、ADR 和源码结构中提取内容填充知识库
  • Token 优化 — 前置 frontmatter 扫描,优先 CLI 而非文件读取,范围化导航

安装

通过 skills.sh 安装(推荐)

npx skills add adamtylerlynch/obsidian-agent-memory-skills

安装后技能立即对智能体可用。

通过 Claude Code 插件安装(仅限 Claude Code

git clone https://github.com/adamtylerlynch/obsidian-agent-memory-skills.git \
  ~/.claude/plugins/cache/obs-memory

# 或从本地目录创建符号链接
ln -s /path/to/obsidian-agent-memory-skills ~/.claude/plugins/cache/obs-memory

初始化知识库

安装完成后,让智能体初始化知识库:

Initialize my Obsidian memory vault

或在 Claude Code 中:

/obs init

或直接运行安装脚本:

./setup.sh ~/Documents/AgentMemory

此命令会创建具有所需结构、模板和 Obsidian 配置的知识库。若当前处于 git 仓库中,init 还会自动为当前项目生成脚手架。完成后,在 Obsidian 中打开知识库目录即可。

知识库路径配置

技能按以下优先级自动解析知识库路径:

  1. OBSIDIAN_VAULT_PATH 环境变量(最高优先级)
  2. 从智能体配置中解析(查找 "Obsidian Knowledge Vault" 部分)
  3. ~/Documents/AgentMemory(默认值)

在 shell 配置文件中添加以下内容可设置环境变量:

export OBSIDIAN_VAULT_PATH="$HOME/Documents/AgentMemory"

内容说明

主动技能:obs-memory

当智能体检测到与知识库相关的上下文时自动加载,处理以下内容:

  • 会话开始定向 — 读取 TODO 和项目概览(最多 2 个文件)
  • 项目自动检测 — 将 git 仓库名与知识库项目进行匹配
  • 图谱导航 — 按需跟踪 wikilinks从不批量读取
  • 知识写入 — 创建组件笔记、ADR、模式和领域知识
  • 关系管理 — 使用 BFS 树遍历进行双向依赖跟踪
  • Token 优化 — 前置 frontmatter 扫描CLI 查询,范围化读取

自动行为

无需显式命令即可触发:

  • 会话开始自动从知识库定向TODO + 项目概览)
  • 会话结束信号:当你说"done"或"wrapping up"时,提示写入会话摘要
  • 组件发现:当智能体深度分析一个未归档的组件时,提示创建知识库笔记
  • 首次运行:引导完成 init 并自动为当前项目生成脚手架

命令列表

命令 说明
init [path] 从内置模板初始化新知识库
analyze 分析当前项目并用填充内容更新知识库
recap 根据 git 历史写入会话摘要,更新 TODO
project [name] 在知识库中创建新的(空)项目脚手架
note component [name] 从模板创建组件笔记
note adr [title] 创建架构决策记录
note pattern [name] 创建模式笔记
todo [action] 查看和更新项目 TODO
lookup deps <name> 查询某组件的依赖项
lookup consumers <name> 查询反向依赖
lookup related <name> 所有关联笔记(双向)
lookup type <type> [project] 按类型查找笔记
lookup layer <layer> [project] 按架构层级查找组件
lookup files <component> 组件的关键文件
lookup <freetext> 知识库全文搜索
relate <source> <target> [type] 创建双向关系
relate show <name> 显示某笔记的所有关系
relate tree <name> [depth] BFS 遍历依赖树

在 Claude Code 中,这些命令以 /obs <command> 形式调用。在其他智能体中,使用自然语言描述(例如"将会话摘要写入知识库")。

智能体兼容性

智能体 工作方式
Claude Code 完全支持 — 主动技能 + /obs 斜杠命令
Cursor 通过 skills.sh 加载技能,响应自然语言命令
Cline 通过 skills.sh 加载技能,响应自然语言命令
Windsurf 通过 skills.sh 加载技能,响应自然语言命令
GitHub Copilot 通过 skills.sh 加载技能,响应自然语言命令
其他 任何支持 Agent Skills 规范 的智能体

对于不支持 skills.sh 的智能体,可手动将 skills/obs-memory/SKILL.md 的内容添加到智能体的指令文件(如 .cursorrules.windsurfrules.clinerules)。

使用示例

自动定向(主动触发)

在任意项目目录中开始会话。如果该项目在知识库中有笔记,智能体会自动:

  1. 读取你的活跃 TODO
  2. 读取项目概览
  3. 获取架构、组件和模式的完整上下文

会话结束摘要

让智能体写入会话摘要(或在 Claude Code 中使用 /obs recap)。智能体会检查 git 日志和 diff写入会话笔记并更新 TODO。

创建新项目脚手架

让智能体在知识库中创建项目(或在 Claude Code 中使用 /obs project my-app)。创建空白脚手架如下:

projects/my-app/
├── my-app.md          # 项目概览(占位内容)
├── architecture/
├── components/
└── patterns/

分析项目

在 Claude Code 中运行 /obs analyze(或说"分析此项目并填充知识库")。智能体扫描仓库中的 README、CLAUDE.md、包清单、ADR 和源码结构,然后写入填充好的知识库笔记:

projects/my-app/
├── my-app.md          # 含架构、依赖、领域链接的完整概览
├── architecture/
│   └── ADR-0001 Use React Query.md    # 从仓库导入
├── components/
│   ├── API Layer.md                    # 从源码结构提取
│   └── Auth Module.md
└── patterns/
    ├── Error Handling.md              # 从 CLAUDE.md 约定提取
    └── Testing Strategy.md

搜索知识库

让智能体搜索知识库(或在 Claude Code 中使用 /obs lookup PKCS12)。支持目标子命令:

/obs lookup deps AuthMiddleware        # 它依赖什么?
/obs lookup consumers AuthMiddleware   # 什么依赖它?
/obs lookup type component my-app      # 项目中所有组件
/obs lookup layer api                  # 所有 API 层组件

管理关系

跟踪组件间的依赖关系(或在 Claude Code 中使用 /obs relate

/obs relate AuthMiddleware SessionStore              # depends-on默认
/obs relate AuthMiddleware OAuth2Provider implements  # implements 关系
/obs relate show AuthMiddleware                       # 查看所有关系
/obs relate tree AuthMiddleware 3                     # 依赖树,深度 3

工作原理

┌─────────────────────────────────────────────────┐
│ 会话开始                                         │
│   智能体读取TODO → 项目概览                     │
│   2 个文件,约 100 行 — 最小 Token 消耗)       │
├─────────────────────────────────────────────────┤
│ 工作过程中                                       │
│   项目概览 ──链接──→ 组件笔记                     │
│      │                   │                       │
│      └──链接──→ 模式  ──链接──→ 领域知识          │
│                  笔记                            │
│   智能体按需跟踪链接                              │
├─────────────────────────────────────────────────┤
│ 会话结束                                         │
│   智能体写入:会话摘要,更新 TODO               │
│   创建/更新组件和模式笔记                         │
└─────────────────────────────────────────────────┘

知识库结构

知识库初始化后的目录结构如下:

AgentMemory/
├── Home.md                           # 仪表盘
├── projects/
│   ├── Projects.md                   # 项目索引
│   └── {name}/
│       ├── {name}.md                 # 项目概览 — 智能体从这里开始
│       ├── architecture/             # ADR 和设计决策
│       ├── components/               # 各组件笔记
│       └── patterns/                 # 项目专属模式
├── domains/
│   ├── Domains.md                    # 领域索引
│   └── {tech}/                       # 跨项目知识
├── patterns/
│   └── Universal Patterns.md         # 语言无关的通用模式
├── sessions/
│   └── Session Log.md                # 会话时间线
├── todos/
│   └── Active TODOs.md               # 当前工作项
├── templates/                        # 笔记模板
│   ├── Project.md
│   ├── Component Note.md
│   ├── Session Note.md
│   └── Architecture Decision.md
└── inbox/                            # 未整理内容

包内容

obsidian-agent-memory-skills/
├── .claude-plugin/
│   └── plugin.json                   # 插件元数据Claude Code + skills.sh
├── skills/
│   └── obs-memory/
│       └── SKILL.md                  # 智能体无关的技能定义(唯一可信来源)
├── commands/
│   └── obs.md                        # Claude Code 斜杠命令(/obs
├── vault-template/                   # 内置知识库模板
│   ├── Home.md
│   ├── projects/Projects.md
│   ├── domains/Domains.md
│   ├── patterns/Universal Patterns.md
│   ├── sessions/Session Log.md
│   ├── todos/Active TODOs.md
│   └── templates/
│       ├── Project.md
│       ├── Component Note.md
│       ├── Session Note.md
│       └── Architecture Decision.md
├── setup.sh                          # Shell 知识库安装脚本
└── examples/
    └── populated-vault.md            # 实际使用后的知识库示例

许可证

MIT