OpenViking là gì?

Ashley Innocent

Ashley Innocent

19 tháng 3 2026

OpenViking là gì?

Tóm tắt

OpenViking là một cơ sở dữ liệu ngữ cảnh mã nguồn mở dành cho các tác nhân AI, thay thế lưu trữ vector phẳng bằng một mô hình hệ thống tệp. Nó tổ chức ngữ cảnh (ký ức, tài nguyên, kỹ năng) dưới các URI viking:// với ba lớp: L0 (~100 token), L1 (~2k token), L2 (nội dung đầy đủ). Các thử nghiệm cho thấy giảm 91% chi phí token và hoàn thành tác vụ tốt hơn 43% so với RAG truyền thống.

Giới thiệu

Tác nhân AI của bạn liên tục quên mọi thứ. Nó đã hỏi cùng một điểm cuối API hai lần. Nó bỏ qua tùy chọn môi trường thử nghiệm của bạn. Nó không nhớ bài kiểm tra nào đã qua ngày hôm qua.

Đây là thực tế của việc xây dựng các tác nhân ngày nay. Hầu hết các nhóm đều vá víu các đường ống RAG, cơ sở dữ liệu vector và hệ thống bộ nhớ tùy chỉnh. Kết quả: ngữ cảnh bị phân mảnh, chi phí token tăng vọt và việc truy xuất thất bại một cách âm thầm.

Dữ liệu đã chứng minh điều này. Trong các thử nghiệm sử dụng tập dữ liệu LoCoMo10, các hệ thống RAG truyền thống chỉ đạt tỷ lệ hoàn thành tác vụ 35-44% trong khi tiêu tốn 24-51 triệu token đầu vào.

OpenViking tiếp cận theo một cách khác. Được tạo bởi nhóm OpenViking của ByteDance, nó thay thế lưu trữ vector phẳng bằng một mô hình hệ thống tệp. Tất cả ngữ cảnh đều nằm dưới các URI viking:// với khả năng tải L0/L1/L2 theo cấp bậc. Kết quả: hoàn thành tác vụ 52% với số token ít hơn 91%.

💡
Người dùng Apidog xây dựng các tác nhân kiểm thử API có thể tích hợp OpenViking để duy trì ngữ cảnh hội thoại qua các lần chạy kiểm thử, ghi nhớ tùy chọn môi trường của người dùng và lưu trữ tài liệu API để truy xuất ngữ nghĩa.
button

Trong hướng dẫn này, bạn sẽ tìm hiểu cách OpenViking giải quyết vấn đề phân mảnh ngữ cảnh, xem mô hình L0/L1/L2 hoạt động và triển khai máy chủ đầu tiên của bạn trong 15 phút.

Vấn đề ngữ cảnh của tác nhân

Các tác nhân AI đối mặt với những thách thức về ngữ cảnh mà các ứng dụng truyền thống chưa bao giờ gặp phải.

Hãy xem xét một tác nhân giúp nhà phát triển kiểm thử API. Trong một tuần, nó cần theo dõi:

RAG truyền thống lưu trữ điều này dưới dạng các khối phẳng trong cơ sở dữ liệu vector. Khi truy vấn, bạn nhận được các đoạn tương tự hàng đầu-K mà không có cấu trúc, không có thứ bậc và không có khả năng nhìn thấy những gì đã bị bỏ lỡ.

Năm thách thức cốt lõi

OpenViking xác định năm vấn đề cốt lõi trong quản lý ngữ cảnh tác nhân:

Thách thức RAG truyền thống Giải pháp của OpenViking
Ngữ cảnh bị phân mảnh Ký ức, tài nguyên, kỹ năng lưu trữ riêng biệt Mô hình hệ thống tệp thống nhất dưới viking://
Nhu cầu tăng vọt Các tác vụ dài tạo ra ngữ cảnh khổng lồ Tải cấp bậc L0/L1/L2 giảm 91% token
Truy xuất kém hiệu quả Tìm kiếm vector phẳng thiếu cái nhìn tổng thể Truy xuất đệ quy thư mục với phân tích ý định
Không thể quan sát Chuỗi truy xuất hộp đen Đường dẫn tìm kiếm trực quan hóa để gỡ lỗi
Lặp lại hạn chế Chỉ lịch sử tương tác người dùng Quản lý phiên tự động với 6 danh mục bộ nhớ

