OpenViking项目全景解读:一个数据库统一Agent记忆、知识RAG与技能
2026/8/29 9:02:30 网站建设 项目流程

OpenViking项目全景解读:一个数据库统一Agent记忆、知识RAG与技能

【免费下载链接】OpenVikingSelf-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.项目地址: https://gitcode.com/GitHub_Trending/op/OpenViking

OpenViking 是面向 AI Agent 的开源上下文数据库(Context Database):它把 Agent 的**记忆(Memory)、知识 RAG(Resource)与技能(Skill)**统一放进一棵viking://虚拟目录树,内容写入时自动生成分层的摘要/概览/详情三层,按需加载、节省 token,每次检索都留下可回放、可调试的目录轨迹。对新手来说最大的好处是:不再需要同时维护一个向量库、一个记忆服务和一堆散落各处的技能文件——一个数据库全部搞定。

1、为什么 Agent 需要专门的"上下文数据库"?

构建 Agent 时,开发者普遍卡在 5 个痛点上:

痛点表现
🔸 上下文碎片化记忆在代码里、资源在向量库、技能散落各处,难以统一管理
🔸 上下文猛增长程任务不断产出新上下文,简单截断/压缩必然丢信息
🔸 检索效果差传统 RAG 平铺式存储,缺乏全局视野,难理解完整语境
🔸 过程不可观察检索链路像黑箱,结果不对时无法定位原因
🔸 记忆迭代有限只记录"用户说过什么",缺少 Agent 自身的任务经验

OpenViking 就是为解决这些问题而生的:用文件系统范式 + 分层加载 + 可观察检索 + 会话自迭代四件套一次性解决。

2、核心设计:一棵"虚拟文件系统"装下记忆、知识与技能

OpenViking 把三类上下文统一抽象为目录结构,每个条目都有唯一的viking://URI,Agent 可以像开发者操作文件一样用lstreefindgrep来确定性地定位内容:

viking:// ├── resources/ # 资源:项目文档、代码库、网页等(知识 RAG) │ └── my_project/docs/ └── user/{user_id}/ ├── memories/ # 用户记忆:偏好、习惯、事件 ├── skills/ # 技能:可调用的工具、MCP └── sessions/ # 原始会话
上下文类型存什么特点
Resource(资源)文档、代码、FAQ 等知识长期、相对静态
Memory(记忆)用户偏好、Agent 学习到的经验长期、动态更新
Skill(技能)工具、MCP 等可调用能力长期、静态

在官方 Web Studio 里,这棵树就是可视化呈现的——左侧是上下文目录树,中间是每个节点的 L0 摘要与 L1 概览,右侧终端可以直接执行检索命令:

💡 设计要点:向量检索负责"找到",文件路径负责"定位",两者结合让 Agent 的上下文操作从"碰运气"变成"确定性"。

3、L0/L1/L2 三层加载:任务需要多深,就加载多深

把海量内容一次性塞进提示词,既贵又容易超出模型窗口。OpenViking 在写入时就自动把内容处理成三个层级:

