项目概览与核心架构
本期视频由博主 Fahad Mirza 主持,旨在展示如何将 Hermes-Agent、Obsidian 和 Ollama 这三款工具无缝整合,构建一个完全本地化、免费且私密的自动化笔记系统。博主强调,这一组合允许用户在不依赖任何云端 API 的情况下,通过本地运行的语言模型实现笔记的搜索、读取和写入。整个系统运行在博主的 Ubuntu 服务器上,该服务器配备了一张 GPU 卡,用于支持 Ollama 本地模型的推理。博主指出,虽然可以使用任意选择的模型,但本演示中使用了 Screen 3.6 27 billion 参数量的模型,并配置了增加的 max tokens 以应对复杂任务。这一架构的核心优势在于数据完全掌握在用户手中,所有操作均在本地磁盘完成,无需暴露任何 API Key 给第三方服务。
"Search my notes, pull up what I need, write new ones for me. That's Hermit agent wired into Obsidian running on local model via Ollama."
环境准备与配置详解
在开始实际操作前,博主详细展示了配置过程。首先,Obsidian 被定义为一款本地优先的 Markdown 笔记应用,其核心是一个包含 Markdown 文件的文件夹(即 Vault)。Hermes-Agent 是一个开源的代理框架,赋予大语言模型使用工具、运行命令和处理文件的能力。博主创建了一个专用的 Hermes 配置文件,以确保该设置不会干扰其他模型配置文件。配置的关键步骤包括:
- 模型连接:设置本地模型通过 Ollama 的默认端口和 localhost 地址进行通信。
- 参数调整:针对 Screen 3.6 27 billion 模型,增加了 max tokens 限制。
- 工作目录:指定刚刚创建的 Obsidian Vault 文件夹路径。
- Vault 路径设置:明确告知 Obsidian 技能(Skill)Vault 的具体位置。
- API Key 占位符:由于 Ollama 不需要真实的 API Key,但 Hermes 要求该字段非空,因此博主设置了一个占位符值。
博主通过运行 OBS config show 命令验证了所有配置是否正确加载,确认 Vault 路径、模型配置及环境变量均无误,且没有因缺少 API Key 而报错。
"Hermis agent is an open-source agentic framework that gives any LLM local or cloud the ability to use tools, run commands, and work with files."
案例一:创建首个笔记
配置完成后,博主进行了第一个功能测试:使用 Hermes-Agent 创建笔记。他向代理发出指令,要求使用默认的 Obsidian 技能,在名为 llama.cpp 的笔记中写入一段简短的解释性文字,并确认文件是否成功写入。代理迅速响应,执行了以下步骤:
- 环境检查:代理首先检查环境变量是否设置正确,并从配置中成功读取了 Vault 路径。
- 文件操作:代理检测到目标文件不存在,因此执行了创建操作(在终端输出中显示为
+,表示新增内容)。 - 结果确认:代理成功在
basics.md文件中写入了内容,并确认文件已创建。
这一过程展示了代理如何自动解析自然语言指令,转化为具体的文件系统操作。博主指出,尽管这是一个较小的本地模型,效率可能不如云端大模型,但它能够准确理解意图并执行文件写入任务,证明了本地代理的可行性。
"The great thing is that you don't really have to even create it. And all I'm asking it to do is to create my first note in the default called as llama.cpp with a short paragraph explaining what llama.cpp is and then confirm the file was written."
案例二:搜索与读取笔记
第二个测试环节展示了代理的搜索与读取能力。博主要求代理在 Vault 中搜索提及 llama.cpp 的笔记,并将内容完整读取出来。代理再次成功调用 Obsidian 技能,执行了以下操作:
- 路径查找:代理首先搜索 Vault,找到了包含关键词的文件路径
basics.md。 - 内容读取:代理读取了该文件的完整内容。
- 多工具协作:代理使用了多个内部工具来协同完成搜索和读取任务,最终将笔记的全文返回给用户。
这一案例证明了代理不仅能写入数据,还能有效地检索和整合信息。博主强调,代理能够理解“搜索”这一抽象概念,并将其转化为具体的文件搜索命令,最终将结果以自然语言形式呈现,实现了从非结构化指令到结构化数据的转换。
"I'm asking it to use that skill to search my vault for any note mentioning llama.cpp. And it was able to find the path. That is great. And now it is able to search it. It says it's found matches. basics.md And now it is reading that note in full."
案例三:构建双向链接
第三个测试旨在展示代理如何构建 Obsidian 的双向链接网络。博主要求创建第二个笔记,并通过 Wiki 链接(即双括号 [[ ]])将其与第一个笔记关联起来。代理的执行过程如下:
- 创建新笔记:代理生成了第二个笔记的内容。
- 插入链接:代理在笔记中添加了指向第一个笔记的 Wiki 链接。
- 双重确认:代理确认两个文件均存在于 Vault 中。
博主注意到,由于使用的是较小的本地模型,代理在生成过程中可能进行了一些冗余操作(如两次写入文件),但最终结果完全正确。这表明,即使模型效率有限,只要逻辑正确,代理仍能准确执行复杂的文档结构任务。博主推测,如果使用更强大的模型,这一过程将更加简洁高效。
"You can see from the output that the agent has created a second note, added a wiki link back to the first. Those double brackets are how Obsidian connects notes, and then confirms both exist in the vault."
案例四:自动技能识别
最后一个测试展示了代理的智能技能识别能力。博主这次没有明确提及“Obsidian”或任何技能名称,只是简单地要求创建一篇关于“flux capacitor theory”的笔记。代理需要自行判断该任务属于笔记管理范畴,并自动加载 Obsidian 技能。代理的表现如下:
- 意图推断:代理未收到具体技能指令,但根据任务性质(创建笔记)自动推断出需要使用 Obsidian 技能。
- 路径自发现:代理在没有显式指定路径的情况下,自动从配置中获取了 Vault 路径。
- 内容生成与写入:代理快速生成了关于“flux capacitor theory”的简短段落,并将其写入新笔记中。
这一案例极具说服力,证明了代理具备高度的自主性。它不仅能执行显式指令,还能根据上下文自动选择最合适的工具,极大地简化了用户的使用流程。博主总结道,这种“无感”交互使得本地 AI 助手更加实用和自然。
"I'm not even mentioning any skill here. So, this time I'm not even uh taking the name of Obsidian. I'm just going to ask it for a note. The question is whether the agent figures out on its own that this is an Obsidian job and reaches for the right skill."
总结与优势分析
博主最后总结了 Hermes-Agent + Obsidian + Ollama 组合的核心价值。这一组合将普通的聊天模型转化为一个能够自主管理笔记的助手,具备搜索、读取和添加笔记的能力。其核心优势包括:
- 完全本地化:所有数据存储在本地 Markdown 文件中,无需云端 API Key,保障了隐私和安全。
- 免费开源:Hermes-Agent 和 Ollama 均为开源项目,Obsidian 个人使用免费,整体成本为零。
- 高度自动化:代理能够自动识别任务意图,加载相应技能,执行文件操作,无需用户手动干预每一步骤。
- 可扩展性:该系统可以集成到 Discord、Telegram 等平台,实现跨设备的笔记管理。
博主强调,只要提供清晰的输入,这个本地运行的笔记伙伴就能真正发挥作用,成为用户知识管理的得力助手。
"Hermes agent gives the model hands to actually do things, and this Obsidian gives it a clean local plain text home for everything it writes. Together, they turn a plain chat model into something that manages your notes for you, searching, reading, and adding to them on command."