目录

OpenViking:字节跳动开源的 19.6k Stars AI Agent 上下文数据库

OpenViking:字节跳动开源的 19.6k Stars AI Agent 上下文数据库

目标读者:构建 AI Agent、需要管理大量上下文的开发者 核心问题:如何让 AI Agent 高效管理记忆、资源和技能? 难度:⭐⭐⭐⭐(专家设计) 来源:GitHub volcengine/OpenViking,2026-03-28


一、项目概览

1.1 为什么这个项目值得关注

OpenViking 是字节跳动开源的 AI Agent 上下文数据库,创新采用「文件系统 paradigm」统一管理 AI Agent 的记忆(Memories)、资源(Resources)和技能(Skills)。

核心数据:

指标数值
GitHub Stars19.6k
Forks1.4k
LicenseApache-2.0
官方文档https://www.openviking.ai/
官方群飞书群 / 微信群 / Discord

1.2 背景故事

AI 时代,数据充足,但高质量上下文稀缺。

开发者在构建 AI Agent 时经常面临以下挑战:

挑战说明
上下文碎片化记忆在代码里,资源在向量数据库,技能分散,难以统一管理
上下文需求暴涨Agent 长任务在每次执行都产生上下文,简单截断或压缩会导致信息丢失
检索效果差传统 RAG 使用扁平存储,缺乏全局视角,难以理解信息全貌
上下文不可观测传统 RAG 的隐式检索链像黑盒,出错时难以调试
记忆迭代有限现有记忆只是用户交互记录,缺乏 Agent 相关任务记忆

1.3 OpenViking 的解决方案

OpenViking 重新定义 Agent 的上下文交互范式,告别上下文管理的繁琐。

核心理念:「文件系统 paradigm(范式)」

传统方式OpenViking 方式
碎片化存储统一文件系统管理
简单截断L0/L1/L2 三层按需加载
扁平检索目录递归检索
黑盒检索可视化检索轨迹
被动记录自动会话管理

二、核心特性

2.1 文件系统管理范式

OpenViking 借鉴 Linux 文件系统的设计理念:

viking://                              # 根目录
├── memories/                          # 记忆目录
│   ├── sessions/                      # 会话记忆
│   └── long_term/                    # 长期记忆
├── resources/                          # 资源目录
│   ├── code/                          # 代码资源
│   ├── docs/                          # 文档资源
│   └── data/                          # 数据资源
└── skills/                            # 技能目录
    ├── builtin/                       # 内置技能
    └── custom/                        # 自定义技能

2.2 分层上下文加载(L0/L1/L2)

层级说明Token 消耗
L0核心上下文最低
L1扩展上下文中等
L2完整上下文最高

按需加载,显著节省成本。

2.3 目录递归检索

结合目录定位和语义搜索,实现递归精确的上下文获取。

2.4 可视化检索轨迹

支持目录检索轨迹可视化,清晰观察问题根因,指导检索逻辑优化。

2.5 自动会话管理

自动压缩对话中的内容、资源引用、工具调用等,提取长期记忆,让 Agent 越用越聪明。


三、技术架构

3.1 整体架构

┌─────────────────────────────────────────────────────────────┐
│                    OpenViking 架构                              │
├─────────────────────────────────────────────────────────────┤
│  SDK 层(多语言)                                            │
│  ┌──────────────┐  ┌──────────────┐                         │
│  │ Python SDK  │  │ Rust CLI     │                         │
│  │ openviking  │  │ ov_cli       │                         │
│  └──────────────┘  └──────────────┘                         │
├─────────────────────────────────────────────────────────────┤
│  VikingBot(AI Agent 框架)                                  │
│  基于 OpenViking 构建的 AI Agent 框架                        │
├─────────────────────────────────────────────────────────────┤
│  核心引擎层                                                  │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐       │
│  │ Context      │  │ Retrieval    │  │ Memory       │       │
│  │ Engine      │  │ Engine       │  │ Engine       │       │
│  └──────────────┘  └──────────────┘  └──────────────┘       │
├─────────────────────────────────────────────────────────────┤
│  存储层                                                      │
│  ┌──────────────┐  ┌──────────────┐                         │
│  │ File System  │  │ Vector Store │                         │
│  │ Paradigm    │  │ (Embedding) │                         │
│  └──────────────┘  └──────────────┘                         │
├─────────────────────────────────────────────────────────────┤
│  模型层                                                      │
│  ┌──────────────┐  ┌──────────────┐                         │
│  │ VLM Model   │  │ Embedding    │                         │
│  │ (视觉理解)  │  │ Model (向量化)│                         │
│  └──────────────┘  └──────────────┘                         │
└─────────────────────────────────────────────────────────────┘

3.2 支持的模型提供商

VLM 模型提供商:

提供商说明API Key 获取
volcengine火山引擎豆包模型火山引擎控制台
openaiOpenAI 官方 APIOpenAI Platform
litellm统一访问多种第三方模型(Anthropic、DeepSeek、Gemini、vLLM、Ollama 等)见 LiteLLM 文档

