10.8k stars!OpenViking:火山引擎开源的多模型统一调用框架!
OpenViking:火山引擎开源的 AI Agent 上下文数据库
前言:Agent 的记忆困境
随着 AI Agent 应用快速普及,一个被忽视但至关重要的问题浮出水面——Agent 的上下文管理太乱了。
记忆存一个地方,外部文档存另一个地方,技能和指令又是另一套系统。传统 RAG 方案把所有内容打碎成扁平的向量块,检索时只能靠相似度猜,既不精准,也难以调试。更要命的是,每次对话都要把大量上下文塞进 Prompt,token 消耗居高不下。
这不是模型的问题,是上下文管理方式的问题。
OpenViking 正是为此而生。
什么是 OpenViking?
OpenViking 是火山引擎(字节跳动旗下云平台)Viking 团队开源的专为 AI Agent 设计的上下文数据库(Context Database)。
项目地址:https://github.com/volcengine/OpenViking
它的核心思路是:抛弃传统 RAG 的碎片化向量存储,改用"文件系统范式"统一管理 Agent 所需的记忆、资源和技能。
简单说,Agent 的大脑从此可以像管理本地文件一样组织和检索——用 ls、find、grep 这样熟悉的方式操作上下文,而不是把一切都交给模糊的向量相似度来决定。
解决了什么问题?
1. 上下文碎片化
传统向量数据库把文档切片打散存储,缺乏结构。OpenViking 引入文件系统范式,将记忆(Memory)、外部资源(Resources)、技能与指令(Skills)统一组织在一套虚拟目录结构下:
viking://
├── resources/ # 文档、代码库、网页等外部资源
├── user/ # 用户偏好、个人记忆
└── agent/ # Agent 技能、指令、任务记忆
2. Token 消耗过高
OpenViking 采用 L0 / L1 / L2 三层上下文结构,按需加载:
- L0(约 100 token):极简摘要,快速识别定位
- L1:核心概览,供 Agent 规划阶段决策
- L2:完整内容,仅在真正需要时加载
实测在 LoCoMo10 基准(1540 条长对话)上,与基线方案相比,token 消耗降低约 83%,任务完成率提升约 49%。
3. 检索不准、难以调试
OpenViking 采用目录递归检索策略:先向量检索定位目录,再在目录内二次检索,必要时递归深入子目录。同时提供检索轨迹可视化,让开发者清楚看到每次检索走了哪条路径,方便排查问题——Agent 表现差,往往不是模型问题,而是拿到了错误的上下文。
4. 会话记忆无法自动沉淀
内置记忆自迭代循环,会话结束后自动提取关键信息并写入长期记忆,无需手动维护。
怎么用?
安装
# 安装 OpenViking
pip install openviking --upgrade
# 或安装包含 VikingBot 的完整版
pip install "openviking[bot]"
环境要求:Python 3.10+,Go 1.22+,支持 Linux / macOS / Windows。
配置模型
在 ~/.openviking/ov.conf 中配置 Embedding 模型和 VLM 模型(支持火山引擎豆包、OpenAI、Claude、DeepSeek、Ollama 等):
{
"storage": {
"workspace": "/home/yourname/openviking_workspace"
},
"embedding": {
"dense": {
"provider": "volcengine",
"api_base": "https://ark.cn-beijing.volces.com/api/v3",
"api_key": "your-api-key",
"model": "doubao-embedding-vision-250615",
"dimension": 1024
}
},
"vlm": {
"provider": "volcengine",
"api_base": "https://ark.cn-beijing.volces.com/api/v3",
"api_key": "your-api-key",
"model": "doubao-seed-2-0-pro-260215"
}
}
启动服务
openviking-server
CLI 快速体验
# 查看服务状态
ov status
# 添加一个外部资源(比如 GitHub 仓库)
ov add-resource https://github.com/volcengine/OpenViking
# 查看资源列表
ov ls viking://resources/
# 查看目录树
ov tree viking://resources/volcengine -L 2
# 语义搜索
ov find "what is openviking"
# 全文检索
ov grep "openviking" --uri viking://resources/volcengine/OpenViking/docs/zh
Python SDK 调用
import openviking as ov
client = ov.SyncHTTPClient(url="http://localhost:1933")
client.initialize()
# 添加资源
result = client.add_resource(
"https://raw.githubusercontent.com/volcengine/OpenViking/refs/heads/main/README.md"
)
# 等待语义处理完成
client.wait_processed()
# 语义搜索
results = client.find("what is openviking", target_uri=result["root_uri"])
for r in results.resources:
print(f"{r.uri} (score: {r.score:.4f})")
client.close()
与 OpenClaw 集成
OpenViking 官方支持作为 OpenClaw 的记忆后端使用:
# 在 OpenClaw 中安装 OpenViking 插件
# 参考官方文档:openclaw-openviking-plugin
总结
OpenViking 做的事情很专注:给 AI Agent 造一个有结构、可检索、会自我进化的大脑。
它不是另一个 RAG 框架,也不是向量数据库的简单封装,而是从上下文管理的根本范式入手——用开发者最熟悉的文件系统思维,重新定义 Agent 应该如何存储和使用信息。
适合关注的开发者:
- 正在为 Agent 搭建长期记忆系统的工程师
- 被 RAG 检索不准、token 超限困扰的开发者
- 使用 OpenClaw、Claude Code 等 Agent 框架并希望接入持久化记忆的用户
- 需要在本地私有化部署 Agent 记忆基础设施的团队
项目目前仍处于早期快速迭代阶段,star 数已突破 10k,社区活跃。如果你在做 Agent 开发,值得加入工具箱。
GitHub:https://github.com/volcengine/OpenViking
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)