Điều này thể hiện một sự thay đổi từ “lưu trữ mọi thứ, truy xuất mơ hồ” sang “cấu trúc mọi thứ, truy xuất chính xác.”

OpenViking là gì?

OpenViking là một cơ sở dữ liệu ngữ cảnh mã nguồn mở dành cho các tác nhân AI, được tạo bởi nhóm OpenViking của ByteDance theo giấy phép Apache 2.0.

Tổng quan kiến trúc OpenViking, minh họa cách các tác nhân AI tương tác với cơ sở dữ liệu ngữ cảnh theo mô hình hệ thống tệp. Nó hiển thị cấu trúc phân cấp viking:// với tài nguyên, ký ức người dùng và khả năng tác nhân.

Nó hợp nhất tất cả ngữ cảnh vào một hệ thống tệp ảo. Ký ức, tài nguyên và kỹ năng được ánh xạ tới các thư mục dưới viking://, mỗi thư mục có một URI duy nhất.

viking://
├── resources/              # Kiến thức bên ngoài: tài liệu, mã, trang web
│   ├── my_project/
│   │   ├── docs/
│   │   │   ├── api/
│   │   │   └── tutorials/
│   │   └── src/
│   └── ...
├── user/                   # Đặc trưng người dùng: tùy chọn, thói quen
│   └── memories/
│       ├── preferences/
│       │   ├── writing_style
│       │   └── coding_habits
│       └── ...
└── agent/                  # Khả năng của tác nhân: kỹ năng, ký ức tác vụ
    ├── skills/
    │   ├── search_code
    │   ├── analyze_data
    │   └── ...
    ├── memories/
    └── instructions/

Các tác nhân có được khả năng thao tác ngữ cảnh trực tiếp:

Hãy nghĩ về nó như sự khác biệt giữa việc tìm kiếm toàn bộ ổ cứng của bạn và biết chính xác thư mục nào chứa tệp.

Tính năng cốt lõi 1: Mô hình quản lý hệ thống tệp

Mô hình hệ thống tệp giải quyết vấn đề phân mảnh ngữ cảnh bằng cách hợp nhất tất cả các loại ngữ cảnh dưới một mô hình duy nhất.

Ba loại ngữ cảnh

Loại Mục đích Vòng đời Sáng kiến
Tài nguyên Kiến thức bên ngoài (tài liệu, mã, FAQ) Dài hạn, tĩnh Người dùng thêm
Ký ức Nhận thức của tác nhân (tùy chọn, kinh nghiệm) Dài hạn, động Tác nhân trích xuất
Kỹ năng Khả năng gọi được (công cụ, MCP) Dài hạn, tĩnh Tác nhân gọi

Mỗi loại nằm trong thư mục riêng của nó:

API giống Unix

OpenViking cung cấp các thao tác dòng lệnh quen thuộc:

from openviking import OpenViking

client = OpenViking(path="./data")

# Tìm kiếm ngữ nghĩa trên tất cả các loại ngữ cảnh
results = client.find("xác thực người dùng")

# Liệt kê nội dung thư mục
contents = client.ls("viking://resources/")

# Đọc nội dung đầy đủ
doc = client.read("viking://resources/docs/auth.md")

# Nhận tóm tắt nhanh (lớp L0)
abstract = client.abstract("viking://resources/docs/")

# Nhận tổng quan chi tiết (lớp L1)
overview = client.overview("viking://resources/docs/")

API hoạt động thông qua Python SDK hoặc máy chủ HTTP, tương thích với bất kỳ framework tác nhân nào.

Tính năng cốt lõi 2: Tải ngữ cảnh phân cấp L0/L1/L2

Nhồi nhét ngữ cảnh khổng lồ vào các lời nhắc vừa tốn kém vừa dễ gây lỗi. OpenViking tự động xử lý tất cả ngữ cảnh thành ba lớp phân cấp:

Lớp Tên Tệp Giới hạn Token Mục đích
L0 Tóm tắt .abstract.md ~100 token Tìm kiếm vector, lọc nhanh
L1 Tổng quan .overview.md ~2k token Xếp hạng lại, điều hướng nội dung
L2 Chi tiết Tệp gốc Không giới hạn Nội dung đầy đủ, tải theo yêu cầu

