OpenViking:字节跳动开源的 19.6k Stars AI Agent 上下文数据库
posts posts 2026-03-28T21:15:00+08:00深度解读字节跳动开源的 OpenViking:19.6k Stars 的 AI Agent 上下文数据库,采用「文件系统 paradigm」统一管理记忆、资源和技能。技术笔记OpenViking, 上下文数据库, AI Agent, 记忆管理, RAG目录
OpenViking:字节跳动开源的 19.6k Stars AI Agent 上下文数据库
预计阅读时间:25 分钟 | 难度:⭐⭐⭐⭐
目标读者:构建 AI Agent、需要管理大量上下文的开发者 核心问题:如何让 AI Agent 高效管理记忆、资源和技能? 难度:⭐⭐⭐⭐(专家设计) 来源:GitHub volcengine/OpenViking,2026-03-28
一、项目概览
1.1 为什么这个项目值得关注
OpenViking 是字节跳动开源的 AI Agent 上下文数据库,采用「文件系统 paradigm」统一管理 AI Agent 的记忆(Memories)、资源(Resources)和技能(Skills)。
核心数据:
| 指标 | 数值 |
|---|---|
| GitHub Stars | 19.6k |
| Forks | 1.4k |
| License | Apache-2.0 |
| 官方文档 | https://www.openviking.ai/ |
| 官方群 | 飞书群 / 微信群 / Discord |
1.2 背景故事
AI 时代,数据充足,但高质量上下文稀缺。
开发者在构建 AI Agent 时经常面临以下挑战:
| 挑战 | 说明 |
|---|---|
| 上下文碎片化 | 记忆在代码里,资源在向量数据库,技能分散,难以统一管理 |
| 上下文需求暴涨 | Agent 长任务在每次执行都产生上下文,简单截断或压缩会导致信息丢失 |
| 检索效果差 | 传统 RAG 使用扁平存储,缺乏全局视角,难以理解信息全貌 |
| 上下文不可观测 | 传统 RAG 的隐式检索链像黑盒,出错时难以调试 |
| 记忆迭代有限 | 现有记忆只是用户交互记录,缺乏 Agent 相关任务记忆 |
1.3 OpenViking 的解决方案
OpenViking 用「文件系统 paradigm(范式)」统一管理 Agent 的记忆、资源和技能,解决上下文碎片化问题。
核心思路:「文件系统 paradigm(范式)」
| 传统方式 | OpenViking 方式 |
|---|---|
| 碎片化存储 | 统一文件系统管理 |
| 简单截断 | L0/L1/L2 三层按需加载 |
| 扁平检索 | 目录递归检索 |
| 黑盒检索 | 可视化检索轨迹 |
| 被动记录 | 自动会话管理 |
二、核心特性
2.1 文件系统管理范式
OpenViking 借鉴 Linux 文件系统的设计理念:
viking://
├── memories/ # 记忆
│ ├── sessions/ # 会话记忆
│ ├── long_term/ # 长期记忆
│ └── skills/ # 技能记忆
├── resources/ # 资源
│ ├── documents/ # 文档
│ ├── code/ # 代码
│ └── web/ # 网页
└── skills/ # 技能
├── builtin/ # 内置技能
└── custom/ # 自定义技能2.2 分层上下文加载(L0/L1/L2)
| 层级 | 说明 | Token 消耗 |
|---|---|---|
| L0 | 核心上下文 | 最低 |
| L1 | 扩展上下文 | 中等 |
| L2 | 完整上下文 | 最高 |
按需加载,显著节省成本。
2.3 目录递归检索
结合目录定位和语义搜索,实现递归精确的上下文获取。
2.4 可视化检索轨迹
支持目录检索轨迹可视化,清晰观察问题根因,指导检索逻辑优化。
2.5 自动会话管理
自动压缩对话中的内容、资源引用、工具调用等,提取长期记忆,让 Agent 越用越聪明。
三、技术架构
3.1 整体架构
┌─────────────────────────────────────────────────────────────┐
│ Viking Gateway │
├─────────────────────────────────────────────────────────────┤
│ VikingFS (AGFS) │ VikingDB │ VikingBot │ VikingCLI │
├─────────────────────────────────────────────────────────────┤
│ L0/L1/L2 Loader │ RAG Engine │ Memory Manager │
├─────────────────────────────────────────────────────────────┤
│ VLM Provider │ Embedding Provider │ Vector Store │
└─────────────────────────────────────────────────────────────┘3.2 支持的模型提供商
VLM 模型提供商:
| 提供商 | 说明 | API Key 获取 |
|---|---|---|
| volcengine | 火山引擎豆包模型 | 火山引擎控制台 |
| openai | OpenAI 官方 API | OpenAI Platform |
| litellm | 统一访问多种第三方模型(Anthropic、DeepSeek、Gemini、vLLM、Ollama 等) | 见 LiteLLM 文档 |
Embedding 模型提供商:
| 提供商 | 说明 |
|---|---|
| volcengine | 豆包 Embedding |
| openai | OpenAI Embedding |
| jina | Jina AI |
| voyage | Voyage AI |
| minimax | MiniMax |
| vikingdb | VikingDB |
| gemini | Google Gemini |
3.3 核心目录结构
openviking/
├── crates/
│ ├── ov_cli/ # CLI 工具
│ └── agfs/ # AGFS 文件系统
├── python/
│ └── openviking/ # Python SDK
├── docs/ # 文档
└── examples/ # 示例四、快速开始
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-reinstallCLI 工具:
# 方式一:安装脚本
curl -fsSL https://raw.githubusercontent.com/volcengine/OpenViking/main/crates/ov_cli/install.sh | bash
# 方式二:从源码构建
cargo install --git https://github.com/volcengine/OpenViking ov_cli4.3 配置
{
"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.4 启动服务
openviking-server
# 或后台运行
nohup openviking-server > /data/log/openviking.log 2>&1 &4.5 基本操作
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(推荐方式)
pip install "openviking[bot]"
# 启动带 Bot 的服务器
openviking-server --with-bot
# 在另一个终端启动交互式聊天
ov chat五、与传统 RAG 对比
| 特性 | 传统 RAG | OpenViking |
|---|---|---|
| 存储模型 | 扁平向量存储 | 文件系统范式 |
| 上下文组织 | 碎片化 | 统一分层管理 |
| 检索方式 | 简单相似度匹配 | 目录递归 + 语义检索 |
| 检索可观测性 | 黑盒 | 可视化轨迹 |
| 记忆迭代 | 被动记录 | 自动压缩 + 长期记忆提取 |
| 多模态支持 | 有限 | VLM 深度集成 |
六、适用场景
| 场景 | 说明 |
|---|---|
| AI Agent 上下文管理 | 为 Agent 提供统一的记忆、资源、技能管理 |
| 长对话总结 | 自动压缩会话,提取关键信息 |
| 代码库理解 | 目录递归检索,快速定位相关代码 |
| 知识库问答 | 结合语义搜索和目录结构 |
| 多模态内容处理 | VLM 图像理解和内容提取 |
七、资源链接
| 资源 | 链接 |
|---|---|
| GitHub | https://github.com/volcengine/OpenViking |
| 官网 | https://www.openviking.ai/ |
| 文档 | https://www.openviking.ai/docs |
| Discord | https://discord.com/invite/eHvx8E9XF3 |
| X (Twitter) | https://x.com/openvikingai |
八、总结与展望
8.1 价值总结
OpenViking 用文件系统范式统一管理 Agent 的记忆、资源和技能,让开发者可以像管理本地文件一样管理 Agent 的上下文。
| 传统方式 | OpenViking 方式 |
|---|---|
| 碎片化存储 | 统一文件系统 paradigm |
| 被动记录 | 主动压缩 + 长期记忆 |
| 黑盒检索 | 可视化检索轨迹 |
| 简单匹配 | 目录递归 + 语义检索 |
8.2 技术亮点
- 文件系统范式:用目录结构组织上下文
- 分层加载:L0/L1/L2 按需加载,显著节省 Token
- 递归检索:结合目录定位和语义搜索
- 多模型支持:支持 volcengine、OpenAI、LiteLLM 等多种提供商
- VikingBot:开箱即用的 AI Agent 框架
相关话题标签
#OpenViking #上下文数据库 #AI Agent #记忆管理 #RAG #字节跳动
来源
- GitHub:https://github.com/volcengine/OpenViking
OpenViking 由字节跳动(Volcengine)开源,采用 Apache-2.0 许可证。