跳到主要内容

Obsidian

在 Obsidian 库中读取、搜索、创建和编辑笔记。

技能元数据

来源内置(默认安装)
路径skills/note-taking/obsidian
平台linux, macos, windows

参考:完整的 SKILL.md

信息

以下是在此技能被触发时,Hermes 加载的完整技能定义。这是技能激活时智能体所看到的指令。

Obsidian 库

将此技能用于文件系统优先的 Obsidian 库工作:读取笔记、列出笔记、搜索笔记文件、创建笔记、追加内容以及添加 Wiki 链接。

库路径

在调用文件工具之前,请使用已知或已解析的库路径。

文档中记录的库路径约定是 OBSIDIAN_VAULT_PATH 环境变量,例如来自 ~/.hermes/.env。如果未设置,则使用 ~/Documents/Obsidian Vault

文件工具不会展开 shell 变量。不要将包含 $OBSIDIAN_VAULT_PATH 的路径传递给 read_filewrite_filepatchsearch_files;请先解析库路径并传递具体的绝对路径。库路径可能包含空格,这也是建议优先使用文件工具而非 shell 命令的另一个原因。

如果库路径未知,terminal 可用于解析 OBSIDIAN_VAULT_PATH 或检查回退路径是否存在。路径确定后,请切换回使用文件工具。

读取笔记

使用 read_file 和已解析的笔记绝对路径。这比 cat 更优,因为它提供了行号和分页功能。

列出笔记

使用 search_files,设置 target: "files" 和已解析的库路径。这比 findls 更优。

  • 要列出所有 Markdown 笔记,请在库路径下使用 pattern: "*.md"
  • 要列出子文件夹,请在该子文件夹的绝对路径下进行搜索。

搜索

对于文件名和内容搜索,都使用 search_files。这比 grepfindls 更优。

  • 对于文件名,使用 search_files,设置 target: "files" 和文件名 pattern
  • 对于笔记内容,使用 search_files,设置 target: "content",并将内容正则表达式作为 pattern,如果你想将匹配限制在 Markdown 笔记内,则加上 file_glob: "*.md"

创建笔记

使用 write_file,传入已解析的绝对路径和完整的 Markdown 内容。这比使用 shell 的 heredocs 或 echo 更优,因为它避免了 shell 引号问题并返回结构化结果。

追加到笔记

在不过于麻烦的情况下,优先使用原生文件工具工作流:

  • 使用 read_file 读取目标笔记。
  • 当有稳定上下文时(例如在现有标题后添加一节,或在已知的尾部块前追加),使用 patch 进行锚定追加。
  • 当重写整个笔记比构建脆弱的 patch 更清晰时,使用 write_file

对于使用 patch 的锚定追加,用“锚点 + 新内容”替换锚点。

对于没有稳定上下文的简单追加,如果这是最清晰安全的选项,terminal 是可接受的。

定向编辑

当当前内容为您提供稳定上下文时,使用 patch 进行集中的笔记更改。这比使用 shell 进行文本重写更优。

Wiki 链接

Obsidian 使用 [[Note Name]] 语法链接笔记。创建笔记时,请使用这些语法来链接相关内容。