Cách hoạt động

Khi bạn thêm một tài nguyên (như tệp tài liệu PDF), OpenViking:

  1. Phân tích tài liệu thành văn bản (chưa gọi LLM)
  2. Xây dựng cấu trúc cây thư mục trong bộ lưu trữ AGFS
  3. Xếp hàng chờ xử lý ngữ nghĩa không đồng bộ
  4. Tạo các bản tóm tắt L0 và tổng quan L1 từ dưới lên

Kết quả là một cấu trúc phân cấp:

viking://resources/my_project/
├── .abstract.md               # L0: "Tài liệu API bao gồm xác thực, điểm cuối, giới hạn tốc độ"
├── .overview.md               # L1: Tóm tắt chi tiết với điều hướng phần
├── docs/
│   ├── .abstract.md          # Mỗi thư mục đều có L0/L1
│   ├── .overview.md
│   ├── auth.md               # L2: Nội dung đầy đủ
│   ├── endpoints.md
│   └── rate-limits.md
└── src/
    └── ...

Ảnh hưởng đến ngân sách Token

Hệ thống phân cấp này giúp tiết kiệm chi phí đáng kể:

# RAG truyền thống: Tải toàn bộ nội dung
full_docs = retrieve_all("authentication")  # 50k token

# OpenViking: Bắt đầu với L1, chỉ tải L2 nếu cần
overview = client.overview("viking://resources/docs/auth/")  # 2k token

if needs_more_detail(overview):
    content = client.read("viking://resources/docs/auth/oauth.md")  # Tải L2 cụ thể

Trong các thử nghiệm, phương pháp này đã giảm chi phí token đầu vào 91% so với RAG truyền thống trong khi cải thiện tỷ lệ hoàn thành tác vụ 43%.

Tính năng cốt lõi 3: Truy xuất đệ quy thư mục

Tìm kiếm vector đơn lẻ gặp khó khăn với các truy vấn phức tạp. OpenViking triển khai một chiến lược truy xuất đệ quy thư mục:

Quá trình năm bước

1. Phân tích ý định
   ↓
2. Định vị ban đầu (tìm các thư mục có điểm số cao)
   ↓
3. Khám phá tinh chỉnh (tìm kiếm trong các thư mục)
   ↓
4. Leo xuống đệ quy (đi sâu vào các thư mục con)
   ↓
5. Tổng hợp kết quả (trả về các ngữ cảnh được xếp hạng)

Bước 1: Phân tích ý định

Truy vấn “làm thế nào để xác thực người dùng?” được phân tích để xác định:

Bước 2: Định vị ban đầu

Tìm kiếm vector nhanh chóng định vị các thư mục có điểm số cao:

Bước 3: Khám phá tinh chỉnh

Trong thư mục hàng đầu, một tìm kiếm thứ cấp tìm thấy các tệp cụ thể:

Bước 4: Leo xuống đệ quy

Nếu các thư mục con tồn tại (như auth/providers/), quá trình sẽ lặp lại đệ quy.

Bước 5: Tổng hợp kết quả

Các kết quả cuối cùng được tổng hợp và xếp hạng theo mức độ liên quan, với các dấu vết truy xuất được giữ lại.

Chiến lược “khóa thư mục trước, sau đó khám phá nội dung” này cải thiện độ chính xác của việc truy xuất bằng cách hiểu toàn bộ ngữ cảnh thông tin, chứ không chỉ các khối riêng lẻ.

Tính năng cốt lõi 4: Dấu vết truy xuất trực quan hóa

RAG truyền thống là một hộp đen. Khi truy xuất thất bại, bạn không thể biết đó là vấn đề tương tự vector, vấn đề phân đoạn hay dữ liệu bị thiếu.

Cấu trúc hệ thống tệp của OpenViking giúp việc truy xuất có thể quan sát được:

Dấu vết truy xuất cho truy vấn: "làm mới token OAuth"

├── viking://resources/docs/
│   ├── [ĐIỂM: 0.45] .abstract.md: bỏ qua (mức độ liên quan thấp)
│   └── [ĐIỂM: 0.89] auth/: được chọn (mức độ liên quan cao)
│       ├── [ĐIỂM: 0.92] oauth.md: TRẢ VỀ
│       ├── [ĐIỂM: 0.34] jwt.md: bỏ qua
│       └── [ĐIỂM: 0.78] providers/
│           └── [ĐIỂM: 0.85] google.md: TRẢ VỀ

