OpenViking
为AI Agent打造的上下文数据库,用文件系统范式统一管理记忆、资源和技能
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
为AI Agent打造的上下文数据库,用文件系统范式统一管理记忆、资源和技能
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你让 AI 编程助手帮你写代码,它记住了你上个月用过的一个技巧,却想不起昨天刚讨论的 API 设计方案。这就像一个天才实习生,脑袋里装满了旧档案,却找不到手边正在处理的文件——这正是当前 AI Agent 普遍面临的上下文失忆症。
OpenViking 就是来解决这个问题的。它由火山引擎开源,是一个专为 AI Agent 设计的上下文数据库(Context Database),用文件系统的思维统一管理 Agent 的记忆、资源和技能,让 AI 在长任务中始终保持思路连贯。
AI Agent 的上下文管理一直是行业痛点。传统方案中,记忆存在向量数据库,资源在文件存储,技能散落在各个插件里——就像把一本书撕成碎片再塞进不同的抽屉,检索时只能拼拼凑凑。
OpenViking 的诞生源于实际开发需求。项目最初作为 OpenClaw 生态的一部分,后来独立发展,由火山引擎团队主导维护。它创造性地将文件系统范式引入 AI Agent 的上下文管理,用目录树结构组织记忆、资源和技能,让 Agent 能够像人类翻阅文件夹一样,按层级、按主题、按相关性精准获取上下文。

图1:OpenViking 项目 Logo
这个思路的巧妙之处在于:文件系统是人类最熟悉的知识组织方式,每个程序员都能理解 memory/projects/ 这样的路径结构,Agent 也能借助这种层次化的上下文交付机制,实现精准检索和自我进化。
传统 RAG 将所有内容一股脑塞进 context window,Token 消耗巨大且效果不佳。OpenViking 创新性地设计了三层上下文结构:
这种按需加载机制大幅降低了 Token 消耗。以一个 10 万行的代码库为例,Agent 只需要处理当前任务相关的几十个文件,而非整个仓库。
OpenViking 的核心存储引擎采用类文件系统架构,支持目录树结构组织记忆、资源和技能,支持递归检索,并可通过 RAGFS 将语义向量数据库挂载为文件系统,Agent 可以像操作本地文件一样操作向量知识库。
底层实现上,核心存储层使用 C++ 编写(含 abi3_engine_backend.cpp),提供高性能的 ABI3 兼容接口;Rust CLI(crates/ov_cli)提供命令行工具;Python SDK 提供上层封装。这种多语言架构兼顾了性能(Rust/C++)和易用性(Python)。
当 Agent 与用户进行多轮对话时,OpenViking 会自动追踪对话历史中的关键操作(如 write_file、edit_file),将相关内容压缩提取形成长期记忆,在新会话中让 Agent 能主动调用这些经验,实现自演化——Agent 越用越聪明,因为它的经验在不断积累。
OpenViking 是一个典型的大型混合语言项目,代码组织清晰:
| 模块 | 语言 | 职责 |
|---|---|---|
| src/ | C++ | 核心存储引擎,ABI3 兼容扩展 |
| crates/ | Rust | 命令行工具(ov_cli)、RAGFS 文件系统 |
| bot/ | TypeScript/Node.js | Vikingbot 多渠道机器人框架 |
| web-studio/ | TypeScript/Vue | Web 管理界面(Vite 构建的 SPA) |
| openviking/ | Python | 主 SDK,HTTP Server,核心 API |
| examples/ | 多语言 | 集成示例(K8s Helm、LangChain、Multi-Tenant 等) |
Dockerfile 中完整复现了这套构建流程:先用 Rust 编译 CLI,再用 Node 构建 web-studio SPA,最后用 Python uv 打包完整应用,多阶段构建(multistage)确保最终镜像精简。
对于开发者来说,OpenViking 的部署非常友好。项目同时提供:
docker compose up -d,OpenViking 服务(1933端口)和 Caddy 反向代理(1934端口)自动启动,Web UI 可通过 http://localhost:1934 访问pip install openviking 即可在本地 Python 环境中使用openviking-server init 向导自动检测 Ollama、安装模型、生成配置Vikingbot 进一步扩展了 OpenViking 的使用场景——通过 Telegram、飞书、钉钉、Slack、QQ 等渠道,随时随地与 AI Agent 对话,所有对话记忆自动存入 OpenViking。

图2:openviking-server doctor 诊断工具
OpenViking 特别适合以下场景:
1. 长周期软件开发任务:Agent 需要记住三个月前的架构决策、代码规范和模块依赖关系,传统方案每次都要重新自我介绍,OpenViking 让 Agent 拥有持久记忆。
2. 多 Agent 协作系统:多个 Agent 各自维护独立的记忆空间,通过 OpenViking 共享资源池,实现各有分工、互不干扰的知识隔离与复用。
3. 知识密集型对话助手:如法律顾问、医学咨询等专业领域,分层加载机制确保只加载最相关的内容,避免 context overflow。
4. 个人 AI 助手:通过 Vikingbot 接通飞书/钉钉,AI 助手记住你的偏好和工作习惯,越用越懂你。
客观来说,OpenViking 仍处于快速发展阶段,以下几点值得关注:
OpenViking 的出现,代表了 AI Agent 领域从隐式 RAG 向显式上下文管理的范式转变。
传统 RAG 本质上是搜索驱动——用户问什么,就去向量库里搜什么。而 OpenViking 提出的上下文数据库理念,强调的是记忆驱动——Agent 主动维护上下文状态,按需交付给 LLM。这不仅仅是技术路线的差异,更是产品思维的转变。
从增长曲线看,OpenViking 获得了 2.4 万+ GitHub stars,说明社区对这一方向的高度认可。作为火山引擎在 Agent 基础设施领域的重要开源布局,OpenViking 有望成为 AI Agent 时代的数据库——就像关系型数据库支撑 Web 应用一样,上下文数据库将支撑 Agent 应用时代。
总结:如果你正在构建 AI Agent,特别是需要处理长周期任务、多轮对话、多 Agent 协作的场景,OpenViking 是一个值得投入时间深入了解的项目。它的文件系统范式让上下文管理变得直观,多语言架构兼顾了性能与易用性,而丰富的部署选项(Docker、K8s、pip)降低了试用门槛。当前版本已足够生产可用,唯一需要注意的是它与火山引擎生态的绑定程度——如果使用的是 LangChain、AutoGen 等第三方框架,也提供了相应的集成示例。