解决信息碎片化难题,本地知识库让AI真正读懂你的文件。核心内容:1. 日常信息分散的三大痛点与统一需求2. 四大核心组件(LLM Wiki、GBrain、Obsidian、MarkItDown)的分工与协作3. 三种数据入库方式,实现从文件到结构化知识的转换
日常工作里,信息散得到处都是。PDF 在下载文件夹里堆着,网页文章在浏览器收藏夹里吃灰,微信聊天记录里的关键信息过几天就找不到了,邮件里的决策结论沉在收件箱深处。
这些东西有几个共同的问题:
第一,没法统一搜索。想找一个概念,得在文件夹、浏览器、微信、邮箱里分别搜一遍。
第二,格式不统一。PDF、Word、Excel、网页、聊天记录,每种格式有自己的打开方式,没法放在一起检索。
第三,也是最关键的——这些知识对 AI 是不可见的。 大模型再强,也搜不到你本地的 PDF 和微信记录。
我需要一套系统,把所有知识统一存储、结构化管理,既能让我自己快速检索,也能让 AI Agent 直接调用。
最终搭出来的系统由四个组件组成,各司其职。
LLM Wiki 是知识的组织框架。它定义了知识怎么分类、怎么组织。本质就是磁盘上的一套目录结构和 Markdown 文件。按概念、资料来源、人物实体、方法论等分类存放。每个文件用 YAML frontmatter 标记类型、标签、创建时间等元数据。文件之间可以用 [[slug]] 语法互相引用,形成知识网络。这套目录可以直接用 Obsidian 打开,也可以用任何文本编辑器操作。
GBrain 是知识的搜索引擎。底层是 PostgreSQL 数据库加上 pgvector 向量扩展。所有知识存进去之后,它能做几件事:全文搜索(关键词精确匹配)、语义搜索(理解问题意图,找到相关内容,即使关键词不完全一致)、知识图谱(自动提取人物、公司、概念等实体,建立它们之间的关系)、时间线(按时间轴组织事件)。它提供 MCP 接口,AI Agent 可以直接调用这些能力。
Obsidian 是人类的编辑界面。它直接读写 LLM Wiki 目录下的 Markdown 文件,本身不存储任何数据。我喜欢用它是因为图谱视图——能看到知识之间的关联网络,哪些概念连着哪些人物,哪些资料引用了哪些理论。它就是一个可视化窗口。
MarkItDown 是微软出的文件格式转换工具。PDF、Word、Excel、PPT、网页 HTML、甚至图片 OCR 和音频语音转文字,统统转成干净的 Markdown。这是知识入库的关键一步——不管原始文件是什么格式,最终都变成统一的 Markdown 文本。
知识进入系统有三种入口,最终都汇到同一条管线。
浏览器上传。 内网有一个上传页面,监听 8199 端口,局域网内任何设备打开浏览器就能用。拖拽文件进去,文件自动进入投递箱目录。
命令行。 直接把文件复制到投递箱目录:cp report.pdf ~/llmwiki/inbox/。
告诉 AI。 对 Agent 说"帮我导入这个 PDF"或"保存这篇文章:{URL}",Agent 会自动处理。
不管哪种方式,文件最终都落到同一个地方:~/llmwiki/inbox/。然后一个叫 watchdog 的后台脚本接管后续处理:
raw/sources/ 目录(按日期归档)wiki/sources/ 目录inbox/.processed/ 归档整个过程全自动。用户只需要把文件丢进去,剩下的交给系统。
查询的时候,三种方式都能用:命令行 gbrain search "关键词" 或 gbrain query "如何构建投资组合"(语义搜索);Obsidian 搜索框;直接问 Agent。Agent 通过 MCP 协议连接 GBrain,搜索知识后基于结果生成回答。
搭好之后的日常是这样的:
场景一:保存文章。 早上看到一篇好文章,浏览器里用 MarkDownload 扩展一键复制 Markdown,粘贴给 Agent,说"保存到知识库"。Agent 自动提取关键信息、识别文中提到的人物和公司、创建知识页面、建立关联。整个过程几秒钟。
场景二:导入报告。 下午收到一份研究报告 PDF,拖到上传页面。几秒钟后就能搜到了。问 Agent"这份报告的核心观点是什么",它能基于报告内容回答。问"报告里提到了哪些公司",它能列出并自动关联到知识库里已有的公司页面。
场景三:保存会议记录。 开完会,把微信聊天记录复制给 Agent,说"保存这段讨论"。它会提取参与者、识别关键决策、创建时间线事件。下次问"上次关于 XX 的讨论结论是什么",直接就能找到。
场景四:研究辅助。 做研究的时候,问 Agent"我之前保存过哪些关于因子投资的资料",它会搜索知识库,列出相关文章、报告、会议记录,还能基于这些内容做综合分析。
所有知识都存在本地 Mac Studio 上,不上传到任何云端。搜索的时候,既能精确匹配关键词,也能理解语义——比如搜"如何控制回撤",即使文章里没有"回撤"这两个字,只要内容是关于风险控制的,也能找到。
整套系统跑在一台 Mac Studio上,不依赖外部服务。
语言模型: GBrain 用的三个模型全部本地部署。搜索意图理解和回答生成用 Qwen3.5-27B,向量 embedding 用 Qwen3-Embedding-8B,通过 omlx 推理服务器提供 OpenAI 兼容的 API。完全离线运行,不需要调用任何外部 API。
数据库: PostgreSQL + pgvector。向量维度 1024,支持高效的语义相似度搜索。
服务部署: GBrain 以 HTTP 服务方式运行,监听 3131 端口,绑定 0.0.0.0(内网可访问)。支持 Bearer Token 认证,可以为不同的 Agent 创建不同的 Token。文件上传服务监听 8199 端口。两个服务都配置了 macOS launchd 开机自启,Mac Studio 开机后自动运行。
文件处理: watchdog 脚本基于 fswatch 监控文件系统事件,只处理最近 1 分钟内新增的文件。MarkItDown 安装在独立的 Python 虚拟环境中,不影响系统 Python。
Agent 接口: 通过 MCP(Model Context Protocol)协议暴露 81 个工具,包括搜索、读写、关联、标签、时间线等。Agent 调用时需要在请求头带 Bearer Token,响应格式是 SSE(Server-Sent Events)。
这套系统有几个明显的局限:
只支持文本。 图片、音频、视频没法直接入库,需要先转成文字。MarkItDown 支持图片 OCR 和音频转文字,但效果取决于原始文件质量。
需要手动维护结构。 虽然有自动分类和实体提取,但知识的组织还是需要人工干预。概念之间的关联、实体的归类、重要程度的判断,Agent 能辅助但不能完全替代人的决策。
本地部署,没有云端同步。 数据存在本地 Mac Studio 上。如果需要多设备访问,只能通过内网。没有自动备份机制,需要自己定期备份 PostgreSQL 数据库。
学习成本。 日常使用很简单——拖文件、问 Agent。但如果要深入了解系统配置、故障排查、自定义工作流,需要一定的技术基础。至少要熟悉命令行和 Markdown。
模型能力上限。 本地部署的 27B 模型在复杂推理上不如 GPT-4 或 Claude,实体提取和语义搜索的准确率也有提升空间。但好处是完全离线、没有 API 费用、数据不出本地。
这套系统适合以下场景:个人知识管理,信息量大、来源分散;需要 AI 辅助整理和检索知识;注重数据隐私,不想把知识上传到第三方平台;有一定的技术能力,能处理基本的命令行操作。
不太适合的场景:团队多人协作(这是个人知识库设计,没有多用户权限管理)、需要严格版本管理的文档(用 Git 更合适)、纯图片/视频类素材管理。
这套系统的核心思路:知识统一存为 Markdown,用向量数据库做语义搜索,通过 MCP 让 AI Agent 能读能写。
技术栈不复杂:PostgreSQL + pgvector 做存储和搜索,Qwen 做语言模型,Obsidian 做编辑器,MarkItDown 做格式转换,一个 watchdog 脚本做自动化处理。所有组件都是开源的,跑在本地,数据不出 Mac。
搭好之后最大的感受:知识终于能被搜到了。 不管是几周前保存的文章,还是昨天的会议记录,问 Agent 一句话就能找到。而且 Agent 能基于知识库回答问题、生成分析、做头脑风暴——这才是知识管理的最终目的,不只是存起来,而是能用起来。
登录查看剩余 70% 内容