Dấu vết này cho thấy:

Để gỡ lỗi, điều này là vô giá. Bạn có thể thấy liệu tác nhân có bỏ lỡ ngữ cảnh vì nó ở sai thư mục, có bản tóm tắt L0 kém, hay rơi xuống dưới ngưỡng điểm hay không.

Tính năng cốt lõi 5: Quản lý phiên tự động

OpenViking có một vòng lặp tự lặp bộ nhớ tích hợp. Vào cuối mỗi phiên, hệ thống có thể trích xuất ký ức và cập nhật kiến thức của tác nhân một cách tự động.

Sáu danh mục bộ nhớ

Danh mục Chủ sở hữu Vị trí Mô tả Chiến lược cập nhật
hồ sơ người dùng user/memories/.overview.md Thông tin người dùng cơ bản Có thể nối thêm
tùy chọn người dùng user/memories/preferences/ Tùy chọn theo chủ đề Có thể nối thêm
thực thể người dùng user/memories/entities/ Người, dự án, tổ chức Có thể nối thêm
sự kiện người dùng user/memories/events/ Quyết định, cột mốc Không cập nhật
trường hợp tác nhân agent/memories/cases/ Các trường hợp đã học Không cập nhật
mẫu tác nhân agent/memories/patterns/ Các mẫu đã học Không cập nhật

Cách hoạt động của việc trích xuất bộ nhớ

# Bắt đầu một phiên
session = client.session()

# Thêm tin nhắn (các lượt hội thoại)
await session.add_message("user", [{"type": "text", "text": "Tôi thích chế độ tối trong giao diện người dùng"}])
await session.add_message("assistant", [{"type": "text", "text": "Đã hiểu. Tôi sẽ sử dụng chế độ tối cho tất cả các ảnh chụp màn hình trong tương lai."}])

# Ghi lại việc sử dụng công cụ
await session.add_usage({
    "tool": "screenshot",
    "parameters": {"theme": "dark"},
    "result": "success"
})

# Commit phiên: kích hoạt việc trích xuất bộ nhớ
await session.commit()

Khi được commit, OpenViking:

  1. Nén phiên (giữ N lượt gần đây, lưu trữ các lượt cũ hơn)
  2. Trích xuất ký ức bằng cách phân tích LLM
  3. Cập nhật các thư mục bộ nhớ thích hợp
  4. Tạo L0/L1 cho nội dung bộ nhớ mới

Điều này làm cho các tác nhân thông minh hơn khi sử dụng: chúng học được sở thích của người dùng, tích lũy kinh nghiệm tác vụ và cải thiện việc ra quyết định theo thời gian.

Tổng quan kiến trúc

Kiến trúc hệ thống của OpenViking phân tách các mối quan tâm trên nhiều lớp:

Biểu đồ kiến trúc hệ thống OpenViking, minh họa sự phân tách các mối quan tâm giữa các lớp. Nó hiển thị giao diện tác nhân, lõi OpenViking với AGFS, cơ sở dữ liệu vector và tích hợp mô hình VLM/Embedding.

Lưu trữ hai lớp

OpenViking tách nội dung khỏi chỉ mục:

Lớp Công nghệ Lưu trữ
AGFS Hệ thống tệp tùy chỉnh Nội dung L0/L1/L2, tệp đa phương tiện, các mối quan hệ
Chỉ mục Vector Cơ sở dữ liệu Vector URI, nhúng, siêu dữ liệu (không có nội dung tệp)

Sự phân tách này đảm bảo:

Bắt đầu nhanh: Triển khai máy chủ OpenViking đầu tiên của bạn

Điều kiện tiên quyết

Bước 1: Cài đặt OpenViking

pip install openviking --upgrade --force-reinstall

Tùy chọn cài đặt CLI Rust để truy cập terminal:

curl -fsSL https://raw.githubusercontent.com/volcengine/OpenViking/main/crates/ov_cli/install.sh | bash

Bước 2: Cấu hình mô hình

OpenViking yêu cầu hai khả năng mô hình:

