← 返回文章

OpenViking:火山引擎开源的 Agent 上下文数据库

更新于

火山引擎开源的 Agent 上下文数据库。

OpenViking 的官方界面或演示截图
封面:来源 · 以仓库为准

OpenViking 是火山引擎开源的 Agent 上下文数据库,主仓库以 AGPLv3 发布,目标是把 Agent 的知识、记忆和技能放进同一套可浏览的虚拟文件系统。常见做法是把文本切块、算 embedding、塞进扁平向量池,存了什么、为什么召回都难以检查;OpenViking 改用 viking:// 目录组织上下文,Agent 可以像操作文件一样 ls、tree、read、write、grep,人也能打开任意目录查看和修改。

目录、摘要与分层读取

viking:// 下分 resources/ 与 user/{user_id}/ 等区域,项目文档、代码、个人偏好、技能各有位置。每个资源都有稳定的 viking:// URI,浏览、检索和引用都围绕它展开。经过语义处理的目录会生成 .abstract.md(L0,一句话摘要)和 .overview.md(L1,结构与要点),完整原文作为 L2 按需读取。Agent 先扫摘要判断相关性,再决定是否打开全文,减少无关内容进入上下文。这个设计也意味着目录划分和摘要质量会直接影响召回效果。

装起来能做什么

自托管需要 uv、Python 3.10+,以及一个提供 embedding 和 VLM 的模型服务。初始化与启动:

uv tool install openviking --upgrade && openviking-server init

init 会写入 ~/.openviking/ov.conf,支持火山引擎、OpenAI、Codex OAuth、Kimi、GLM 和本地 Ollama。服务在前台运行,终端需要保持打开。另一个终端可以用 ov CLI 导入仓库并检索:

ov status
ov add-resource https://github.com/volcengine/OpenViking
ov task status <task_id>
ov ls viking://resources/
ov find "what is openviking"

ov find 返回带 URI 的匹配上下文,ov grep 可以把搜索限制在某个目录。检索范围可以落在项目或记忆子树,而不是每次都扫描整个索引。find 直接执行一次查询,search 则会结合会话上下文规划检索,两者都返回可继续展开的 URI。会话结束后提交,会把对话归档并抽取成可读、可编辑、可合并的 Markdown 记忆;启用 VikingBot 后,ov compile 还能把素材整理成 wiki、知识图谱或报告。集成方面,安装脚本覆盖 Claude Code、Codex、Cursor、TRAE、OpenCode 等,也提供 Python、Go、TypeScript SDK 和 HTTP API。

不想自己运维时,可以先用火山引擎托管的 OpenViking Service,README 说明前 50 个文件免费,服务地址和 API Key 在控制台创建;桌面端目前是 macOS 与 Windows x64 的 beta,用来配置本地 Agent 集成、查看会话中的召回与写入事件。VikingBot 是在 OpenViking 之上构建的 Agent 框架,安装 openviking[bot] 后以 openviking-server --with-bot 启动,再用 ov chat 对话,官方 Docker 镜像默认同时启动它。

一个典型用法

让编码 Agent 记住跨会话的偏好:先部署 OpenViking 服务,用安装脚本把记忆插件接进 Claude Code,然后让 Agent 记住“提交信息用中文、测试命令是 npm run check”。记忆在后台处理,刚说完不会立刻出现;下一次会话再问,Agent 会通过插件取回这条偏好。项目文档也可以作为 resources/ 导入,按目录检索 API 说明,而不是把整本手册塞进提示词。如果不需要跨会话记忆,就不必接插件,直接把它当项目知识库使用。

与向量库、记忆 API 的差别

Qdrant、Chroma 这类向量库解决相似度检索,目录层级、摘要和权限要应用自己补;Mem0 一类记忆 API 更偏抽取与读写接口。OpenViking 把三者放进同一棵可浏览目录,并让检索带目录范围。代价是它不是一个轻量库,而是一套需要部署和运维的服务端。只想快速评估的话,可以先打开在线 Studio 浏览示例,再决定是否自托管。

部署代价与许可

服务端需要存储、embedding 与 VLM 供应商,长期运行还要考虑备份、账号隔离和资源 ACL;README 明确要求在暴露到 localhost 之外前配置认证。目录摘要由模型生成,错误摘要会把检索引向错误分支,重要结论仍要回到原文核对。主项目 AGPLv3,crates/ov_cli 与示例是 Apache 2.0,对外提供托管服务前要确认网络服务条款。接 Agent 的安装脚本要求 macOS/Linux、Node.js 18+ 与 curl,不需要 sudo;Windows 目前走 beta 桌面应用。按官方 README 整理,未在本机完整实测;README 给出的 LoCoMo、tau2-bench 数据本次没有复现。适合需要长期记忆、知识库与技能统一管理的 Agent 团队;只需要短期对话或不愿维护服务端的轻量应用,用普通向量库更省事。

官方入口