★ 41,405· 3,371 forks· Python· AGPL-3.0开源替代

OpenViking:AI Agent 的自進化上下文資料庫

volcengine/OpenViking

火山引擎開源的 Agent 上下文資料庫,將知識/記憶/技能統一為虛擬檔案系統,支援分層檢索和會話歸檔

成熟度:維護活躍,最近提交0天前,open issues 1199,3個月內快速迭代

项目体检

部署 · Docker Compose 一键部署,默认端口 1933(服务)+ 1934(Caddy 反向代理),公网 HTTPS 需配置 .env 中的 OPENVIKING_PUBLIC_BASE_URL 和 ACME 邮箱

成本 · 开箱即用,可选配置 LLM API Key(支持 OpenAI/火山方舟)、OAuth 认证、Gateway 管理密钥;依赖 Python 3.10+ 和多个 PDF/爬虫库

技术 · Python + FastAPI + uvicorn,集成 Scrapy/trafilatura(网页抓取)、pdfplumber(文档解析)、APScheduler(任务调度)、Maturin(Rust 绑定)

许可 · AGPL-3.0,商用需开源衍生代码或联系火山引擎获取商业授权

活跃 · 最新版本 v0.5.3(1天前),329 贡献者,4.1万 stars,维护高度活跃

解決什麼

傳統 AI Agent 的記憶管理是"黑箱":文本進去,向量出來,沒人知道 Agent 到底記住了什麼。OpenViking 將 Agent 的知識、記憶、技能統一組織為虛擬檔案系統(viking://),Agent 像操作檔案一樣用 ls、tree、read、write 導航上下文,開發者可直接開啟任意目錄檢查和編輯 Agent 的認知。每個目錄自動生成摘要,Agent 先掃描摘要判斷相關性,再決定是否讀取完整內容,避免向量檢索的"全域性掃描"低效。

為何火

火山引擎在 GitHub 上線 3 個月即獲 4.1 萬 stars,核心原因是讓 Agent 記憶透明化。不同於 LangChain Memory 或 Mem0 的純向量儲存,OpenViking 的檔案系統隱喻讓非技術人員也能理解 Agent 在"想什麼"。HN 社群認可其"分層檢索"設計(L0 摘要→L1 概覽→L2 全文),認為這比傳統 RAG 更符合人類認知習慣。國內開發者青睞其火山引擎映象(volces.com)和中文文件,無需梯子即可快速上手。

核心功能

  • 虛擬檔案系統:知識庫在 viking://resources/,使用者記憶在 viking://user/{user_id}/memories/,技能定義在 viking://user/{user_id}/skills/,每個路徑都可用 URI 引用和檢索
  • 三層載入機制:L0(一句話摘要)→L1(結構化概覽)→L2(原始全文),Agent 按需深入,減少 token 消耗
  • 目錄級語義搜尋:find 在指定子樹查詢,search 根據會話上下文規劃檢索路徑,避免全域性向量掃描
  • 會話歸檔與編譯:提交會話後自動提取記憶為 Markdown,可人工編輯;啟用 VikingBot 後 ov compile 將素材整理為 Wiki/知識圖譜/報告
  • 線上 Studio:Web 介面視覺化瀏覽檔案系統、編輯記憶、檢視會話歷史,支援 OAuth 登入和多使用者隔離

安裝

Docker(推薦):

# 本地部署(預設埠 1933)
docker compose up -d

# 公網 HTTPS 部署:建立 .env 檔案
echo "OPENVIKING_PUBLIC_BASE_URL=https://ov.your-domain.com" > .env
echo "[email protected]" >> .env
docker compose up -d

原始碼安裝(需 Python 3.10+):

pip install openviking
ov init  # 初始化配置
ov server start  # 啟動服務

國內使用者可在 docker-compose.yml 中切換映象為 openviking-cn-beijing.cr.volces.com/volcengine/openviking:latest。

適合誰

  • Agent 開發者:需要透明化記憶管理、支援多使用者隔離、希望記憶可人工稽核和編輯
  • 知識庫重度使用者:傳統 RAG 檢索不準,想按專案/主題分層組織文件,減少無關召回
  • 企業 AI 應用:需要審計 Agent 決策依據(AGPL 協議需注意,商用可能需聯絡火山引擎)
  • 不適合:純向量檢索場景(Qdrant/Milvus 更輕量)、不需要檔案系統抽象的簡單 Chatbot

社群評價

HN 討論熱度較低(2 點,1 條評論),但評價積極。有開發者指出"理想情況下應支援任意圖查詢或 Datalog,但分層組織+內容標籤+向量相似度是個好起點",認可其漸進式設計。GitHub 上 4.1 萬 stars 主要來自中文社群,Discord/飛書群活躍度高。批評聲音集中在 AGPL 協議的商用限制,以及 1199 個 open issues 反映的早期穩定性問題。

選型對比

維度OpenVikingLangChain MemoryMem0
記憶組織虛擬檔案系統,視覺化編輯鍵值對/向量,黑箱純向量,自動管理
檢索粒度目錄級,支援路徑過濾全域性向量檢索全域性向量檢索
人工干預支援直接編輯 Markdown需寫程式碼修改不支援
部署複雜度Docker 一鍵,需配置 LLM庫整合,輕量SaaS 或自託管
許可協議AGPL(商用需開源)MITApache 2.0

取捨:OpenViking 適合需要"可解釋記憶"的複雜 Agent,代價是 AGPL 協議和較重的部署;LangChain Memory 適合快速原型,但缺乏透明度;Mem0 自動化程度高,但犧牲了人工控制。

已知坑

  • AGPL 協議陷阱:若將 OpenViking 整合到 SaaS 產品,需開源整個後端程式碼,商用前務必諮詢法務或聯絡火山引擎商業授權
  • 1199 個 open issues:專案處於快速迭代期,部分功能(如 MCP 整合、多模態支援)文件滯後,生產環境建議鎖定穩定版本
  • LLM 依賴:目錄摘要生成、會話編譯依賴 OpenAI/火山方舟 API,離線場景需自行適配本地模型
  • 中文分詞:README 未提及中文最佳化,實測對中文文件的語義檢索效果一般,可能需調整 Embedding 模型
  • 資源佔用:包含 Scrapy/PDF 解析等重依賴,Docker 映象約 2GB,小記憶體伺服器需注意

安装方式:docker compose