Tạo ~/.openviking/ov.conf:

{
  "storage": {
    "workspace": "/home/your-name/openviking_workspace"
  },
  "log": {
    "level": "INFO",
    "output": "stdout"
  },
  "embedding": {
    "dense": {
      "api_base": "https://api.openai.com/v1",
      "api_key": "your-openai-api-key",
      "provider": "openai",
      "dimension": 3072,
      "model": "text-embedding-3-large"
    },
    "max_concurrent": 10
  },
  "vlm": {
    "api_base": "https://api.openai.com/v1",
    "api_key": "your-openai-api-key",
    "provider": "openai",
    "model": "gpt-4o",
    "max_concurrent": 100
  }
}

Các nhà cung cấp được hỗ trợ:

Nhà cung cấp Mô hình nhúng Mô hình VLM
volcengine doubao-embedding-vision doubao-seed-2.0-pro
openai text-embedding-3-large gpt-4o, gpt-4-vision
litellm Thông qua proxy LiteLLM Claude, Gemini, DeepSeek, Qwen, Ollama, vLLM

Hỗ trợ LiteLLM có nghĩa là bạn có thể sử dụng các mô hình Anthropic, Google, Ollama cục bộ hoặc bất kỳ điểm cuối tương thích OpenAI nào.

Bước 3: Khởi động máy chủ

openviking-server

Hoặc chạy trong nền:

nohup openviking-server > /data/log/openviking.log 2>&1 &

Bước 4: Thêm tài nguyên đầu tiên của bạn

# Sử dụng Rust CLI
ov add-resource https://docs.example.com/api-guide.pdf

# Hoặc sử dụng Python SDK
from openviking import OpenViking

client = OpenViking(path="./data")
client.add_resource("https://docs.example.com/api-guide.pdf")

Bước 5: Tìm kiếm và truy xuất

# Đợi xử lý ngữ nghĩa, sau đó tìm kiếm
ov find "phương thức xác thực"

# Liệt kê nội dung thư mục
ov ls viking://resources/

# Xem cây thư mục
ov tree viking://resources/docs -L 2

# Grep nội dung cụ thể
ov grep "OAuth" --uri viking://resources/docs/

Bước 6: Kích hoạt VikingBot (Tùy chọn)

VikingBot là một framework tác nhân AI được xây dựng trên OpenViking:

pip install "openviking[bot]"

# Khởi động máy chủ với bot được kích hoạt
openviking-server --with-bot

# Trong một terminal khác, bắt đầu trò chuyện tương tác
ov chat

Điểm chuẩn hiệu suất

OpenViking đã được so sánh với RAG truyền thống (LanceDB) và các hệ thống bộ nhớ gốc bằng cách sử dụng tập dữ liệu LoCoMo10 (1.540 trường hợp đối thoại dài hạn).

Tỷ lệ hoàn thành tác vụ

Hệ thống Tỷ lệ hoàn thành Token đầu vào
OpenClaw (bộ nhớ gốc) 35.65% 24.6M
OpenClaw + LanceDB 44.55% 51.6M
OpenClaw + OpenViking 52.08% 4.3M

Những phát hiện chính

Những kết quả này đến từ việc tích hợp OpenViking như một plugin với OpenClaw, một trợ lý mã hóa AI mã nguồn mở. Tập dữ liệu kiểm thử dựa trên các cuộc đối thoại dài hạn, nơi việc giữ lại bộ nhớ là rất quan trọng.

Tích hợp OpenViking với Apidog

Người dùng Apidog xây dựng các tác nhân AI để kiểm thử API có thể tận dụng OpenViking để duy trì ngữ cảnh hội thoại, lưu trữ tài liệu API và ghi nhớ tùy chọn người dùng qua các phiên.

Sơ đồ minh họa cách OpenViking được tích hợp với Apidog để quản lý ngữ cảnh tác nhân AI. Nó hiển thị API của Apidog, tác nhân AI, OpenViking và bộ lưu trữ của nó để duy trì ngữ cảnh.

Bước 1: Thiết lập máy chủ OpenViking

Làm theo hướng dẫn bắt đầu nhanh ở trên để triển khai OpenViking với các mô hình VLM và nhúng ưa thích của bạn.

Bước 2: Nhập tài liệu API Apidog

