# AI Agent 後端替代方案評估報告
| 欄位 | 內容 |
|---|---|
| **評估日期** | 2026-03-19 |
| **對照文件** | AI_Agent系統_SA文件.md v2 |
| **評估目標** | 尋找比 AnythingLLM 更輕量的開源方案,替代 SA 文件中的後端技術棧 |
---
## 1. 現有 SA 文件後端架構摘要
| 元件 | 技術 | 說明 |
|---|---|---|
| API 框架 | FastAPI + Uvicorn | 自建 REST / SSE 串流 API |
| Agent 引擎 | LangGraph + LangChain | 狀態機管理多步 Agent 流程 |
| LLM 推理 | llama.cpp server | 本機離線推理,Qwen2.5-VL 7B |
| Embedding | nomic-embed-text | 768 維向量 |
| 向量資料庫 | PostgreSQL 16 + pgvector | 部署於 Remote Server |
| 本機儲存 | SQLite | 對話紀錄、稽核日誌 |
| MCP 工具 | langchain-mcp-adapters + mcp SDK | CAD 指令查詢 |
| 文件解析 | pymupdf4llm + Tesseract OCR | PDF / Word / 圖片 |
| 前端 | React + Vite + TailwindCSS | 獨立前端 |
---
## 2. 評估準則(依 SA 需求優先排序)
| # | 準則 | 權重 | 說明 |
|---|---|---|---|
| C1 | **RAG 知識檢索** | 必要 | 支援向量搜尋、Rerank、引用來源 |
| C2 | **MCP 工具整合** | 必要 | 透過 MCP 協議呼叫自訂工具(CAD 指令查詢) |
| C3 | **llama.cpp / 本地 LLM** | 必要 | 離線環境,需本機推理引擎 |
| C4 | **pgvector 支援** | 必要 | 向量資料庫部署於 Remote Server |
| C5 | **離線部署(無 Docker)** | 必要 | 研發筆電無 Docker,需 pip/原生安裝 |
| C6 | **Python 技術棧** | 高 | 維護人員具 Python 基礎 |
| C7 | **多模態(圖片分析)** | 高 | Qwen2.5-VL 視覺語言模型 |
| C8 | **SSE 串流輸出** | 高 | 逐字回應降低等待感 |
| C9 | **活躍開發 / 週更** | 中 | 持續維護降低技術債風險 |
| C10 | **輕量(比 AnythingLLM 小)** | 中 | 部署在 OA 筆電,資源有限 |
---
## 3. 各方案逐項評估
### 3.1 Kotaemon(★★★★★ 推薦)
| 項目 | 內容 |
|---|---|
| **GitHub** | [Cinnamon/kotaemon](https://github.com/Cinnamon/kotaemon) ★ 25.2k |
| **語言** | Python 91.5% |
| **授權** | Apache 2.0 |
| **最新版** | v0.11.2(2 週前) |
| **定位** | 開源 RAG UI,文件問答系統 |
**功能對照:**
| 準則 | 支援 | 說明 |
|---|---|---|
| C1 RAG | ✅ 完整 | Hybrid RAG(全文 + 向量)、Reranker、GraphRAG、NanoGraphRAG、LightRAG、進階引用(PDF 預覽高亮)|
| C2 MCP | ✅ 新增 | 2 週前剛加入 MCP tools 支援(commit: `feat: support MCP tools`)|
| C3 llama.cpp | ✅ 原生 | 明確支援 `llama-cpp-python` 與 Ollama |
| C4 pgvector | ⚠️ 需擴充 | 預設使用本機向量存儲(LanceDB),但架構可擴充自訂 vector store |
| C5 離線/無 Docker | ✅ | `pip install` 或 `uv` 安裝,明確提供 Without Docker 安裝方式 |
| C6 Python | ✅ | 91.5% Python,`flowsettings.py` 設定檔 |
| C7 多模態 | ✅ | 支援圖片表格問答、Docling OCR、Azure Document Intelligence |
| C8 SSE 串流 | ✅ | Gradio 原生支援串流輸出 |
| C9 活躍度 | ✅ | 67 個 releases,2 週前更新 |
| C10 輕量 | ✅ | 核心為 Python 套件,無需 Node.js/Docker |
**優勢:**
- 與 SA 文件需求**高度吻合**:RAG + MCP + llama-cpp-python + 離線 + Python
- 已內建多種 RAG 策略(Standard、GraphRAG、NanoGraphRAG、LightRAG),甚至超越 SA 設計
- 多模態文件解析(OCR、表格、圖片)已內建
- 多使用者登入、公私文件集合管理
- UI 基於 Gradio,可自訂但不需自建前端
- 安裝僅需 `python app.py`
**劣勢:**
- pgvector 需自行擴充(預設使用 LanceDB 本機向量庫)
- UI 為 Gradio(非 React),客製化彈性低於自建前端
- 無內建 FastAPI REST API(需自行包裝對外 API)
- MCP 支援剛加入,成熟度待觀察
**取代策略:**
Kotaemon 可取代 SA 文件中 **Agent + RAG + 文件解析 + 前端** 四大區塊。若需保留 pgvector,可在 `libs/ktem` 中擴充 PostgreSQL vector store。CAD MCP Server 仍需自行開發,但可直接透過 Kotaemon 的 MCP 整合呼叫。
---
### 3.2 LangFlow(★★★☆☆ 有條件推薦)
| 項目 | 內容 |
|---|---|
| **GitHub** | [langflow-ai/langflow](https://github.com/langflow-ai/langflow) ★ 146k |
| **語言** | Python 56.2% + TypeScript 25.9% |
| **授權** | MIT |
| **最新版** | v1.8.1(5 天前) |
| **定位** | 視覺化 AI Agent / Workflow 建構平台 |
**功能對照:**
| 準則 | 支援 | 說明 |
|---|---|---|
| C1 RAG | ✅ | 支援各種向量資料庫、Retrieval 節點 |
| C2 MCP | ✅ | MCP Client + Server 雙向支援,可將 Flow 發布為 MCP Server |
| C3 llama.cpp | ⚠️ | 透過 Ollama 或自訂 OpenAI-compatible endpoint 間接支援 |
| C4 pgvector | ✅ | 支援 PGVector 作為向量存儲 |
| C5 離線/無 Docker | ✅ | `uv pip install langflow` 即可安裝 |
| C6 Python | ✅ | 核心為 Python,元件以 Python 自訂 |
| C7 多模態 | ⚠️ | 可整合多模態模型,但非核心功能 |
| C8 SSE 串流 | ✅ | 內建串流支援 |
| C9 活躍度 | ✅ | 286 releases,每天更新,344 contributors |
| C10 輕量 | ❌ | **偏重**,完整安裝含前端 + SQLite + 多種整合,資源佔用較高 |
**優勢:**
- 功能最全面,視覺化拖拉建構 Agent 流程
- pgvector 原生支援
- MCP 雙向支援(Client + Server)
- 社群最龐大(146k stars)
- 有桌面版(Windows/macOS)
**劣勢:**
- **體量龐大**,不符合「比 AnythingLLM 小」的需求
- 視覺化建構器對離線環境的 OA 筆電可能過於沉重
- llama.cpp 僅間接支援(需 Ollama 中介或 OpenAI-compatible endpoint)
- 近期有多個 CVE 安全漏洞(CVE-2025-3248、CVE-2025-57760、CVE-2025-68477)
- 維護複雜度高,非 Python 基礎人員難以深入定制
**結論:** 功能強大但過於龐大,不適合 OA 筆電輕量部署場景。
---
### 3.3 LibreChat(★★★☆☆ 有條件推薦)
| 項目 | 內容 |
|---|---|
| **GitHub** | [danny-avila/LibreChat](https://github.com/danny-avila/LibreChat) ★ 34.8k |
| **語言** | TypeScript 69.9% + JavaScript 29.0% |
| **授權** | MIT |
| **最新版** | v0.8.4-rc1(昨天) |
| **定位** | 自託管 ChatGPT 替代品 |
**功能對照:**
| 準則 | 支援 | 說明 |
|---|---|---|
| C1 RAG | ✅ | 透過獨立的 `rag_api` 服務 |
| C2 MCP | ✅ | 完整 MCP 支援(已列入官方 MCP 客戶端清單)|
| C3 llama.cpp | ⚠️ | 透過 Custom Endpoints(OpenAI-compatible)間接支援 |
| C4 pgvector | ❌ | RAG API 使用自己的向量存儲方案,不直接用 pgvector |
| C5 離線/無 Docker | ⚠️ | 可不用 Docker,但需 Node.js + MongoDB,部署複雜 |
| C6 Python | ❌ | **TypeScript/JavaScript 技術棧**,非 Python |
| C7 多模態 | ✅ | 支援圖片分析(Claude 3、GPT-4o、Llama-Vision 等)|
| C8 SSE 串流 | ✅ | Resumable Streams,斷線自動重連 |
| C9 活躍度 | ✅ | 極度活躍,354 contributors |
| C10 輕量 | ❌ | 需 MongoDB + Redis + Node.js |
**優勢:**
- UI 最成熟美觀(ChatGPT 等級)
- MCP 支援完整且穩定
- 多使用者認證(OAuth2、LDAP)
- Artifacts、Code Interpreter 等進階功能
**劣勢:**
- **非 Python 技術棧**,與 SA 文件維護需求衝突
- **需要 MongoDB**,增加 Server 端部署複雜度
- RAG 是獨立微服務(`rag_api`),不是內建管道
- 不支援 pgvector
- 離線安裝 Node.js + MongoDB + Redis 困難度高
**結論:** 出色的聊天前端,但技術棧不匹配,離線部署困難。
---
### 3.4 Jan.ai(★★☆☆☆ 不推薦取代後端)
| 項目 | 內容 |
|---|---|
| **GitHub** | [janhq/jan](https://github.com/janhq/jan) ★ 41.1k |
| **語言** | TypeScript 72.1% + Rust 21.0% |
| **授權** | Apache 2.0 |
| **最新版** | v0.7.8(上週) |
| **定位** | 離線 ChatGPT 替代桌面應用 |
**功能對照:**
| 準則 | 支援 | 說明 |
|---|---|---|
| C1 RAG | ⚠️ | 基本文件對話,無進階 RAG pipeline |
| C2 MCP | ✅ | MCP integration for agentic capabilities |
| C3 llama.cpp | ✅ | 內建 llama.cpp |
| C4 pgvector | ❌ | 無 |
| C5 離線/無 Docker | ✅ | 桌面應用,完全離線 |
| C6 Python | ❌ | TypeScript + Rust |
| C7 多模態 | ⚠️ | 可載入多模態模型,但非核心功能 |
| C8 SSE 串流 | ✅ | OpenAI-compatible local API |
| C9 活躍度 | ✅ | 98 releases,每天更新 |
| C10 輕量 | ✅ | 桌面應用,輕量 |
**適合定位:** 可作為 **llama.cpp server 的替代方案**(提供 OpenAI-compatible API + 模型管理 UI),但**無法取代整個後端**。
**結論:** 桌面聊天應用而非後端框架。無 RAG pipeline、無 pgvector、非 Python。僅適合替代 LLM 推理層。
---
### 3.5 GPT4All(★★☆☆☆ 不推薦)
| 項目 | 內容 |
|---|---|
| **GitHub** | [nomic-ai/gpt4all](https://github.com/nomic-ai/gpt4all) ★ 77.2k |
| **語言** | C++ 52.0% + QML 30.3% |
| **授權** | MIT |
| **最新版** | v3.10.0(2025-02-25)|
| **定位** | 本機 LLM 桌面應用 |
**功能對照:**
| 準則 | 支援 | 說明 |
|---|---|---|
| C1 RAG | ⚠️ | LocalDocs 功能(基本文件對話),非完整 RAG |
| C2 MCP | ❌ | 無 MCP 支援 |
| C3 llama.cpp | ✅ | 基於 llama.cpp |
| C4 pgvector | ❌ | 本地向量存儲 |
| C5 離線/無 Docker | ✅ | 桌面安裝檔 |
| C6 Python | ⚠️ | 有 Python SDK,但核心是 C++/QML |
| C7 多模態 | ❌ | 不支援 |
| C8 SSE 串流 | ⚠️ | API server 支援 |
| C9 活躍度 | ❌ | **最後 commit 10 個月前,已停滯** |
| C10 輕量 | ✅ | 桌面應用 |
**結論:** 開發已停滯,無 MCP、無 pgvector、無多模態。不適合。
---
### 3.6 Budibase(★☆☆☆☆ 不適用)
| 項目 | 內容 |
|---|---|
| **GitHub** | [Budibase/budibase](https://github.com/Budibase/budibase) ★ 27.7k |
| **語言** | TypeScript 61.4% + Svelte 33.1% |
| **授權** | GPL v3 |
| **定位** | 低代碼應用建構平台 |
**結論:** 低代碼平台,定位為內部工具建構器。無原生 RAG、無 llama.cpp、無 pgvector。完全不匹配 SA 需求。
---
### 3.7 Quivr(★★☆☆☆ 不推薦)
| 項目 | 內容 |
|---|---|
| **GitHub** | [QuivrHQ/quivr](https://github.com/QuivrHQ/quivr) ★ 39k |
| **語言** | Python 99.3% |
| **授權** | Apache 2.0 |
| **最新版** | core v0.0.33(2025-02-04)|
| **定位** | RAG 框架 / 庫 |
**功能對照:**
| 準則 | 支援 | 說明 |
|---|---|---|
| C1 RAG | ✅ | 核心功能,opinionated RAG |
| C2 MCP | ❌ | 未提及 MCP 支援 |
| C3 llama.cpp | ⚠️ | 透過 Ollama 間接支援 |
| C4 pgvector | ⚠️ | 描述提及 PGVector,但使用者反映實際支援有問題 |
| C5 離線/無 Docker | ✅ | `pip install quivr-core` |
| C6 Python | ✅ | 99.3% Python |
| C7 多模態 | ❌ | 未提及 |
| C8 SSE 串流 | ⚠️ | 基本串流 |
| C9 活躍度 | ❌ | **最後 commit 9 個月前,已停滯** |
| C10 輕量 | ✅ | 純 Python 套件 |
**結論:** 純 RAG 庫但開發已停滯,無 MCP,pgvector 支援存疑。不推薦。
---
### 3.8 Deep Agents(★★☆☆☆ 不適用)
| 項目 | 內容 |
|---|---|
| **GitHub** | [langchain-ai/deepagents](https://github.com/langchain-ai/deepagents) ★ 15.1k |
| **語言** | Python 99.5% |
| **授權** | MIT |
| **定位** | 通用 Agent 框架(程式碼編寫導向)|
**結論:** 定位為 coding agent harness(類似 Claude Code),聚焦檔案系統操作與子代理。無內建 RAG、無 pgvector、非文件問答場景。Tool 數量少(使用者亦指出此問題)。不適合替代 SA 文件後端。
---
### 3.9 其他方案(編碼代理類,不適用)
| 方案 | Stars | 排除原因 |
|---|---|---|
| Cline | 59k | VS Code 編碼代理,非文件 QA |
| Aider | 42k | CLI 編碼輔助工具,非文件 QA |
| Nanobot / Nanoclaw / Picoclaw | 23-34k | OpenClaw 替代品,編碼代理,非文件 QA |
| OpenWork | 11.9k | 編碼工作流,非文件 QA |
---
## 4. 綜合比較矩陣
| 準則 | **Kotaemon** | LangFlow | LibreChat | Jan.ai | GPT4All | Quivr | Deep Agents |
|---|---|---|---|---|---|---|---|
| C1 RAG | ✅ 完整 | ✅ | ✅ | ⚠️ 基本 | ⚠️ 基本 | ✅ | ❌ |
| C2 MCP | ✅ 新增 | ✅ | ✅ | ✅ | ❌ | ❌ | ⚠️ |
| C3 llama.cpp | ✅ 原生 | ⚠️ 間接 | ⚠️ 間接 | ✅ | ✅ | ⚠️ 間接 | ⚠️ 間接 |
| C4 pgvector | ⚠️ 需擴充 | ✅ | ❌ | ❌ | ❌ | ⚠️ | ❌ |
| C5 離線/無 Docker | ✅ | ✅ | ⚠️ 複雜 | ✅ | ✅ | ✅ | ✅ |
| C6 Python | ✅ 91.5% | ✅ 56% | ❌ TS | ❌ TS | ⚠️ C++ | ✅ 99% | ✅ 99% |
| C7 多模態 | ✅ | ⚠️ | ✅ | ⚠️ | ❌ | ❌ | ❌ |
| C8 SSE 串流 | ✅ | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ |
| C9 活躍度 | ✅ | ✅ | ✅ | ✅ | ❌ 停滯 | ❌ 停滯 | ✅ |
| C10 輕量 | ✅ | ❌ 重量 | ❌ 重量 | ✅ | ✅ | ✅ | ✅ |
| **總分** | **9/10** | **7/10** | **5/10** | **5/10** | **3/10** | **4/10** | **3/10** |
---
## 5. 推薦方案與取代策略
### 首選推薦:Kotaemon
**理由:**
1. **需求契合度最高**:RAG(含 Hybrid、GraphRAG、Rerank)、MCP、llama-cpp-python、離線部署、Python 技術棧——全部原生支援
2. **體量輕於 AnythingLLM**:核心為 Python 套件,無需 Electron / Docker
3. **安裝簡便**:`pip install` 或 `uv` 即可,符合無 Docker 需求
4. **RAG 功能超越 SA 設計**:已內建 Hybrid RAG + Rerank + GraphRAG + 進階引用(PDF 高亮預覽),比 SA 文件中計畫的 RAG pipeline 更完整
5. **多模態文件解析已內建**:支援 Docling(本地開源 OCR)、Azure Document Intelligence(可選)
### 取代對照表
| SA 文件元件 | 現有技術 | Kotaemon 取代方式 |
|---|---|---|
| FastAPI API 服務 | 自建 FastAPI | Kotaemon 內建 Gradio web server(若需 REST API 可再包裝) |
| LangGraph Agent | LangGraph 自建圖 | Kotaemon 已內建 ReAct / ReWOO Agent 推理 |
| RAG Pipeline | 自建 Retriever + Reranker | Kotaemon Hybrid RAG + Rerank + GraphRAG |
| 文件解析 | pymupdf4llm + Tesseract | Kotaemon 內建 Docling / pymupdf 解析 |
| 向量資料庫 | pgvector(Remote) | **需擴充**:預設 LanceDB → 自訂 pgvector adapter |
| MCP 工具 | langchain-mcp-adapters | Kotaemon MCP tools 整合 |
| 前端 UI | React + Vite | Kotaemon Gradio UI(免自建前端) |
| 稽核日誌 | 自建 audit_logs | **需自行擴充** |
### 需補充開發的部分
| 項目 | 工作量 | 說明 |
|---|---|---|
| pgvector vector store adapter | 中 | 在 `libs/ktem` 中新增 PGVector 向量存儲後端 |
| CAD Tools MCP Server | 小 | 不變,MCP Server 獨立於 Kotaemon |
| 稽核日誌 | 小 | 增加操作攔截器寫入 audit_logs |
| REST API 包裝 | 中 | 若需從其他系統呼叫,需包裝 FastAPI 層 |
### 備選方案:LangFlow
若團隊偏好**視覺化流程建構**且不在意體量,LangFlow 是功能最全面的選擇(原生 pgvector + MCP 雙向支援)。但其體量遠大於 AnythingLLM,且近期有安全漏洞紀錄,不符合「更輕量」的目標。
### 不建議的組合方式
| 方式 | 原因 |
|---|---|
| Jan.ai 替代整個後端 | Jan 是桌面聊天 App,無 RAG pipeline / pgvector |
| LibreChat 替代後端 | TypeScript 技術棧 + 需 MongoDB,離線部署困難 |
| GPT4All 替代後端 | 開發已停滯 10 個月,無 MCP |
| 僅用 Deep Agents | 編碼代理定位,非文件 QA |
---
## 6. 建議修改 SA 文件的具體變更
若採納 Kotaemon 方案,SA 文件需調整的章節:
| SA 章節 | 變更內容 |
|---|---|
| §2 系統架構 | 後端從自建 FastAPI+LangGraph 改為 Kotaemon + 自訂擴充 |
| §3 業務流程 | RAG 流程簡化(Kotaemon 已內建 Hybrid RAG + Rerank) |
| §4 技術選型 | 移除 React/Vite/TailwindCSS 前端棧,改為 Gradio |
| §5 資料庫 | 保留 pgvector(Remote),新增 pgvector adapter 開發項 |
| §8 前端設計 | 改為 Kotaemon Gradio UI 客製化方案 |
| §9 MCP 設計 | MCP Server 不變,Client 改用 Kotaemon MCP 整合 |
| §12 開發計畫 | 大幅縮短 M1-M4(Kotaemon 已涵蓋大部分功能) |
**預估開發時間節省:** 原計劃 18 週可壓縮至約 8-10 週(主要投入 pgvector adapter、CAD MCP Server、客製化 UI 調整)。
Comments...
No Comments Yet...