如果你用过 Obsidian,这个场景大概不陌生:本来只想找个地方认真写点东西,结果一晚上都在挑主题、装插件、研究属性和同步。折腾完,笔记可能还没写几行。

这不能全怪 Obsidian。它厉害就厉害在足够开放,几乎什么样的工作流都能搭出来。但开放也意味着,产品没替你做的决定,最后都得自己做;系统搭好以后,也得自己维护。

到了 AI Agent 真正开始帮我们读资料、整理信息甚至改文件的今天,这套“先自己组装一套系统”的门槛显得更高了。

最近很火的 Tolaria 走了另一条路。它依然把内容存在本地 Markdown 里,却把双向链接、知识关系、Git 和 AI Agent 提前装进了同一个产品。选好一个 Vault,就能直接开始写,不必先看十篇“必装插件”教程。

一、AI 时代,为什么大家喜欢用 Obsidian

这几年有个挺有意思的变化:AI 没让笔记软件过时,反而让本地知识库重新重要了起来。

ChatGPT、Claude 很会回答问题,但一次对话终究只是一次对话。模型知道大量通用知识,却不知道你的项目为什么这样设计、半年前做过什么决定、某篇文章写到哪里,也不会天然保留你一路积累下来的素材。

真想让 AI 参与日常工作,光靠一段临时对话不够。它得有个地方,能随时翻到你的项目背景、旧决定和写到一半的素材。

Obsidian 恰好踩中了这个点。

一个 Obsidian Vault,说到底就是本地文件夹。笔记主要以 Markdown 文件保存,没有被锁进某个在线服务,也不依赖专有数据库。Obsidian 官方文档

这对人很友好:我们可以用编辑器、双向链接和关系图谱来阅读。对 AI Agent 也一样友好:Agent 可以直接搜索目录、读取 Markdown、修改文件。哪怕以后不用 Obsidian 了,这些内容照样能交给别的编辑器、脚本和模型。

社区里已经有开发者把 Obsidian Vault 当成 Agent 的上下文来源,接入 Claude Code、Codex 和其他 Agent 工作流。相关社区讨论

所以 AI 时代,大家重新喜欢上 Obsidian,未必是因为它的界面有多先进。它最值钱的其实是背后的本地 Markdown:人能读,Agent 也能读;软件可以换,文件还在。

二、Obsidian 的自由,也是一种负担

用得久的人都知道,Obsidian 的上限很高,起点却有点空。

第一次打开它,你面对的不是一套现成工作流,而是一连串选择题:目录怎么分、属性怎么写、日记和任务用什么插件、手机和电脑怎么同步。每道题都有很多答案,也就意味着每道题都可能让人继续研究半天。

插件又把这种选择放大了一层。Obsidian 官方社区目录已经收录数千个插件和数百个主题。Obsidian Community

日历、任务、数据库查询、Git、AI、写作发布,几乎每个需求都能找到对应的插件。可选项多到一定程度,问题就从“有没有”变成了“到底装哪一个”:功能会不会重叠,项目还在不在维护,升级之后会不会冲突,为什么电脑上好好的,到了手机上又是另一回事。

社区里经常有人讨论“插件装到多少算太多”,也有人从几十个一路精简到十几个甚至更少。社区讨论 插件多不一定会卡,但一旦出了性能或兼容问题,需要排查的范围肯定更大。Obsidian Forum 的性能案例

界面也是一样。直接说 Obsidian 的 UI “不好看”有些武断,它只是默认长得比较像一件工具。想要更统一、更精致的写作体验,往往还得挑主题、设置 Style Settings,或者自己写 CSS。社区里甚至有人试过大量主题,最后还是靠一小段自定义 CSS 调出了想要的效果。社区案例

同步也绕不开这套逻辑。官方 Obsidian Sync 最省心,但它是付费服务;Git、iCloud、Syncthing 等方案里,有些可以免费使用,不过省下的是费用,多出来的是配置、冲突处理和跨设备排障。Obsidian 同步说明

再加上社区插件本质上是运行在本地的第三方代码,启用之前还得确认自己是否信任对应开发者。插件安全说明

所以我不觉得 Obsidian 难用,它只是把选择权交得很彻底。

它像一块可以无限改装的工作台。Tolaria 想做的,则更像一张拆箱后就能开始工作的书桌。

Obsidian 自由组合与 Tolaria 默认整合的不同取舍

三、Tolaria 的开箱即用

我觉得 Tolaria 最聪明的一点,是没有为了显得全新,再发明一套新的文件格式。

笔记还是本地 Markdown,属性还是 YAML。它不依赖专有数据库,也不要求用户先注册 Tolaria 账号。第一次启动,可以打开官方准备的 Getting Started Vault、新建一个空知识库,也可以直接选择已有的 Markdown 目录。Tolaria 首次启动文档

变化在于,Tolaria 没把大部分基础能力留给插件。

块编辑器、双向链接、笔记类型、属性关系、不同视图、白板和 Git,都已经包含在产品里。打开之后就能用,不需要先列一张插件清单,也不用为了让几个独立插件看起来像同一个产品,反复修改配置。

这套思路很快就在 GitHub 上火了起来。Tolaria 的仓库创建于 2026 年 2 月 14 日;截至 2026 年 7 月 15 日,已经获得约 18,700 Stars 和 1,300 Forks。GitHub 仓库

Stars 不是用户数,也不能证明产品已经成熟。不过,一个桌面知识工具五个月就能获得这样的关注,已经很能说明问题:受够了“先配半天,再开始记笔记”的人,确实不少。

Tolaria 把顺序调了过来:先给你一套能工作的默认方案,让你马上开始记录和整理;真的碰到特殊需求,再去改规则。配置没有彻底消失,软件也不会免费附送一个无需登录、无限使用的 AI 模型。少掉的,是开始写笔记之前那一大堆准备工作。