层级名称默认上限用途
L0摘要(.abstract.md约 256 字符向量搜索、快速判断相关性
L1概览(.overview.md约 4000 字符Rerank 精排、规划阶段导航
L2详情无统一上限完整原文,真正需要时才读

关键在于:每个目录都自带 L0/L1 sidecar,Agent 在读完整文件之前就能判断"这个目录跟当前任务相不相关",从而大幅减少无效 token 消耗。这是它相对传统 RAG"一刀切切片"的本质区别。

4、检索机制:从"黑盒"到"可观察"

OpenViking 采用两阶段检索,流程是:

  1. 意图分析:LLM 把查询拆成 0–5 个带类型的子查询(记忆/资源/技能);
  2. 初始定位:向量检索先锁定得分最高的目录;
  3. 精细探索:在该目录下二次检索,高分结果进入候选集;
  4. 递归下探:沿子目录逐层重复上述过程;
  5. Rerank 汇总:标量过滤 + 模型重排,返回带语境的完整结果。

更难得的是可观察性:每次检索都会记录"搜过哪些目录、命中了哪条 URI、各阶段耗时"的完整轨迹,结果不对时能直接看到它出自哪条路径:

5、会话自动沉淀:让 Agent"越用越聪明"

会话提交(commit)后,OpenViking 会异步分析对话结果与用户反馈,把有价值的信息提取成长期记忆,形成"记忆自迭代闭环"。内置记忆类型开箱即用:

用途内置类型
用户与环境理解profilepreferencesentitiesevents
助手身份与连续性identitysoul
任务执行与学习casestrajectoriesexperiencestoolsskills

也就是说,它不只是"记住用户说过什么",还能沉淀Agent 自己的任务经验,让同类任务下次做得更好。

6、快速开始:5 分钟部署你的 OpenViking 上下文数据库

环境要求 Python 3.10+,安装启动只需三步(详细步骤见docs/zh/getting-started/02-quickstart.md):

pip install openviking --upgrade openviking-server init # 交互式向导:选模型提供商、生成 ov.conf openviking-server doctor # 校验配置,不启动服务也能体检 openviking-server # 启动服务

init支持火山引擎、OpenAI、Kimi、GLM 和本地 Ollama 等多种提供商,选 Ollama 时还能自动检测并安装运行时。doctor会逐项检查配置、Python 版本、模型连通性和磁盘空间,全部 PASS 即可放心启动:

服务起来后,客户端命令ov就能体验"文件式"上下文操作:

ov add-resource https://github.com/volcengine/OpenViking --wait ov ls viking://resources/ ov find "what is openviking"

⚙️ OpenViking 需要两个模型能力:VLM(内容理解)+ Embedding(向量化)。以火山引擎为例,在控制台的"开通管理"中开通对应模型、创建 API Key 填入ov.conf即可:

希望从源码构建或二次开发时,可克隆仓库:git clone https://gitcode.com/GitHub_Trending/op/OpenViking;生产部署推荐 Docker 官方镜像(docker-compose.yml已在仓库根目录提供,默认暴露1933端口与/studioWeb 界面)。

7、如何把 OpenViking 接入你的 Agent(MCP 一键配置)

OpenViking 把召回结果注入 Agent 上下文,并自动提交会话记忆。已适配的 Agent 包括:Claude Code、Codex、Cursor、Trae、OpenCode、OpenClaw、Hermes、pi、LangChain/LangGraph以及任意MCP 客户端

以 Cursor 为例:打开 Settings → Tools & MCPs → "Add Custom MCP",粘贴配置中的 MCP JSON 并启用即可(完整步骤见docs/zh/agent-integrations/12-cursor.md):

自研系统则可直接调用 HTTP API(默认http://localhost:1933),或使用官方多语言 SDK:sdk/python/sdk/typescript/sdk/go/;LangChain 用户还可以参考integrations/langchain/中的集成实现。

8、VikingBot:在上下文数据库之上搭一个会聊天的智能体

想要"开箱即用的 Agent"而不是只搭基础设施?OpenViking 内置了VikingBot智能体框架——一条命令就能在服务器上附带启动 Bot 网关与控制台:

pip install "openviking[bot]" openviking-server --with-bot ov chat # 另开终端即可对话

其源码位于bot/vikingbot/,包含通道(channels)、沙箱(sandbox)、技能(skills)、定时任务等完整模块,官方 Docker 镜像默认即随服务器一起启动。

9、实测数据:接入 OpenViking 前后的差距

官方评测(复现脚本在benchmark/目录)给出了相当直观的收益:

  • 长对话用户记忆(LoCoMo):三种 Agent 接入 OpenViking 后准确率从原生的 24%–57% 提升到80%–83%,同时输入 token 减少34.3%–91.0%,查询时延降低58.45%–66.10%
  • 多轮 Agent 任务(tau2-bench):经验记忆让任务成功率在 Retail 场景提升6.87pp、Airline 场景提升11.87pp(同 LLM 无记忆对比)。

简单说:答案更准、token 更省、响应更快——这正是上下文数据库相对"裸奔 RAG"的核心价值。

10、项目结构速览:代码都放在哪

目录内容
openviking/服务端核心:retrieve/(层级检索)、session/(会话与记忆)、parse/(解析与 L0/L1 生成)、server/(HTTP API 与 Web 控制台)
crates/ragfsRust 实现的虚拟文件系统内核
openviking_cli/Python 侧ov命令行工具
bot/vikingbot/VikingBot 智能体框架
web-studio/可视化 Web 控制台前端
sdk/integrations/Python / TypeScript / Go SDK 与 LangChain 集成
benchmark/LoCoMo、tau2 等评测复现脚本
docs/zh/中文文档:概念、架构、部署、Agent 接入全收录

适合谁用:个人开发者想给自己的 Claude Code / Cursor 加"长期记忆";团队想在生产环境把 Agent 上下文作为独立 HTTP 服务统一托管(支持多租户、API Key、加密与指标采集);研究者则可以基于开源的 VikingMem 相关能力做记忆系统实验。

写在最后

OpenViking 把"Agent 记忆、知识 RAG、技能"三件事收敛进了一个类文件系统的上下文数据库viking://统一寻址、L0/L1/L2 分层省 token、目录递归检索可观察、会话自动沉淀经验。如果你正在为 Agent 的上下文管理头疼,不妨先用pip install openviking花 5 分钟跑起来,再决定要不要把它纳入技术栈。

【免费下载链接】OpenVikingSelf-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.项目地址: https://gitcode.com/GitHub_Trending/op/OpenViking

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询