Embedding 模型提供商:

提供商说明
volcengine豆包 Embedding
openaiOpenAI Embedding
jinaJina AI
voyageVoyage AI
minimaxMiniMax
vikingdbVikingDB
geminiGoogle Gemini

3.3 核心目录结构

OpenViking/
├── bot/                      # VikingBot(AI Agent 框架)
├── build_support/           # 构建支持
├── crates/ov_cli/           # Rust CLI 工具
├── deploy/helm/             # Helm 部署
├── docs/                    # 文档
├── examples/                # 示例
├── openviking/              # 核心 Python 包
├── openviking_cli/          # Python CLI
├── src/                     # 核心源代码
├── tests/                   # 测试
└── third_party/             # 第三方依赖

四、快速开始

4.1 环境要求

工具要求
Python≥3.10
Go≥1.22(构建 AGFS 组件必需)
C++ 编译器GCC 9+ 或 Clang 11+(构建核心扩展必需)
操作系统Linux / macOS / Windows

4.2 安装

Python 包:

pip install openviking --upgrade --force-reinstall

Rust CLI(可选):

# 方式一:安装脚本
curl -fsSL https://raw.githubusercontent.com/volcengine/OpenViking/main/crates/ov_cli/install.sh | bash

# 方式二:从源码构建
cargo install --git https://github.com/volcengine/OpenViking ov_cli

4.3 模型配置

OpenViking 需要以下模型能力:

模型类型说明
VLM 模型(视觉语言模型)用于图像和内容理解
Embedding 模型(嵌入向量)用于向量化和语义检索

4.4 配置示例

服务端配置 ~/.openviking/ov.conf

{
  "storage": {
    "workspace": "/home/your-name/openviking_workspace"
  },
  "embedding": {
    "api_base": "<api-endpoint>",
    "api_key": "<your-api-key>",
    "provider": "volcengine",
    "dimension": 1024,
    "model": "doubao-embedding-vision-250615"
  },
  "vlm": {
    "api_base": "<api-endpoint>",
    "api_key": "<your-api-key>",
    "provider": "volcengine",
    "model": "doubao-seed-2-0-pro-260215"
  }
}

4.5 运行示例

启动服务器:

openviking-server
# 或后台运行
nohup openviking-server > /data/log/openviking.log 2>&1 &

运行 CLI:

ov status                          # 查看状态
ov add-resource https://github.com/volcengine/OpenViking  # 添加资源
ov ls                              # 列出内容
ov tree viking://resources/        # 树形结构
ov find "what is openviking"      # 语义搜索
ov grep "openviking" --uri viking://resources/volcengine/OpenViking/docs/zh  # grep 搜索

4.6 VikingBot 快速开始

VikingBot 是基于 OpenViking 构建的 AI Agent 框架:

# 安装 VikingBot(推荐方式)
pip install "openviking[bot]"

# 启动带 Bot 的服务器
openviking-server --with-bot

# 在另一个终端启动交互式聊天
ov chat

五、与传统 RAG 对比

特性传统 RAGOpenViking
存储模型扁平向量存储文件系统范式
上下文组织碎片化统一分层管理
检索方式简单相似度匹配目录递归 + 语义检索
检索可观测性黑盒可视化轨迹
记忆迭代被动记录自动压缩 + 长期记忆提取
多模态支持有限VLM 深度集成

六、适用场景

场景说明
AI Agent 上下文管理为 Agent 提供统一的记忆、资源、技能管理
长对话总结自动压缩会话,提取关键信息
代码库理解目录递归检索,快速定位相关代码
知识库问答结合语义搜索和目录结构
多模态内容处理VLM 图像理解和内容提取

七、资源链接

资源链接
GitHubhttps://github.com/volcengine/OpenViking
官网https://www.openviking.ai/
文档https://www.openviking.ai/docs
Discordhttps://discord.com/invite/eHvx8E9XF3
X (Twitter)https://x.com/openvikingai

八、总结与展望

8.1 核心价值

OpenViking 的核心价值在于为 AI Agent 提供企业级的上下文管理能力,让开发者可以像管理本地文件一样管理 Agent 的脑。

传统方式OpenViking 方式
碎片化存储统一文件系统 paradigm
被动记录主动压缩 + 长期记忆
黑盒检索可视化检索轨迹
简单匹配目录递归 + 语义检索

8.2 技术亮点

  1. 文件系统范式:创新的上下文组织方式
  2. 分层加载:L0/L1/L2 按需加载,显著节省 Token
  3. 递归检索:结合目录定位和语义搜索
  4. 多模型支持:支持 volcengine、OpenAI、LiteLLM 等多种提供商
  5. VikingBot:开箱即用的 AI Agent 框架

相关话题标签

#OpenViking #上下文数据库 #AI Agent #记忆管理 #RAG #字节跳动

来源

  • GitHub:https://github.com/volcengine/OpenViking

OpenViking 由字节跳动(Volcengine)开源,采用 Apache-2.0 许可证。