字節跳動開源 OpenViking:用檔案系統管理 Agent 記憶與上下文
字節跳動開源 AI Agent 上下文管理系統 OpenViking。它不再把上下文切碎成扁平向量,而是以檔案系統目錄來統一管理 Agent 的記憶、資源和技能。通過 L0 到 L2 的分層按需載入,既降低了 Token 消耗,也讓檢索軌跡全程視覺化。

OpenViking 是字節跳動開源的 AI Agent 上下文管理系統。它不再把長文本切成零散的向量切片,而是建立了一套虛擬檔案系統,讓 Agent 像管理本地資料夾一樣組織記憶、技能與資源。
在做複雜任務時,傳統的檢索增強生成(RAG)往往依靠扁平的向量搜尋。這不僅容易丟失上下文結構,還會一口氣把大量碎片文本塞進提示詞,導致 Token 消耗飆升。
它能做什麼
OpenViking 把所有上下文歸入 viking:// 協議下的虛擬目錄。記憶被清晰劃分在使用者和 Agent 對應資料夾中,開發者可以用類似檢視目錄、讀取和查詢檔案的邏輯去呼叫資料。
系統最核心的設計是分層上下文按需載入。它把內容切分為三個層次:L0 是 100 Token 左右的極簡摘要,L1 是不超過 2000 Token 的功能概覽,L2 才是完整的詳細內容。
Agent 在檢索時先看摘要,只有確認需要細節時才會逐步載入深層內容。根據類似場景的基準測試,這種遞迴檢索機制在巢狀查詢場景下能將檢索延遲降低最高 30%,同時顯著節省 Token 開銷。
系統還提供了視覺化的檢索軌跡。Agent 翻閱了哪些目錄、挑中了哪些檔案,後臺都會完整記錄下來,方便開發者直觀排查和除錯。
怎麼用起來
整個專案採用 Apache 2.0 協議開源,底層索引使用了 C++ 擴充套件以保證效能。它支援通過相容 OpenAI 的介面接入視覺語言模型,能同時處理文件、連結和圖片等多種模態資料。
呼叫方式也比較簡單。開發者在 Python 中初始化本地資料路徑後,傳入網頁或本地檔案,系統就會自動完成解析並生成多層摘要。
在多輪對話執行過程中,它還會自動從會話和工具呼叫裡提煉新資訊,寫回記憶目錄,讓 Agent 實現經驗的自迭代進化。
為什麼重要
如果你正在開發需要長週期執行、多步驟規劃的複雜 Agent,或者正被傳統 RAG 的碎片化召回搞得焦頭爛額,OpenViking 值得直接下載嘗試。
比起單層向量庫拼接出來的方案,用檔案系統來管記憶給 Agent 帶來了清晰的層級感,檢索邏輯也變得透明可查。不過這種樹狀結構的優勢取決於內容本身是否具備分類邏輯,面對完全雜亂無章的扁平資料時,效果提升可能會相對有限。
來源 (1)
- aicost.org(在新分頁開啟)原文aicost.org