AnythingLLM 完整教學 — All-in-One Self-Hosted AI Application
1. 專案定位
AnythingLLM 是 Mintplex Labs 開發的 all-in-one (一站式) self-hosted AI application (自建 AI 應用),定位為「你一直在找的那個 AI app」——私有、功能完整、無需複雜設定。它解決的核心問題是:讓非技術使用者也能在幾分鐘內部署一個功能齊全的私有 ChatGPT,支援文件 RAG (Retrieval-Augmented Generation; 檢索增強生成)、AI agent、多用戶管理。
為什麼需要 AnythingLLM?
| 需求 | AnythingLLM 的解答 |
|---|---|
| 簡單部署 | Desktop App 一鍵安裝,或 Docker 一行指令 |
| 文件對話 | 拖放上傳 PDF / DOCX / TXT,自動向量化 + RAG |
| Provider 自由 | 35+ LLM provider、9 種 vector DB、15+ embedder |
| 企業多用戶 | 角色權限管理 + workspace 隔離 |
| 無程式碼 Agent | 視覺化 agent flow builder |
| 可嵌入 | 提供網頁嵌入聊天元件 |
| 成熟穩定 | 3 年開發歷史,61K stars,v1.13.0 |
專案規模
- Stars: 61,026 · Forks: 6,627
- 建立日期: 2023-06-04(歷史最久的同類專案之一)
- 最新版本: v1.13.0(2026-05-26)
- 授權: MIT License
- 公司: Mintplex Labs Inc.(提供商業 hosted 版本)
2. 安裝指南
2.1 Desktop App(最簡單)
直接從官網下載:https://anythingllm.com/download
支援 macOS / Windows / Linux。下載後雙擊安裝,開箱即用。
2.2 Docker 安裝(推薦用於伺服器)
1docker pull mintplexlabs/anythingllm
2docker run -d -p 3001:3001 \
3 --cap-add SYS_ADMIN \
4 -v ${STORAGE_LOCATION:-.}/anythingllm:/app/server/storage \
5 -v ${STORAGE_LOCATION:-.}/anythingllm/.env:/app/server/.env \
6 mintplexlabs/anythingllm
開啟 http://localhost:3001。
2.3 雲端一鍵部署
| 平台 | 方式 |
|---|---|
| AWS | CloudFormation 模板 |
| GCP | Cloud Run 一鍵部署 |
| DigitalOcean | Terraform 模板 |
| Railway | 模板部署 |
| Render.com | 一鍵部署 |
| RepoCloud | 模板部署 |
| Elestio | 管理式部署 |
| Northflank | Stack 部署 |
| HuggingFace Spaces | 免費部署 |
| Helm / K8s / OpenShift | 企業級部署 |
2.4 從原始碼開發
1git clone https://github.com/Mintplex-Labs/anything-llm.git
2cd anything-llm
3yarn setup # 產生 .env 檔案
4# 填寫 server/.env.development
5yarn dev:server # 啟動後端
6yarn dev:frontend # 啟動前端
7yarn dev:collector # 啟動文件收集器
系統需求: Node.js(見 .nvmrc)
2.5 Bare Metal 安裝
詳見 BARE_METAL.md——不使用 Docker 的生產環境部署指南。
3. 核心架構解析
AnythingLLM 採用 monorepo 結構,分為六大模組:前端(React)、後端(Express)、文件收集器(Collector)、Docker 建構、嵌入元件、瀏覽器擴充。
flowchart TD
subgraph Client["使用者端"]
DESKTOP[Desktop App
Mac / Win / Linux]
WEB[Web Browser]
EMBED[嵌入式 Widget]
EXT[Chrome Extension]
end
subgraph Frontend["前端 — React + Vite"]
UI[Chat UI / 文件管理]
AGENT_FLOW[Agent Flow Builder]
SETTINGS[Settings / 權限管理]
end
subgraph Backend["後端 — Node.js Express"]
API[REST API Server]
LLM_ROUTER[Dynamic Model Router
自動路由最佳 Provider]
AGENT_ENGINE[Agent Engine
Tool Selection + Execution]
MEM[Memory Manager
自動 / 手動記憶]
SCHEDULER[Scheduled Tasks
Cron 排程]
AUTH[Multi-User Auth
JWT + 角色權限]
end
subgraph Collector["Collector — 文件處理"]
UPLOAD[檔案上傳
PDF / DOCX / TXT]
PARSE[文件解析 + 分段]
VECTORIZE[Embedding + 向量化]
end
subgraph Storage["儲存層"]
SQLITE[(SQLite / Prisma)]
VDB[(Vector DB
LanceDB / Pinecone / Chroma
Qdrant / Milvus / Weaviate)]
FILES[server/storage/
文件 / 模型 / 設定]
end
subgraph Providers["外部 Provider"]
OPENAI[OpenAI / Azure]
ANTHROPIC[Anthropic]
OLLAMA[Ollama / LM Studio]
BEDROCK[AWS Bedrock]
GEMINI[Google Gemini]
MORE[35+ 其他 Provider]
end
Client --> Frontend
Frontend --> Backend
Backend --> Collector
Collector --> VECTORIZE --> VDB
API --> SQLITE & FILES
LLM_ROUTER --> Providers
AGENT_ENGINE --> LLM_ROUTER
3.1 模組分工
| 模組 | 技術 | 職責 |
|---|---|---|
frontend/ | React + Vite | UI、聊天介面、文件管理、Agent Flow Builder、設定頁面 |
server/ | Node.js + Express + Prisma | API server、LLM 互動、向量 DB 管理、auth、排程 |
collector/ | Node.js + Express | 文件上傳解析、分段、向量化 |
embed/ | 獨立 submodule | 可嵌入網站的聊天元件 |
browser-extension/ | Chrome Extension | 瀏覽器擴充 |
docker/ | Dockerfile + Compose | 容器化部署 |
3.2 Dynamic Model Routing
v1.13.0 引入的重要特性——根據使用者定義的規則(對話類型、成本、延遲等),自動將聊天請求路由到最佳的 LLM provider + model 組合。
3.3 Workspace 概念
AnythingLLM 的核心組織單位是 workspace (工作空間)。每個 workspace 有獨立的:
- 文件集合(RAG 知識庫)
- LLM 設定(可覆蓋全域)
- Agent 設定
- Chat history
- 記憶
多用戶模式下,workspace 可設定不同的存取權限。
4. 使用方式詳解
4.1 文件對話(RAG)
- 在 workspace 中上傳文件(支援 PDF / TXT / DOCX / CSV / HTML / MD 等)
- 系統自動分段 + embedding + 存入 vector DB
- 對話時自動檢索相關文件段落,注入 LLM prompt
- 回覆附帶 source citation (來源引用)
4.2 AI Agent
Agent 支援多種內建工具:
- Web Search — SearXNG / Google / Bing
- Web Scraping — 抓取網頁內容
- SQL Agent — 查詢資料庫
- RAG Search — 搜尋 workspace 文件
- Summarizer — 摘要文件或對話
- Chart Generation — 產生圖表
- Custom Skills — 自訂 JavaScript 工具
4.3 Agent Flow Builder(無程式碼)
視覺化建構 agent workflow,支援條件分支、循環、多工具串接,無需寫程式。
4.4 Scheduled Tasks
1使用 Cron 語法排程 + Agent 能力:
2- 每日自動摘要新文件
3- 定期檢查網站變更
4- 排程資料分析報告
4.5 Embeddable Chat Widget
1<!-- 在你的網站嵌入 AnythingLLM 聊天元件 -->
2<script src="https://your-instance/embed/embed.min.js"
3 data-embed-id="your-embed-id"
4 data-base-api-url="https://your-instance/api/embed">
5</script>
4.6 Developer API
完整 REST API(Swagger 文件內建),支援:
- 文件上傳 / 管理
- 對話 / Streaming
- Workspace CRUD
- Agent 控制
- 使用者管理
5. 應用場景
5.1 企業知識庫
最典型的場景。部門上傳內部文件(規章、SOP、技術文件),員工透過 chat 介面詢問,AnythingLLM 從文件中檢索回答。Workspace 隔離確保部門間資料不互通。
5.2 客服自動化
使用 Embeddable Widget 嵌入公司網站,客戶直接在頁面上與 AI 對話。背後由公司 FAQ / 產品文件作為知識庫。
5.3 個人研究助手
研究人員上傳論文,逐篇或跨篇提問。Source citation 功能讓使用者能追溯回答的來源段落。
5.4 開發團隊內部工具
透過 Developer API 整合到現有工具鏈(Slack bot、CI/CD pipeline、內部 dashboard)。
5.5 教育場景
教師上傳課程教材,學生透過 chat 提問學習。多用戶權限確保學生只能存取自己的 workspace。
6. 資安掃描報告
6.1 整體評級:🟢 低風險
AnythingLLM 是成熟的商業支撐專案,安全性整體良好。
6.2 發現項目
🟢 低風險:Telemetry 預設開啟
使用 PostHog(開源遙測服務)收集匿名使用統計。僅追蹤事件類型(文件新增/移除、對話送出、DB 類型、LLM provider),不含任何內容。
關閉方式:
1DISABLE_TELEMETRY=true # 在 .env 設定
2# 或:Settings → Privacy → 關閉 Telemetry
🟢 低風險:環境變數管理
API key、JWT secret 等透過 .env 檔案管理,未在原始碼中硬編碼。密碼複雜度可透過環境變數調整。
🟢 低風險:CDN 外部連線
cdn.anythingllm.com 用於下載模型,github/githubusercontent.com 用於 context window cache 檔案。兩者在停用 telemetry 後仍會連線。
🟢 低風險:Docker 安全
Docker 映像基於 ubuntu:noble,使用非 root 使用者執行。需要 SYS_ADMIN capability(用於 Chromium headless)。
6.3 安全建議
- 生產環境務必設定
AUTH_TOKEN或啟用多用戶認證 - 設定
JWT_SECRET為強隨機值 - 不要將
.env檔案提交到版本控制 - 企業部署建議搭配 reverse proxy + HTTPS
7. AnythingLLM vs Odysseus 詳細比較
以下是 AnythingLLM 與 Odysseus(pewdiepie-archdaemon/odysseus)的全面比較:
7.1 基本資訊比較
| 維度 | AnythingLLM | Odysseus |
|---|---|---|
| Stars | 61,026 | 46,095 |
| 建立時間 | 2023-06-04(3 年) | 2026-05-31(5 天) |
| 最新版本 | v1.13.0 | 無正式 release |
| 授權 | MIT | MIT |
| 公司/作者 | Mintplex Labs Inc.(商業公司) | 個人開發者 |
| Desktop App | ✅ Mac / Win / Linux | ❌(僅 web,macOS 可包裝) |
| 前端技術 | React + Vite | 原生 JavaScript(無框架) |
| 後端技術 | Node.js Express | Python FastAPI |
| 主要語言 | JavaScript | JavaScript + Python |
7.2 功能比較
| 功能 | AnythingLLM | Odysseus |
|---|---|---|
| Chat / 對話 | ✅ | ✅ |
| RAG / 文件對話 | ✅ 完整管線 | ✅ ChromaDB |
| AI Agent | ✅ 視覺化 builder | ✅ 基於 opencode |
| Deep Research | ❌ | ✅ 源自 Tongyi |
| 模型盲測比較 | ❌ | ✅ Compare |
| 文件編輯器 | ❌ | ✅ 多標籤 Markdown/HTML |
| Email 整合 | ❌ | ✅ IMAP/SMTP + AI triage |
| Calendar 整合 | ❌ | ✅ CalDAV sync |
| Notes / Tasks | ❌ | ✅ 筆記 + 排程任務 |
| Memory / Skills | ✅ 自動記憶 | ✅ ChromaDB 向量記憶 |
| Cookbook (模型推薦) | ❌ | ✅ 硬體掃描 + 一鍵部署 |
| Scheduled Tasks | ✅ Cron 排程 | ✅ Cron 排程 |
| MCP 支援 | ✅ | ✅ 4 個內建 server |
| Multi-user | ✅ 角色權限 | ✅ 角色權限 + 2FA |
| 嵌入式 Widget | ✅ | ❌ |
| Dynamic Model Routing | ✅ 規則路由 | ❌ |
| No-code Agent Builder | ✅ | ❌ |
| Developer API | ✅ Swagger | ✅ FastAPI |
| PWA / Mobile | ✅ 獨立 mobile app | ✅ PWA 響應式 |
| Browser Extension | ✅ Chrome | ❌ |
| TTS / STT | ✅ 多 provider | ✅ faster-whisper |
| Image Generation | ❌ | ✅(via MCP) |
| Shell Access | ❌ | ✅ admin-only |
| YouTube 處理 | ❌ | ✅ 轉錄 + 摘要 |
| Coding Agent 整合 | ❌ | ✅ Claude Code / Codex |
7.3 LLM Provider 支援
| 維度 | AnythingLLM | Odysseus |
|---|---|---|
| 支援數量 | 35+ 原生支援 | 任何 OpenAI-compatible |
| Provider UI | 每個 provider 有專屬設定頁面 | Settings 統一設定 |
| 本地模型 | Ollama / LM Studio / llama.cpp / Docker Model Runner | Ollama / vLLM / llama.cpp |
| Model Router | ✅ Dynamic routing | ❌ |
7.4 Vector Database 支援
| 維度 | AnythingLLM | Odysseus |
|---|---|---|
| 預設 DB | LanceDB(零設定) | ChromaDB |
| 可選 DB | PGVector / Pinecone / Chroma / Weaviate / Qdrant / Milvus / Zilliz / Astra DB | ChromaDB only |
| 自訂 Embedder | 15+ provider | fastembed (ONNX) |
7.5 部署方式比較
| 部署方式 | AnythingLLM | Odysseus |
|---|---|---|
| Desktop App | ✅ | ❌ |
| Docker | ✅ | ✅ |
| Docker Compose | ✅ | ✅(含 ChromaDB + SearXNG + ntfy) |
| 雲端一鍵部署 | ✅ 8 種(AWS / GCP / DO / Railway…) | ❌ |
| Helm / K8s | ✅ | ❌ |
| Native 安裝 | ✅ | ✅(Python / macOS script / Windows PS) |
| Bare Metal 指南 | ✅ | ❌(README 內含) |
7.6 安全性比較
| 維度 | AnythingLLM | Odysseus |
|---|---|---|
| 整體評級 | 🟢 低風險 | 🟡 中風險 |
| 認證 | JWT + 多用戶角色 | bcrypt + 2FA + session token |
| 2FA | ❌ | ✅ (pyotp) |
| Shell Access | ❌ 不提供 | ✅ admin-only(shell=True) |
| Prompt Injection 防護 | 基礎 | ✅ 明確 untrusted context 標記 |
| SSRF 防護 | 基礎 | ✅ url_safety.py 完整實作 |
| Owner Scope | Workspace 隔離 | 有若干 Issue 待修 |
| Telemetry | PostHog(可關) | ❌ 無遙測 |
7.7 選擇建議
選 AnythingLLM,如果你…
- 需要開箱即用的 Desktop App,不想碰 terminal
- 核心需求是文件 RAG 對話
- 需要 9 種 vector DB 選擇和豐富的 LLM provider 設定
- 需要網站嵌入式聊天元件
- 需要視覺化 Agent Flow Builder
- 需要雲端一鍵部署(AWS / GCP / Railway 等)
- 重視穩定性和成熟度(3 年歷史,正式版本號)
選 Odysseus,如果你…
- 需要完整的 workspace(chat + email + calendar + notes + docs + research)
- 需要 Deep Research 多步驟研究報告
- 需要 Cookbook 硬體適配 + 模型推薦 + 一鍵本地 serving
- 需要模型盲測比較(Compare)
- 需要 shell / python 工具存取(agent 完整系統控制)
- 需要 2FA 安全認證
- 已經有 Claude Code / Codex 工作流,想要 agent 記憶互通
- 偏好 Python 生態系(FastAPI / SQLAlchemy / ChromaDB)
兩者的根本差異:AnythingLLM 專注於「文件 RAG + 對話」,做得深且穩;Odysseus 嘗試成為「AI 驅動的個人工作站」,涵蓋面更廣但每個功能深度不一。
8. 進階技巧
8.1 Custom Agent Skills
在 server/storage/plugins/agent-skills/ 目錄下建立 JavaScript 檔案,定義自訂工具:
1module.exports = {
2 name: "my-custom-tool",
3 description: "Description for the LLM",
4 handler: async (args) => {
5 // Your logic here
6 return { result: "..." };
7 }
8};
8.2 Document Sync
v1.13.0 新增 document sync (文件同步) 功能——系統定期檢查已匯入的線上文件是否有更新,自動重新向量化。可透過 DOCUMENT_SYNC_STALE_AFTER_MS 環境變數調整間隔。
8.3 多語系支援
locales/ 目錄含中文(簡體)、日文翻譯。可透過 PR 貢獻更多語系。
8.4 模型本地推論
AnythingLLM 內建原生 embedder(不需外部服務),也支援本地 LLM(llama.cpp compatible model / Microsoft Foundry Local / Docker Model Runner / AMD Lemonade)。
9. 整合進其他工作流
9.1 API 整合
1# 透過 API 上傳文件
2curl -X POST http://localhost:3001/api/v1/document/upload \
3 -H "Authorization: Bearer YOUR_API_KEY" \
4 -F "file=@document.pdf"
5
6# 透過 API 對話
7curl -X POST http://localhost:3001/api/v1/workspace/my-workspace/chat \
8 -H "Authorization: Bearer YOUR_API_KEY" \
9 -H "Content-Type: application/json" \
10 -d '{"message": "What does this document say about X?"}'
9.2 與 SearXNG 整合
AnythingLLM agent 支援 SearXNG 作為搜尋 provider,可自建 SearXNG 實例並在設定中指定。
9.3 與 Slack / Discord Bot 整合
透過 Developer API + webhook,可將 AnythingLLM 接入 Slack 或 Discord bot。
9.4 CI/CD 整合
在 pipeline 中使用 API 自動上傳新文件到 workspace,保持知識庫最新。
10. 重點摘要 Checklist
- 安裝:Desktop App 一鍵 /
docker pull mintplexlabs/anythingllm/ 雲端一鍵 - 首次設定:選擇 LLM provider + embedder + vector DB
- 文件 RAG:上傳 PDF / DOCX → 自動向量化 → 開始對話
- Agent:啟用內建工具或建立自訂 skill
- 排程:Scheduled Tasks 設定定期任務
- 多用戶:Docker 版支援角色權限管理
- 嵌入:Embeddable Widget 嵌入網站客服
- API:完整 REST API + Swagger 文件
- 隱私:
DISABLE_TELEMETRY=true關閉遙測 - 安全:設定
AUTH_TOKEN/JWT_SECRET+ HTTPS - vs Odysseus:AnythingLLM 更穩定 + RAG 更深;Odysseus 功能面更廣(email / calendar / research / cookbook)
11. 進一步閱讀
- 官方文件: https://docs.anythingllm.com
- 官網 + Desktop 下載: https://anythingllm.com
- Quickstart: https://docs.anythingllm.com/getting-started
- Agent 文件: https://docs.anythingllm.com/agent/custom/introduction
- Agent Flow Builder: https://docs.anythingllm.com/agent-flows/overview
- Dynamic Model Routing: https://docs.anythingllm.com/model-router/overview
- Memory 功能: https://docs.anythingllm.com/features/memories
- MCP 整合: https://docs.anythingllm.com/mcp-compatibility/overview
- Scheduled Tasks: https://docs.anythingllm.com/scheduled-jobs/overview
- Bare Metal 部署: https://github.com/Mintplex-Labs/anything-llm/blob/master/BARE_METAL.md
- Contributing: https://github.com/Mintplex-Labs/anything-llm/blob/master/CONTRIBUTING.md
- Discord 社群: https://discord.gg/6UyHPeGZAC
- Odysseus 專案: https://github.com/pewdiepie-archdaemon/odysseus
Comments