# Thêm tài liệu dự án Apidog của bạn làm tài nguyên
ov add-resource https://docs.apidog.com/overview
ov add-resource https://docs.apidog.com/api-testing

Điều này nhập tài liệu Apidog vào viking://resources/ với quá trình xử lý L0/L1/L2 tự động.

Bước 3: Lưu trữ tùy chọn người dùng

from openviking import OpenViking

client = OpenViking(path="./apidog-agent-data")
session = client.session()

# Ghi lại tùy chọn môi trường mặc định của người dùng
await session.add_message("user", [{
    "type": "text",
    "text": "Luôn sử dụng môi trường thử nghiệm cho các bài kiểm tra API"
}])
await session.commit()  # Tự động trích xuất bộ nhớ tùy chọn

Bước 4: Truy vấn ngữ cảnh trong quá trình kiểm thử

# Tìm các điểm cuối API liên quan trước khi chạy kiểm thử
results = client.find("điểm cuối xác thực")
for ctx in results.resources:
    print(f"Tìm thấy: {ctx.uri}")

# Truy xuất tùy chọn môi trường của người dùng
prefs = client.find("tùy chọn môi trường thử nghiệm", target_uri="viking://user/memories/")

Bước 5: Kết nối với framework tác nhân của bạn

OpenViking cung cấp cả Python SDK và HTTP API:

# Python SDK
from openviking import OpenViking
client = OpenViking(path="./data")

# Hoặc HTTP API
import httpx
response = httpx.post(
    "http://localhost:1933/api/v1/search/find",
    json={"query": "điểm cuối xác thực"},
    headers={"X-API-Key": "your-api-key"}
)

Kỹ thuật nâng cao & Thực tiễn tốt nhất

Mẹo chuyên nghiệp để triển khai sản phẩm

1. Làm nóng trước ngữ cảnh được truy cập thường xuyên

Tải tài liệu quan trọng vào L0/L1 trong giờ thấp điểm để giảm độ trễ trong quá trình hoạt động của tác nhân.

# Kích hoạt xử lý ngữ nghĩa ngay lập tức
ov add-resource https://docs.example.com --wait

2. Triển khai thời gian hết hạn ngữ cảnh

Thiết lập dọn dẹp tự động cho dữ liệu phiên cũ:

# Lưu trữ các phiên cũ hơn 7 ngày
await session.archive(max_age_days=7)

3. Giám sát tình trạng chỉ mục vector

Theo dõi kích thước chỉ mục và độ trễ truy vấn:

ov debug stats

Những sai lầm phổ biến cần tránh

  1. Tải nội dung L2 sớm: Luôn bắt đầu với L0/L1 để tiết kiệm token
  2. Bỏ qua việc commit phiên: Việc trích xuất bộ nhớ chỉ xảy ra khi commit
  3. Tải quá nhiều vào một thư mục: Chia các tài nguyên lớn thành các thư mục con theo chủ đề
  4. Bỏ qua các dấu vết truy xuất: Sử dụng các dấu vết trực quan để gỡ lỗi các kết quả kém

Tối ưu hóa hiệu suất

Kịch bản Khuyến nghị
Khối lượng truy vấn cao Chạy OpenViking dưới dạng máy chủ HTTP với kết nối nhóm (connection pooling)
Tài liệu lớn Chia thành các khối dựa trên chủ đề trước khi nhập
Nhu cầu độ trễ thấp Tạo trước L0/L1 cho nội dung được truy cập thường xuyên
Thiết lập đa người thuê Sử dụng các không gian làm việc riêng biệt cho mỗi người thuê

Thực tiễn tốt nhất về bảo mật

Các trường hợp sử dụng thực tế

1. Trợ lý mã hóa AI

Một nhóm phát triển đã tích hợp OpenViking với trợ lý mã hóa nội bộ của họ. Tác nhân hiện có thể:

Kết quả: Giảm 67% hành vi “quên” của tác nhân, tiết kiệm 43% chi phí token.

2. Tác nhân hỗ trợ khách hàng

Một công ty SaaS đã triển khai OpenViking cho chatbot hỗ trợ của họ:

Kết quả: Tỷ lệ giải quyết lần đầu được cải thiện từ 52% lên 71%.

3. Trợ lý nghiên cứu

