OpenViking: Context Database tự phát triển cho AI Agent
Giới thiệu OpenViking — Context Database mã nguồn mở của Volcano Engine, thống nhất Memory, RAG và Skills cho AI Agent qua giao diện file system viking://.
OpenViking là cơ sở dữ liệu ngữ cảnh (Context Database) mã nguồn mở dành cho AI Agent, được phát triển bởi Volcano Engine (ByteDance). Thay vì quản lý bộ nhớ, tri thức RAG và kỹ năng (skills) thành ba hệ thống rời rạc như cách làm truyền thống, OpenViking gói toàn bộ ngữ cảnh của Agent vào một hệ thống tệp ảo dưới giao thức viking:// — giúp Agent đọc ghi ngữ cảnh giống như developer thao tác với thư mục và file.
Dự án đang là một trong những repository tăng trưởng nhanh nhất trong mảng AI Agent infrastructure với hơn 32.000 GitHub stars sau vài tháng công bố, và đã được đánh giá là #1 Repository Của Ngày trên TiniX Repo Trending ở cả hai chủ đề agent-memory lẫn agentic-rag.
Vì sao AI Agent cần Context Database?
Nếu bạn đã từng xây dựng chatbot hoặc AI Agent trong thực tế, chắc chắn sẽ gặp ít nhất một trong những "cơn đau đầu" sau:
Ngữ cảnh phân mảnh: Bộ nhớ hội thoại nằm ở một chỗ, knowledge base RAG nằm ở chỗ khác, skills/tools lại ở nơi thứ ba. Mỗi hệ thống một API, một cách đánh index, khiến pipeline trở nên rối rắm và khó bảo trì.
Vector store là "hộp đen": RAG truyền thống cắt tài liệu thành các chunk phẳng rồi nhét vào vector database. Khi kết quả truy xuất sai, bạn gần như không thể biết tại sao sai hay chunk nào đã được đưa vào prompt.
Token overflow: Nhồi toàn bộ lịch sử hội thoại + tài liệu vào context window khiến chi phí token tăng vọt, response chậm và dễ vượt giới hạn model.
Agent không trưởng thành: Mỗi session kết thúc thì mọi kinh nghiệm bay màu. Agent chạy 1.000 lần vẫn "ngây thơ" như lần đầu, không nhớ được sở thích người dùng hay bài học từ lỗi cũ.
👉 Bài toán này được giới nghiên cứu gọi là context engineering — và OpenViking đề xuất một hướng giải quyết khác biệt: coi ngữ cảnh như một cơ sở dữ liệu đúng nghĩa, thay vì một đống embedding rời rạc.
OpenViking là gì?
Context Database: Hệ thống lưu trữ chuyên biệt cho ngữ cảnh của AI Agent — bao gồm memory (ký ức), resources (tài nguyên: tài liệu, repo, web page) và skills (kỹ năng) — thống nhất trong một nền tảng duy nhất.
Giao diện
viking://: Mọi mục ngữ cảnh đều có một URI dạng filesystem. Agent định vị và thao tác ngữ cảnh bằng các thao tác quen thuộc nhưls,tree,findthay vì query vào một vector store vô hình.Tiered loading (tải theo tầng): Mỗi nội dung khi ghi vào được xử lý sẵn thành 3 tầng tóm lược, và chỉ tải sâu đúng mức mà tác vụ yêu cầu — cắt giảm token consumption đáng kể.
Self-evolving: Sau mỗi session, OpenViking tự động trích xuất sở thích người dùng và kinh nghiệm của Agent vào bộ nhớ dài hạn — Agent càng dùng càng "khôn".
Nền tảng kỹ thuật: Ngôn ngữ chính là Python, kèm nhân hiệu năng cao viết bằng Rust (
crates/). Phát hành qua PyPI, npm và cargo, deploy bằng Docker/Helm đều được hỗ trợ.
Thông tin dự án
Phát triển bởi
Volcano Engine (ByteDance)
Ra mắt mã nguồn
Tháng 1/2026
GitHub Stars ⭐
~32.4k (tháng 8/2026)
License
AGPLv3 (main) · Apache 2.0 (CLI, examples)
Ngôn ngữ
Python (chính), Rust (nhân hiệu năng)
Yêu cầu
Python 3.10+
Nghiên cứu nền tảng
Paper VikingMem — chấp nhận tại VLDB 2026
Kiến trúc hệ thống
Toàn bộ ngăn xếp của OpenViking có thể hình dung như sau:
Ba tầng ngữ cảnh được tổ chức như một cây thư mục thực thụ:
👉 Điểm tinh tế nhất: mỗi thư mục cũng mang tầng tóm lược riêng (.abstract, .overview), nên hệ thống có thể đánh giá mức độ liên quan của cả nhánh trước khi đọc bất kỳ file đầy đủ nào.
Sáu tính năng nổi bật
1. Quản lý ngữ cảnh theo paradigm file system
Thay thế lưu trữ vector phân mảnh: Memory, tài nguyên và skills được tổ chức như cấu trúc folder thay vì các collection embedding vô hình.
Thao tác tất định (deterministic): Agent tìm ngữ cảnh bằng
ls/tree/findtrên URIviking://— kết quả có thể đoán trước được, khác hẳn việc "đánh cược" vào similarity search.Dễ visualize và debug: Developer có thể mở cây ngữ cảnh ra xem trực tiếp, y như quản lý file trên máy — không cần tool đặc biệt nào.
2. Tải ngữ cảnh theo tầng (3-Layer Loading)
Mỗi nội dung khi ghi vào được xử lý thành ba tầng, và chỉ được tải đến đúng độ sâu cần thiết:
L0 — Abstract: Tóm tắt một câu (~100 tokens) dùng để kiểm tra nhanh mức liên quan.
L1 — Overview: Thông tin cốt lõi và kịch bản sử dụng (~2k tokens) phục vụ giai đoạn lập kế hoạch.
L2 — Details: Dữ liệu gốc đầy đủ, chỉ đọc khi tác vụ thực sự cần.
✅ Kết quả: tránh token overflow, giảm chi phí gọi LLM và giữ context window "sạch" cho những gì thực sự quan trọng.
3. Truy xuất đệ quy thư mục (Recursive Directory Retrieval)
Kết hợp vị trí + ngữ nghĩa: Vector search chỉ đóng vai trò định vị thư mục có điểm số cao nhất, sau đó hệ thống đi sâu xuống layer-by-layer.
Kết quả có ngữ cảnh đi kèm: Chunk được trả về cùng với toàn bộ "xung quanh" của nó trong cây thư mục — hết cảnh chunk lạc loài, mất mối liên hệ.
Đa cấp độ: Truy vấn đi từ tổng quát đến chi tiết, mô phỏng cách con người duyệt tài liệu thật.
4. Quỹ đạo truy xuất minh bạch (Retrieval Visualization)
Trực quan hóa quá trình retrieval: Mỗi truy vấn đều lưu lại trajectory duyệt thư mục — bạn thấy được chính xác đường dẫn nào sinh ra kết quả.
Debug dễ dàng: Khi kết quả sai, thay vì đoán, bạn lần theo quỹ đạo để tìm chỗ hỏng (sai vị trí thư mục? tóm tắt L0 kém?).
Tối ưu hiệu suất có căn cứ: Dựa vào quỹ đạo để cải thiện cấu trúc cây, đổi tên thư mục, bổ sung tóm tắt — thay vì chỉnh mù tùy chỉnh tham số embedding.
5. Quản lý phiên tự động (Auto Session Management)
Nén nội dung tự động: Hội thoại dài được nén gọn mà vẫn giữ thông tin quan trọng.
Tham chiếu tài nguyên thông tin: Nội dung lớn không nhét thẳng vào prompt mà được tham chiếu qua URI
viking://.Rút trích bộ nhớ dài hạn: Khi session commit, hệ thống bất đồng bộ trích xuất sở thích người dùng và kinh nghiệm Agent vào
memories/.
6. Tự phát triển theo sử dụng (Self-Evolving)
Học hỏi từ ngữ cảnh: Agent tích lũy kinh nghiệm qua từng session — lỗi từng gặp, quy ước dự án, phong cách người dùng.
Cơ chế feedback vòng lặp: Kinh nghiệm được cập nhật tự động, tạo vòng lặp cải tiến liên tục.
Đã được kiểm chứng: Trên benchmark tau2-bench, bộ nhớ kinh nghiệm giúp nâng tỷ lệ hoàn thành nhiệm vụ lên +6.87 điểm % (retail) và +11.87 điểm % (airline) so với cùng LLM chạy không có memory.
So sánh với RAG truyền thống và Vector DB
Bảng so sánh nhanh
Tổ chức ngữ cảnh
Chunk phẳng
Embedding phẳng
Cây thư mục viking:// có cấu trúc
Bộ nhớ dài hạn
Không có
Không có
Có (auto-extract từ session)
Skills của Agent
Ngoài phạm vi
Ngoài phạm vi
Lưu và quản lý ngay trong DB
Token consumption
Cao (nhồi nhiều chunk)
Cao
Thấp (tải L0/L1 trước, L2 on-demand)
Khả năng debug
Gần như bằng không
Thấp
Cao (quỹ đạo truy xuất hiển thị)
Kết quả trả về
Chunk rời rạc
Vector + metadata
Nội dung kèm ngữ cảnh thư mục
Phân tích chi tiết
Pipeline điển hình: chunking → embedding → similarity search → nhồi top-K vào prompt.
Điểm yếu lớn nhất là mất ngữ cảnh cấu trúc: một đoạn văn bản về "API authentication" khi đứng độc lập không biết nó thuộc tài liệu nào, phiên bản nào, liên quan module nào.
Không có khái niệm "ghi nhớ": mỗi truy vấn bắt đầu từ số không, history hội thoại phải quản lý thủ công bên ngoài.
Khó vận hành: chỉnh chất lượng retrieval đồng nghĩa với chỉnh lại toàn bộ chunking/embedding strategy — rất tốn công thử sai.
Pinecone, Milvus, Qdrant... giải quyết tốt bài toán tìm kiếm tương tự ở quy mô lớn, nhưng:
Chỉ là storage, không phải context management: không có tầng tóm lược, không có session lifecycle, không có memory extraction.
Retrieval quality phụ thuộc hoàn toàn vào embedding model và cách chunking phía upstream.
Black-box với end-to-end agent: không trả lời được câu hỏi "tại sao Agent lại nghĩ người dùng thích câu trả lời kiểu này?".
Đặt ngữ cảnh làm first-class citizen thay vì phụ phẩm của embedding:
Thống nhất 3 loại ngữ cảnh (memory + knowledge + skills) trong một giao diện duy nhất — giảm số hệ thống phải vận hành.
Chi phí token được kiểm soát chủ động nhờ kiến trúc 3 tầng thay vì bị động nhồi top-K chunks.
Quan sát được: mọi quyết định truy xuất đều để lại dấu vết để audit.
Đánh đổi: bạn cần vận hành thêm một service (server + embedding/VLM provider) và chấp nhận license AGPLv3 nếu self-host.
Benchmark thực tế
Phiên bản 0.3.22 đã được đánh giá trên hai benchmark uy tín: LoCoMo (bộ nhớ người dùng trong hội thoại dài) và tau2-bench (nhiệm vụ multi-turn agent).
Độ chính xác bộ nhớ người dùng (LoCoMo)
OpenClaw
24.20%
82.08%
Hermes
33.38%
82.86%
Claude Code
57.21%
80.32%
Token input: giảm 34.3–91.0% so với chạy native.
Query latency: giảm 58.45–66.10%.
tau2-bench (kinh nghiệm Agent): tỷ lệ thành công nhiệm vụ tăng +6.87pp (retail) và +11.87pp (airline).
Con số đáng chú ý nhất: cả ba Agent khi gắn OpenViking đều hội tụ về dải 80–83% độ chính xác — nghĩa là phần lớn khoảng cách giữa các Agent đến từ chất lượng lớp bộ nhớ, chứ không phải LLM bên dưới. Đây cũng là luận điểm trung tâm của paper VikingMem (VLDB 2026) đằng sau dự án.
Bắt đầu nhanh với OpenViking
Cài đặt và khởi chạy server
Yêu cầu Python 3.10 trở lên. Ba bước chuẩn:
Thao tác ngữ cảnh bằng CLI ov
Sau khi server chạy, dùng client ov (đã kèm khi cài đặt):
👉 Nếu muốn trải nghiệm trước khi cài đặt, mở ngay OpenViking Studio — playground live trên browser với context playground, semantic search và multi-agent hub, không cần cài gì cả.
Tích hợp với AI Agent có sẵn
OpenViking cung cấp sẵn các integration để inject khả năng recall vào Agent phổ biến và tự commit session memory:
CLI Coding Agents: Claude Code, Codex, Cursor, TRAE, OpenCode, pi, Hermes, OpenClaw.
Giao thức chuẩn: MCP clients — dùng được cho bất kỳ Agent framework nào hỗ trợ MCP.
Framework Python: LangChain / LangGraph qua package tích hợp riêng.
Plugin hệ: Agent Plugins 1.0 cho hệ sinh thái plugin đa Agent.
Nếu bạn đã quen với cơ chế CLAUDE.md / Auto Memory của Claude Code, OpenViking có thể xem là bước nâng cấp tiếp theo: thay vì một file markdown tĩnh cho toàn dự án, bạn có một Context Database có cấu trúc, phân tầng và tự học theo thời gian.
Use case phù hợp thực tế
Coding Agent có trí nhớ dài hạn: nhớ convention dự án, thói quen code, kiến trúc hệ thống qua hàng chục session — đặc biệt giá trị với codebase lớn, maintain lâu năm.
Assistant chăm sóc khách hàng: ghi nhớ lịch sử tương tác và sở thích từng khách hàng (qua
memories/preferences/), cá nhân hóa phản hồi mà không phải nhồi lại toàn bộ lịch sử.Knowledge base nội bộ doanh nghiệp:
add-resourcetoàn bộ docs, wiki, repos rồi truy vấn bằng tiếng tự nhiên; quỹ đạo truy xuất giúp audit "Agent đã dựa vào tài liệu nào để trả lời".Multi-agent systems: các Agent chia sẻ ngữ cảnh qua không gian
peers/, cộng tác trên chung một nguồn tri thức thay vì mỗi con một bộ nhớ riêng.
Ưu nhược điểm và lưu ý khi áp dụng
Ưu điểm: Kiến trúc mới mẻ nhưng có nền tảng nghiên cứu nghiêm túc (VLDB 2026); benchmark chứng minh bằng số liệu cụ thể; mã nguồn mở đầy đủ tính năng, không khóa tính năng, không cần account hay activation key; hệ sinh thái integration phủ rộng các Agent phổ biến.
Nhược điểm: Dự án còn rất trẻ (công bố đầu 2026) — API và schema có thể thay đổi nhanh; cần vận hành thêm server + provider embedding/VLM khi self-host; chất lượng retrieval phụ thuộc vào cách tổ chức cây thư mục và chất lượng model tóm tắt.
Phù hợp nhất: Team đang xây dựng Agent production cần bộ nhớ dài hạn thật sự, đã "đủ đau" với RAG truyền thống và muốn một giải pháp có thể debug, audit được.
License AGPLv3 là điều kiện copyleft mạnh: nếu bạn sửa đổi mã nguồn OpenViking và cung cấp dịch vụ qua mạng, bạn buộc phải mở nguồn các thay đổi đó. Nếu mô hình kinh doanh không phù hợp, hãy cân nhắc bản Managed SaaS trên Volcano Engine hoặc Self-Managed (BYOC/offline, kích hoạt bằng license key) — hoặc chỉ dùng CLI/examples vốn là Apache 2.0.
Kết luận
OpenViking không đơn thuần là một "vector DB thay thế" — nó đề xuất một paradigm mới cho context engineering: quản trị ngữ cảnh của AI Agent như một hệ thống tệp có cấu trúc, tải theo tầng để tiết kiệm token, minh bạch để debug, và tự tiến hóa theo quá trình sử dụng. Với sức hút 32k+ stars và bộ benchmark thuyết phục, đây là dự án rất đáng theo dõi và thử nghiệm nếu bạn đang xây dựng Agent ở tầm production — dù vẫn cần cân nhắc kỹ về AGPLv3 và độ ổn định của một dự án non trẻ.
Tài liệu tham khảo:
Cập nhật lần cuối