知识库栈 2026:用 5 个组件构建你的"第二大脑"
用 5 个组件构建自托管知识库:AnythingLLM(RAG UI)→ RAGFlow(深度文档解析)→ mem0(语义记忆)→ AgentMemory MCP(编码 agent 桥接)→ Vector DB(Chroma/Qdrant)。$10-25/月替代 $50-200/月 SaaS。
- Docker
- Python
- PostgreSQL
- Redis
- MIT
- 更新于 2026-05-21
您有 500 个 PDF、2,000 个笔记、10 年的电子邮件,而编辑器中的 AI 并不知道它们的存在。 Notion AI 的价格为 10 美元/席位/月,并且无法查看您的本地文件。 Glean 的成本至少为 3 万美元/年。 Mem.ai 很棒,但它是一个 SaaS——你的“第二大脑”存在于别人的硬件上。
该集合组装了 5 个组件的自托管知识库堆栈,可吸收所有内容(PDF、笔记、网页、代码),将其嵌入本地,让您通过聊天 + API 进行查询,并通过 MCP 将其公开给您的 AI 编码代理 — 总基础设施成本为 10-25 美元/月。

TL;DR — The Stack at a Glance #
| # | Component | Role | Why | Deep dive |
|---|---|---|---|---|
| 1 | AnythingLLM | All-in-one RAG UI + document manager + chat interface | The “front door” — what you and your team actually click into | AnythingLLM local RAG architecture |
| 2 | RAGFlow | Deep document parsing (tables, formulas, multi-column PDFs) | Where AnythingLLM stops at “good enough” parsing, RAGFlow handles the hard documents | RAGFlow guide |
| 3 | mem0 | Persistent semantic memory layer for agents | Long-term “remember this fact about the user” across sessions | mem0 setup |
| 4 | AgentMemory MCP | Exposes mem0 to any MCP host (Claude Desktop, OpenCode, Cursor) | Lets your coding agent share the knowledge base via MCP protocol | AgentMemory MCP |
| 5 | Vector DB (Chroma / Qdrant / Weaviate) | Embedding storage + similarity search backend | Pick varies — see Vector DB comparison | Vector DB comparison 2026 |
每月总成本(单独,10 GB 文档):10-15 美元 • 小团队(10 GB,5 位用户):15-25 美元 • 组织(100 GB,50 位用户):60-150 美元
与 SaaS 同等产品进行比较:Notion AI + Mem + Glean Lite = 50-200 美元/月,适用于单人到小团队的覆盖。
1. Why Self-Host a Knowledge Base in 2026 #
三件事汇聚在一起:
- 本地嵌入模型达到生产质量 - “nomic-embed-text”和“bge-large”在 4GB VPS 上运行,嵌入速度为 200 个文档/分钟,检索速度低于 100 毫秒。 不再需要“将数据发送到 OpenAI 进行嵌入”。
- MCP 标准化代理到知识集成 — 一旦您的知识库采用 MCP,每个 AI 编码代理(Claude Desktop、OpenCode、Cursor、Continue)都可以查询它,而无需自定义集成代码。 有关协议详细信息,请参阅我们的 MCP 服务器注册表指南。
- RAGFlow 以开源方式提供企业级文档解析 — 多列 PDF、带有合并单元格的表格、嵌入式公式。 每个“DIY RAG”堆栈都失败的事情现在已经解决了。
将这三者叠加起来——本地嵌入+MCP暴露+RAGFlow级解析——对于任何有隐私问题或超过5GB源文档的人来说,“我只使用Notion AI”的决定就会发生翻转。
2. Architecture Overview #
┌────────────────────────────────────────────────────┐
│ VPS ($10-25/mo) │
│ │
│ ┌────────────────────────────────────────────┐ │
│ │ AnythingLLM (web UI) │ │
│ │ ↕ │ │
│ │ Documents → embedding pipeline │ │
│ └────────────┬───────────────────────────────┘ │
│ │ │
│ "hard PDFs" │ "easy docs" │
│ ↓ │ ↓ │
│ ┌─────────┐ │ ┌──────────────┐ │
│ │ RAGFlow │ │ │ (anythingLLM │ │
│ │ parser │ │ │ built-in) │ │
│ └────┬────┘ │ └──────┬───────┘ │
│ └───────┴─────────┘ │
│ ↓ │
│ ┌────────────────┐ │
│ │ Vector DB │ │
│ │ (Chroma local) │ │
│ └────────┬───────┘ │
│ ↓ │
│ ┌─────────────────────────────────┐ │
│ │ Query routing │ │
│ │ ├─► AnythingLLM chat UI │ │
│ │ ├─► mem0 (agent memory layer) │ │
│ │ └─► AgentMemory MCP server │ │
│ │ ↓ │ │
│ │ (Claude / Cursor / OpenCode) │ │
│ └─────────────────────────────────┘ │
└────────────────────────────────────────────────────┘
拆分:AnythingLLM 是面向用户的前门,RAGFlow 处理 AnythingLLM 解析器偶然发现的文档,矢量 DB 是共享检索后端,而 mem0 + AgentMemory MCP 向您的 AI 编码代理公开相同的知识。
3. Component 1 — AnythingLLM (The Front Door) #
角色:这是您和您的团队所点击的。 文档上传、工作区组织、与文档聊天、用户管理 — 所有这些都在一个自托管应用程序中。
为什么选择这个:超过 28k 颗星,单个 Docker 容器可在 10 分钟内部署,拥有所有开源 RAG 工具中最精美的 Web UI。 支持 40 多个 LLM 提供商作为聊天后端(Ollama / DeepSeek / Claude / GPT-5 / OpenRouter),因此您可以保持成本灵活性。
快速安装:
docker run -d --name anythingllm \
-p 3001:3001 \
-v anythingllm-storage:/app/server/storage \
-e LLM_PROVIDER=ollama \
-e EMBEDDING_ENGINE=native \
mintplexlabs/anythingllm:latest
打开“http://your-vps:3001”,创建一个工作区,拖入 PDF。 内置解析器可处理 80% 的文档。 对于另外 20%,路由至 RAGFlow(下一个组件)。
完整设置,包括团队身份验证、工作区结构和 LLM 提供商路由: AnythingLLM 本地 RAG 架构。
4. Component 2 — RAGFlow (Deep Document Parsing) #
作用:当 AnythingLLM 的内置解析器产生文档垃圾(多列 PDF、扫描论文、复杂表格、公式较多的学术论文)时,RAGFlow 就会介入。
为什么选择:RAGFlow 的“DeepDoc”解析器在每个页面上使用视觉模型,保留表结构(合并单元格、嵌套行),并按语义块而不是标记计数对文档进行分块。 硬文档检索的输出准确率提高了 3-5 倍。
快速安装:
docker compose -f https://github.com/infiniflow/ragflow/raw/main/docker/docker-compose.yml up -d
# Web UI on :80, API on :9380
工作流程模式:AnythingLLM 是日常驱动程序。 当特定文档的检索质量下降时,通过 RAGFlow 重新处理它,将解析后的块保存回共享向量数据库。
完整的 RAGFlow 设置,包括 DeepDoc 调整和管道集成:RAGFlow 指南。
5. Component 3 — mem0 (Agent Memory Layer) #
作用:在聊天会话和代理之间持续存在的持久语义记忆。 “请记住,用户正在使用 Tailwind v4,并且身份验证位于 src/lib/auth.ts 中”——任何与 mem0 对话的代理都会在下一个会话、下个月、明年获得这一事实。
为什么选择:30k+ 星星。 专为代理内存(而非通用矢量数据库)而构建。 从对话中自动提取事实、重复数据删除、自然地破坏旧事实。
快速安装:
pip install mem0ai
# Or run as a service:
docker run -d --name mem0 -p 8765:8765 \
-e VECTOR_DB=chroma \
mem0ai/mem0-server:latest
用例:将 mem0 作为写回层连接到 AnythingLLM 工作区。 每个聊天对话都会自动提炼成 mem0 事实。 然后,您的人工智能编码代理(下一个组件)就可以获得文档语料库和对话提取的事实。
完整的 mem0 设置,包括嵌入模型选择和衰减策略调整:mem0 设置指南。
6. Component 4 — AgentMemory MCP (The Bridge to Coding Agents) #
作用:将 mem0(以及可选的 AnythingLLM 矢量 DB)公开给任何 MCP 主机 — Claude Desktop、OpenCode、Cursor、Continue、Hermes Agent。 您的知识库现在讲的是每个现代人工智能编码代理都理解的协议。
为什么这很重要:如果没有 MCP,将自定义知识库与每个 AI 编码工具集成需要每个工具的自定义代码。 使用 AgentMemory MCP,您只需将其添加到“claude_desktop_config.json”一次,每个 MCP 感知代理即可获取它。
快速安装:
npm install -g @mem0/mem0-mcp
# Add to OpenCode / Claude Desktop MCP config:
# { "agentmemory": { "command": "mem0-mcp", "env": { "MEM0_URL": "http://localhost:8765" } } }
结果:您的编码代理现在可以回答“根据我们的项目文档和过去的对话,我应该如何构建新的身份验证流程?” - 引用您的 PDF 和您之前的决定。
完整设置,包括如何在团队中共享 AgentMemory MCP:AgentMemory MCP 指南。
7. Component 5 — Vector DB Pick #
角色:AnythingLLM、RAGFlow 和 mem0 背后的共享嵌入存储后端。
三个可行的选择(完整比较:Vector DB 比较 2026):
- Chroma — 最适合单人/小团队。 单文件 SQLite 式的简单性。 嵌入式模式=零额外服务。 AnythingLLM 的默认值。
- Qdrant — 最适合制作团队。 基于 Rust,低于 10 毫秒的延迟,水平扩展。 Docker compose 处理它。
- Weaviate — 当您需要混合搜索(矢量+关键字)时最好。 更重的操作,但更强大的检索模式。
默认推荐:从 Chroma 开始(已经在 AnythingLLM 中)。 当您的语料库 > 100 GB 或查询延迟 > 200 毫秒时迁移到 Qdrant。
# Qdrant if/when you outgrow Chroma:
docker run -d --name qdrant -p 6333:6333 -p 6334:6334 \
-v qdrant-storage:/qdrant/storage \
qdrant/qdrant:latest
8. Day 1 Setup Order (90 minutes) #
- Spin up VPS (10 min) — Order a DigitalOcean $12/mo droplet (8 GB tier; 4 GB is too tight for parsing + embedding + LLM), install Docker
- 首先是 AnythingLLM(15 分钟)— 单个 docker 运行,浏览到 :3001,创建管理员帐户 + 第一个工作区
- 上传 10 个测试文档(10 分钟) - PDF、.md 注释、.docx 的混合 - 查看 AnythingLLM 的内置解析器处理什么
- RAGFlow 第二次(20 分钟)——docker compose,浏览到 :80,重新处理 AnythingLLM 偶然发现的 2-3 个文档
- mem0 第三(10 分钟)— pip install + 作为服务运行,指向 AnythingLLM 使用的 Chroma 实例
- AgentMemory MCP 第四(10 分钟)— npm 安装,添加到 Claude Desktop / OpenCode 配置
- 测试完整管道(15 分钟)- 将文档上传到 AnythingLLM → 聊天 → mem0 捕获事实 → 通过 MCP 在 Claude Desktop 中提出相同的问题 → 引用两个来源
90 分钟后,您就可以在 12 美元/月的液滴上运行个人 Glean 等效设备。
9. Cost Breakdown #
| Item | Solo (10 GB docs) | Small team (10 GB, 5 users) | Org (100 GB, 50 users) |
|---|---|---|---|
| VPS | $12 (8 GB) | $24 (16 GB) | $120 (64 GB + replica) |
| AnythingLLM | $0 (self-host) | $0 | $0 |
| RAGFlow | $0 (self-host) | $0 | $0 |
| mem0 / AgentMemory MCP | $0 (self-host) | $0 | $0 |
| Vector DB (Chroma → Qdrant) | $0 | $0 | $0 (Qdrant self-host) |
| Embedding (local Ollama bge-large) | $0 | $0 | $0 |
| Chat LLM (DeepSeek for cheap, Claude for hard) | $0-5 | $0-10 | $20-30 |
| Backup storage | $1 | $2 | $20 |
| Total | ~$13-18/mo | ~$26-36/mo | ~$160-170/mo |
与 SaaS 同类产品进行比较:
- Solo:Notion AI ($10) + Mem.ai ($15) = $25/月,看不到本地文件
- 小团队:相同 × 5 个用户 = 125 美元/月
- 组织:Glean Lite ~$30/用户/月 × 50 = $1,500/月
10. Upgrade Path #
当你不再需要这个堆栈时:
- 语料库 > 1 TB 或 > 10M 文档 — 将 Qdrant 移至专用 32 GB 盒子,添加分片
- Multi-region team — Replicate AnythingLLM read replicas in multiple regions, single write master in HTStack HK for China-friendly latency
- 需要全文+矢量混合 — 将矢量数据库从 Chroma 迁移到 Weaviate
- 审核/SOC2 合规性 — 与 Portkey 配对以实现 LLM 调用可观察性(请参阅 LLM 网关比较 2026)
- 多租户 SaaS — 添加 LiteLLM 以实现每个客户的虚拟密钥( LiteLLM 指南)
TL;DR — The Recipe #
5 个组件,单人到小团队 10-25 美元/月:
- AnythingLLM — 前门 + 聊天 UI
- RAGFlow — 深度文档解析器(硬 PDF)
- mem0 — 代理内存层
- AgentMemory MCP — 编码代理的桥梁
- 矢量 DB(色度 → Qdrant 比例)
将 50-200 美元/月的 SaaS(Notion AI + Mem + Glean Lite)替换为您自己的自托管。 90 分钟设置,MCP 原生,因此每个编码代理都能受益。
Spin up a DigitalOcean $12/mo droplet for the entry tier, follow section 8, and your knowledge base is queryable from Claude Desktop / Cursor / OpenCode by tomorrow.
配套集合:自托管 AI 编码工作流程将此知识库插入您的编码代理堆栈中。 Cheap LLM Stack 涵盖聊天 LLM 成本方面。 跨境人工智能营销堆栈 适合需要中国友好托管的中国团队。
💬 留言讨论