说得直白一点:不必先组装一款笔记软件,才能开始建立自己的知识库。

为什么它能把事情做得这么简单?答案就在源码里。

四、Tolaria 的底层原理:把复杂性留给软件

翻开 Tolaria 源码,我更愿意把它的思路概括成一句话:以前需要用户亲手做的很多决定,被产品提前做掉了。

先看文件。Tolaria 的原则很直接:文件说了算

每篇笔记就是磁盘上的 Markdown,属性放在文件开头的 YAML Frontmatter 里。Tolaria 内部虽然也有缓存和 React 状态,但它们只是用来加快启动和渲染,删掉以后还能从文件重新构建。真发生冲突时,以磁盘上的内容为准。

这个选择看起来很朴素,却省掉了不少麻烦。人在 Tolaria 里编辑,Codex 从终端读取,其他 Markdown 工具继续处理,碰到的始终是同一份文件,不需要在几个插件各自维护的数据之间来回同步。

文件解决了“内容放哪儿”,接下来还得解决“这些内容是什么关系”。Tolaria 给知识关系准备了一套默认语法。

比如 type 表示笔记类型,belongs_to 表示归属关系。写下这些属性,Tolaria 就知道该怎样展示类型和关系。你不用先安装数据库插件、写查询语句,再从头设计一套属性规范。

这些约定以后仍然可以改。Vault 里的 Markdown、Type Note 和 Frontmatter 都能继续调整,只是配置从开始使用前的必修课,变成了遇到特殊需求后的选修课。对 Agent 来说,这套共享约定也很有用:它看到的不再只是一堆文件,还能判断一篇笔记是人物、项目还是任务,以及它与其他笔记有什么关系。

Git 也被直接放进了主流程,但它不是使用 Tolaria 的前提。

普通 Markdown 文件夹照样可以浏览、编辑和搜索。如果 Vault 已经位于 Git 工作树中,或者用户后来主动初始化 Git,历史、diff、提交、拉取、推送和冲突处理才会自然进入工作流。Git 文档

它的技术实现其实也不玄学,大致可以看成三层:

React 19 / TypeScript / BlockNote
Tauri 2 / Rust:文件、Git、监听器与进程管理
Node.js MCP Sidecar:向 AI 暴露知识库工具

React、TypeScript、Vite、BlockNote 和 ProseMirror 扩展负责界面与编辑器;Tauri 2 和 Rust 负责跟电脑打交道,包括文件、Git、监听器和 Agent 进程;Node.js MCP Sidecar 则把搜索、读取和修改笔记的能力交给 AI。架构文档

简单说,前端负责让人写,Rust 负责跟系统打交道,MCP 负责让 Agent 进来干活。Tolaria 的“简单”,只是不用用户亲手把这几层粘在一起。

Tolaria 编辑界面、本地能力与 AI 工具层的源码架构

五、AI Native 下的 Tolaria 体验

现在很多笔记产品都有 AI 侧边栏。打开聊天框,问几个问题,再让模型润色一段文字,这并不难。

Tolaria 更有意思的地方,是 Agent 不只陪你聊天,它真的能进入当前知识库干活。

假设你正在看一篇项目复盘,然后对 AI 说:“结合以前的记录,把它整理成一份决策文档。”

Tolaria 不会一股脑把整个知识库塞给模型。消息发出前,它会准备一份结构化上下文,里面有当前笔记的标题、正文和 Frontmatter,也有目前打开的其他笔记、Vault 类型摘要,以及你明确引用的内容。

如果当前笔记太长,CLI Agent 会先拿到压缩后的头尾,相当于先看一张地图;真要总结或修改完整内容时,再通过 MCP 回头读取原文。这个处理很务实,它没有假装“模型已经记住了整个知识库”。

接下来,Tolaria 会通过 Tauri 和 Rust,在当前 Vault 中启动已经安装好的 Codex、Claude Code、OpenCode 等本地 Agent,并注入 MCP 配置。Agent 可以搜索笔记、读取全文、创建或更新 Markdown,最后改动的仍然是那些本地文件。

文件发生变化后,Tolaria 会根据 Agent 的工具事件刷新 Vault;Rust 的文件监听器也会捕获终端或其他编辑器带来的修改。如果 Vault 已经启用 Git,你还能直接看到它到底改了什么,必要时再回滚。

Tolaria 将当前上下文交给本地 Agent 并通过 MCP 修改 Markdown 的工作链路

这里有个容易误会的地方:Tolaria 并没有免费附赠一个模型。

使用 Codex、Claude Code 这类 CLI Agent,需要提前安装并完成登录或供应商配置。Tolaria 负责发现它们、注入上下文、连接 MCP 和展示过程,但不会替你提供账号和模型额度。

直接连接 OpenAI、Anthropic、Gemini、OpenRouter、Ollama、LM Studio 或兼容接口,则是另一条路径。这些模型可以拿到笔记上下文和对话历史,却没有 Shell 权限;目前只有 OpenAI 兼容目标带有一个受当前 Vault 限制的 create_note 工具,能力仍然不等同于可以搜索、读取和修改整个知识库的 CLI Agent。

还有一点要注意:Git 是检查和恢复手段,不是每次写文件前都会弹出的授权框。重要 Vault 最好先备份或提交一次,再让 Agent 动手。

所以我更愿意把 Tolaria 的 AI Native 理解成一种工作方式。Agent 真正进了笔记工作流,干完的结果留在你自己的文件和 Git 历史里。今天接 Codex,明天换 Claude Code 或本地模型,都不影响那份知识库。

工具会变,文件还在。对一款知识软件来说,这件事可能比“又多支持了一个模型”重要得多。