Một phòng thí nghiệm nghiên cứu sử dụng OpenViking để tổ chức các bài báo và ghi chú:

Kết quả: Các nhà nghiên cứu tìm thấy các bài báo liên quan nhanh hơn 3 lần với tìm kiếm ngữ nghĩa.

Các lựa chọn thay thế & So sánh

OpenViking không phải là giải pháp quản lý ngữ cảnh duy nhất. Dưới đây là cách nó so sánh với các lựa chọn thay thế:

OpenViking so với cơ sở dữ liệu vector truyền thống

Khía cạnh RAG truyền thống (Pinecone, LanceDB) OpenViking
Mô hình lưu trữ Các khối vector phẳng Hệ thống tệp phân cấp
Truy xuất Độ tương tự Top-K Đệ quy thư mục + phân tích ý định
Khả năng quan sát Hộp đen Dấu vết tìm kiếm trực quan hóa
Hiệu quả Token Tải tất cả hoặc cắt bớt Tải tuần tự L0/L1/L2
Lặp lại bộ nhớ Thủ công hoặc không có Quản lý phiên tự động
Các loại ngữ cảnh Chỉ tài liệu Tài nguyên, ký ức, kỹ năng thống nhất
Gỡ lỗi Đoán mò Nhật ký duyệt thư mục

OpenViking so với bộ nhớ LangChain

Khía cạnh Bộ nhớ LangChain OpenViking
Tính bền vững Chỉ bộ đệm hội thoại Hệ thống tệp đầy đủ với L0/L1/L2
Khả năng mở rộng Hạn chế bởi cửa sổ ngữ cảnh Tải phân cấp, không giới hạn cứng
Truy xuất Tìm kiếm tuyến tính Đệ quy thư mục + ngữ nghĩa
Các loại bộ nhớ Bộ đệm đơn 6 danh mục (hồ sơ, tùy chọn, sự kiện, v.v.)

Khi nào nên xem xét các lựa chọn thay thế

Sử dụng cơ sở dữ liệu vector truyền thống nếu:

Sử dụng OpenViking nếu:

So sánh với RAG truyền thống

Khía cạnh RAG truyền thống OpenViking
Mô hình lưu trữ Các khối vector phẳng Hệ thống tệp phân cấp
Truy xuất Độ tương tự Top-K Đệ quy thư mục + phân tích ý định
Khả năng quan sát Hộp đen Dấu vết tìm kiếm trực quan hóa
Hiệu quả Token Tải tất cả hoặc cắt bớt Tải tuần tự L0/L1/L2
Lặp lại bộ nhớ Thủ công hoặc không có Quản lý phiên tự động
Các loại ngữ cảnh Chỉ tài liệu Tài nguyên, ký ức, kỹ năng thống nhất
Gỡ lỗi Đoán mò Nhật ký duyệt thư mục

Triển khai sản phẩm

Đối với môi trường sản phẩm, hãy chạy OpenViking như một dịch vụ HTTP độc lập:

Hạ tầng đề xuất

Cân nhắc bảo mật

Giám sát

OpenViking hỗ trợ ghi nhật ký và đo lường:

{
  "log": {
    "level": "INFO",
    "output": "file",
    "path": "/var/log/openviking/server.log"
  }
}

Giám sát:

Hạn chế và cân nhắc

Hạn chế hiện tại

Khi nào nên sử dụng OpenViking

Phù hợp tốt:

Cân nhắc các lựa chọn thay thế:

Chặng đường phía trước

OpenViking đang trong giai đoạn phát triển ban đầu (phiên bản 0.1.x tính đến đầu năm 2025). Lộ trình bao gồm:

Nhóm đằng sau OpenViking đang tích cực tìm kiếm những người đóng góp từ cộng đồng. Dự án là mã nguồn mở theo giấy phép Apache 2.0, với tài liệu có sẵn.

Kết luận

OpenViking đại diện cho một sự thay đổi trong cách các tác nhân AI quản lý ngữ cảnh. Bằng cách tổ chức thông tin dưới dạng hệ thống tệp thay vì các khối phẳng, nó giải quyết vấn đề phân mảnh, lãng phí token và truy xuất hộp đen đang gây khó khăn cho các hệ thống RAG truyền thống.

Những điểm chính

button

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API