OpenViking 把代理上下文收進同一個資料庫
5 個重點看懂 OpenViking:它把 agent 記憶、RAG 與技能整合成一個 context database,並提供分層載入、路徑追蹤與長期記憶。

OpenViking 怎麼把 agent 的記憶、RAG 和技能收在一起?
OpenViking 是一個把 agent 記憶、檢索和技能整合成單一 context database 的系統。
| 項目 | 組織內容 | 關鍵特點 |
|---|---|---|
| Filesystem paradigm | Memory, resources, skills | 像本地檔案一樣管理上下文 |
| Tiered context loading | L0, L1, L2 | 按需載入,節省 token |
| Directory recursive retrieval | Search and positioning | 結合目錄定位與語意搜尋 |
| Visualized retrieval trajectory | Debugging context flow | 讓檢索路徑可觀察 |
| Automatic session management | Conversation memory | 把 session 壓縮成長期記憶 |
1. 檔案系統式上下文
訂閱 AI 趨勢週報
每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。
不會寄垃圾信,隨時可取消。
OpenViking 的出發點不是把上下文塞進一個黑箱向量庫,而是把 agent context 當成檔案系統來整理。這讓開發者能直接理解 memory、resource、skill 各自放在哪裡,也更容易維護。

這種做法解決的是「上下文散在各處」的問題。OpenViking 把資料結構收斂成可讀、可查、可搬移的層次,讓 agent 的工作集更像資料夾,而不是一堆難以追蹤的 embedding。
- Memory:保存使用者與任務歷史
- Resources:保存知識、參考資料與外部內容
- Skills:保存可重用的 agent 行為
2. L0、L1、L2 分層載入
OpenViking 用 L0、L1、L2 三層來控制上下文載入,不會一次把所有資料都灌進模型。這樣可以減少 token 消耗,也避免 agent 被不必要的背景資訊干擾。
對長任務特別有用。當對話越跑越長,單純截斷容易丟掉關鍵細節;分層載入則讓系統只在需要時往更深層取資料。
- L0:當前立即需要的工作上下文
- L1:附近的支援上下文
- L2:較深層或歸檔內容
3. 目錄遞迴檢索
它不是只做平面的 RAG 搜尋,而是加入目錄感知的遞迴檢索。系統會先用路徑做定位,再用語意搜尋縮小範圍,對巢狀結構的上下文特別實用。

當專案裡同時有筆記、工具、記憶與技能時,這種方法比單純向量召回更好找。它能先進到對的資料夾,再在那個分支裡找最相關的內容。
範例流程:
project/
memory/
resources/
skills/
notes/
先按目錄定位,再在目標分支內做語意匹配。4. 可視化檢索軌跡
OpenViking 會把檢索路徑顯示出來,而不是藏在系統內部。這種 trace 能告訴你查詢走過哪些目錄、抓回了哪些上下文,除錯時比猜測黑箱 RAG 鏈路有效得多。
如果團隊正在調整 agent 行為,這個功能很實用。答案不對時,你可以直接看路徑,找出錯誤分支,再回頭調整結構或搜尋規則,而不是盲目改 prompt。
- 查看 recall 查詢走過的路徑
- 檢查 prompt 注入與 tool-call 歷史
- 追蹤某段記憶為什麼被選中或被略過
5. 自動 session 管理
OpenViking 也會處理持續進行中的 session。它能把對話內容、工具呼叫與資源引用壓縮成長期記憶,讓 agent 在下一次執行時延續先前學到的東西。
這讓它不只是儲存層,而是會累積經驗的上下文底座。隨著任務反覆發生,系統會保留常見模式、任務歷史與有用產物,讓後續運行更穩定。
- 對話壓縮
- 工具呼叫捕捉
- 長期記憶萃取
怎麼挑
如果你要做的是需要記憶、檢索和技能整合在一起的 agent,OpenViking 很合適。特別是當你希望上下文流向可追蹤、資料結構像檔案而不是向量黑箱時,它的優勢會更明顯。
如果你的需求只是簡單 RAG,輕量方案可能就夠了;但如果你要的是可累積、可除錯、可擴充的 agent 上下文系統,OpenViking 會更值得投入。