字节跳动火山引擎团队开发的开源上下文数据库,专为AI Agent设计。采用文件系统范式统一管理记忆、资源与技能,支持分层上下文加载(L0/L1/L2)与Agent自我进化,解决长周期运行中的上下文碎片化和检索黑盒问题。
项目概述#
OpenViking 是字节跳动火山引擎 Viking 团队推出的开源上下文数据库,专为 AI Agent 场景设计。它通过文件系统范式将 Agent 的记忆、资源和技能统一管理,所有上下文映射到 viking:// 虚拟协议。
核心特性#
文件系统管理范式#
- 统一管理 Memory(记忆)、Resources(资源)、Skills(技能)
- 采用虚拟文件系统,所有上下文映射到
viking://协议 - 支持标准文件操作命令(ls, glob, add 等)
分层上下文加载#
- L0 (Abstract): ~100 tokens,快速相关性检查
- L1 (Overview): ~2k tokens,理解结构和关键点
- L2 (Details): 完整内容,按需加载
- 显著降低 Token 消耗,避免上下文截断
目录递归检索#
- 意图分析 → 初始定位 → 精细探索 → 递归下钻 → 结果聚合
- 结合向量检索和文件系统定位
- 提供全局视图,提升检索准确性
可视化检索轨迹#
- 完整保留检索路径,支持调试和优化检索逻辑
- 打破传统 RAG 的黑盒模式
自动会话管理#
- 内置记忆自迭代循环
- 自动压缩对话内容、资源引用、工具调用
- 提取长期记忆,实现 Agent 自我进化
Viking URI 结构#
viking://
├── resources/ # 资源:项目文档、代码库、网页等
├── user/ # 用户:个人偏好、习惯等
│ └── memories/
└── agent/ # Agent:技能、指令、任务记忆等
├── skills/
├── memories/
└── instructions/
安装与使用#
环境要求#
- Python >= 3.10
- 操作系统: Linux, macOS, Windows
安装方式#
# Python SDK
pip install openviking
# Rust CLI(可选)
curl -fsSL https://raw.githubusercontent.com/volcengine/OpenViking/main/crates/ov_cli/install.sh | bash
Python SDK 基本使用#
import openviking as ov
client = ov.SyncOpenViking(path="./data")
client.initialize()
# 添加资源
add_result = client.add_resource(
path="https://example.com/document.md"
)
root_uri = add_result['root_uri']
# 浏览资源树结构
ls_result = client.ls(root_uri)
# 执行语义搜索
results = client.find("query text", target_uri=root_uri)
client.close()
模型后端支持#
支持多种 VLM 和 Embedding 提供商:
- volcengine (doubao)
- openai (gpt)
- anthropic (claude)
- deepseek
- gemini
- moonshot (kimi)
- zhipu (glm)
- dashscope (qwen)
- minimax
- openrouter
- vllm (本地模型)
适用场景#
- 长时间运行的 AI Agent 任务
- 需要复杂上下文管理的智能助手
- 多模态内容处理和理解
- 需要可观察性和可调试性的 Agent 系统
- 企业级 AI 应用开发
项目信息#
- 开发团队: 字节跳动火山引擎 Viking 团队
- 开源协议: Apache License 2.0
- 语言构成: Python (81.1%), C++ (13.9%), Rust (4.0%)
- 当前版本: v0.1.18
- 贡献者: 32+