1. 项目定位与用途
OpenViking 是火山引擎开源的面向 AI Agent 的上下文数据库,定位为 Agent-native 的上下文管理基础设施。其核心用途是通过文件系统范式统一管理 Agent 运行所需的记忆(memory)、资源(resources)和技能(skills),将分散的上下文元素整合为可层次化组织、按需加载的结构化数据。开发者可以像操作本地文件系统一样管理 Agent 的"大脑",无需再为上下文碎片化问题头疼。项目采用多语言架构(Python 主包 + Rust 核心扩展),提供 Embedded、HTTP、CLI 三种连接模式,适用于从单机开发到分布式部署的各种场景。
2. 解决的核心问题
OpenViking 针对 AI Agent 开发中的五大痛点提供解决方案:一是上下文碎片化,将记忆、资源、技能从代码、向量库、 scattered 文件中统一到文件系统范式;二是上下文需求激增,通过 L0/L1/L2 三层结构按需加载,避免简单截断导致的信息丢失;三是检索效果差,采用目录递归检索结合语义搜索,提供全局视图和精确上下文获取;四是上下文不可观测,支持可视化检索轨迹,清晰展示检索路径便于调试;五是记忆迭代有限,自动会话管理实现上下文压缩、资源引用和工具调用记录,并提取长期记忆使 Agent 越用越聪明。
3. 适用场景
OpenViking 主要适用于以下场景:AI Agent 的长期记忆与上下文管理,特别是需要跨越多个会话保持连贯性的对话系统;多源异构资源的统一组织与检索,包括文档、网页、数据库记录等;技能库的版本化存储与按需加载,支持 Agent 动态扩展能力;会话上下文压缩与长期记忆提取,降低 LLM 调用成本的同时保留关键信息;需要可观测检索过程的调试与优化场景;以及 openclaw 等 Agent 框架的上下文后端。项目特别适合构建需要深度记忆、复杂技能组合和高效资源检索的生产级 AI Agent 应用。
4. 安装方式
OpenViking 的安装需满足前置环境要求:Python 3.10 或更高版本,Go 1.22+(用于构建 AGFS 组件),GCC 9+ 或 Clang 11+(用于构建核心扩展),以及稳定的网络连接。主要安装方式为通过 pip 安装 Python 包:执行 pip install openviking --upgrade --force-reinstall。此外,项目还提供 Rust CLI 工具(具体安装命令在 README 中给出),以及 Docker 容器化部署方案(见 bot/deploy/docker 目录)。Windows 用户需确保构建工具链可用,或优先考虑 WSL2 环境。安装后可通过 ov --help 验证 CLI 工具是否可用。
5. 使用方式
使用 OpenViking 的核心是理解其文件系统范式:上下文以目录树形式组织,L0 为摘要、L1 为概览、L2 为全文,通过 abstract()、overview()、read()、write() 等 API 操作。典型流程包括:1)初始化连接(Embedded/HTTP/CLI 模式);2)创建会话(sessions.create)跟踪对话状态;3)写入上下文(write)存储记忆、资源和技能;4)检索上下文(find/search)获取相关信息;5)自动会话管理会压缩历史并提取长期记忆。开发者可参考 bot/vikingbot 目录下的示例代码,或查阅 docs/en/api/ 系列文档了解详细 API 用法。检索时推荐组合使用目录定位(find)与语义搜索(search)以兼顾精确性与召回率。
6. 实现特点与架构
OpenViking 在实现上具有几个关键特点:采用记忆模板化机制,支持自定义记忆类型而无需修改核心代码,采用 ReAct 模式进行记忆更新;使用语义化文件名替代随机 ID,提升导航价值;借鉴商业化记忆库实现 patch 增量更新机制,减少 LLM 调用。架构上分为 Python 层(提供 API、FastAPI 服务、文件解析器)和 Rust 层(核心存储引擎 AGFS),通过 pyo3 绑定交互。项目支持多租户设计(见 docs/design/multi-tenant-design.md),具备完善的评估基准(benchmark/ 目录包含 RAG、locomo、skillsbench 等测试套件)。当前版本为 Alpha 阶段,许可证为 AGPL-3.0。