OpenViking Skill:让 AI Agent 拥有「可浏览」的记忆文件系统

OpenViking Skill:让 AI Agent 拥有「可浏览」的记忆文件系统

总结

OpenViking 是火山引擎开源的 AI Agent 上下文数据库,通过 viking:// 虚拟文件系统协议统一管理 Agent 的记忆(Memory)、知识(RAG)和技能(Skills),用目录层级替代传统的平面向量检索,实现上下文可观测、可复用、可迭代。实测在长会话记忆任务中,准确率从 24–57% 提升至 80–83%,同时 Token 消耗降低 34–91%。GitHub 已有 27,275 颗 Stars(截至 2026-07-27),是当前 AI Agent 基础设施赛道的 trending 项目。

功能与原则

核心能力: 将 AI Agent 的所有上下文(用户偏好、项目文档、工具技能、跨会话记忆)组织为一个虚拟文件系统,Agent 通过 ls / tree / find 等确定性路径操作来查找信息,而非向量化黑盒检索。

设计原则:

  • 上下文确定性——不再依赖向量相似度碰运气,Agent 通过路径浏览找到确切上下文
  • 按需分层加载——写入时将内容处理为 L0/L1/L2 三层,推理时只加载任务所需深度
  • 可观测检索——每次查询保留完整的目录遍历轨迹,结果可复盘、可调试
  • 会话自进化——每次会话结束后,异步将用户偏好和 Agent 经验提取为长期记忆

认可度

  • GitHub Star:27,275(截至 2026-07-27)
  • Fork:2,144
  • 本周增长: 持续 trending,多篇技术社区文章跟进报道
  • GitHub 更新时间:2026-07-27(今日最新)
  • Benchmark 成绩: LoCoMo 长会话记忆准确率 80–83%(较基线提升 +56pp);Agent 经验记忆任务成功率提升 +6.87pp(零售场景)和 +11.87pp(航空场景)

链接

GitHub:https://github.com/volcengine/OpenViking

原作者

volcengine(字节跳动旗下云计算品牌)

项目官网:https://openviking.ai

在线体验(无需安装):https://openviking.ai/studio

介绍

构建 AI Agent 时,上下文管理是公认的最难题之一:记忆存在代码里、资源散落在向量数据库、技能没有统一入口——上下文碎片化导致检索质量差、长任务上下文爆炸、传统 RAG 像黑盒一样无法调试。

OpenViking 从头重新设计了这套体系:所有上下文(memory、resources、skills)被组织为一个虚拟文件系统,通过 viking:// 协议寻址。Agent 不再向量化搜索,而是像开发者浏览文件一样,用 ls 列出目录、用 read 读文件、用 find 搜索。写入时,系统自动将每条上下文处理为 L0(摘要,约 100 tokens)、L1(概述,约 2k tokens)、L2(完整内容)三层,按需加载——既省 Token,又能保证信息完整。

检索层面,OpenViking 采用目录递归策略:向量检索先定位最高分目录,再逐层向下钻取,每次筛选都保留周围上下文,最终聚合结果。整条检索路径可复盘——结果出错时,能直接看到是哪一步走偏了。

特点

  • 文件系统范式——统一的 viking:// URI 寻址,记忆、资源、技能三大类上下文共存于同一棵目录树
  • 三层按需加载——L0/L1/L2 分层,写入预计算,推理时只加载任务所需深度,Token 消耗大幅降低
  • 目录递归检索——非平面向量搜索,支持逐层钻取,上下文完整性高,可观测可调试
  • 会话自进化记忆——每次对话结束后,异步提取用户偏好和 Agent 执行经验为长期记忆
  • Benchmark 实测有效——长会话记忆准确率从 24–57% 提升至 80–83%;Agent 任务成功率提升 6–12 个百分点
  • 跨 Agent 兼容——文档中明确提及支持 OpenClaw,可与 Claude Code、Cursor、Cline 等多种 Agent 协同使用

使用方法

安装:

pip install openviking --upgrade

启动本地服务:

openviking-server init   # 交互式初始化
openviking-server        # 启动服务(日志输出到 openviking.log)

Docker 快速体验:

docker run -p 8000:8000 openviking/openviking

Python 客户端基础调用:

from openviking import VikingClient
client = VikingClient()

# 语义搜索
results = client.find("user authentication")

# 列出目录
client.ls("viking://resources/")

# 读取文件
content = client.read("viking://resources/my_project/docs/api.md")

# 获取摘要(L0)
abstract = client.abstract("viking://...")

为 AI Agent 加载项目上下文:

# 将本地项目文档注入 viking://
client.load("viking://resources/my_project/", "./my_project/docs/")

使用场景与人群

适用场景:

  • 长周期 AI Agent 开发(多轮对话、复杂任务链)
  • 企业级知识库 RAG(需要可治理、可溯源的上下文)
  • 多 Agent 协作系统(需要共享记忆与技能上下文)
  • 需要频繁上下文调试的 AI 应用开发

目标用户:

  • AI Agent 开发者与框架维护者
  • 企业 AI 平台工程师
  • RAG / 知识管理方向的研究者

输入与输出案例

案例 1:长会话记忆查询

输入(Agent 问):”用户上次要求我使用哪个 API 端点?”

检索过程:OpenViking 在 viking://user/{user_id}/memories/ 目录下递归查找,快速定位用户偏好的调用习惯。

输出:返回 L1 概述(约 2k tokens),包含用户偏好的端点、参数命名风格、认证方式,而非将整个会话记录塞进上下文窗口。


案例 2:项目资源按需加载

输入:开发者要求 Agent 阅读 viking://resources/my_project/ 下的 API 文档。

OpenViking 行为:

  • 先返回 L0(摘要):”API 文档,包含认证、用户管理、订单三个模块”
  • Agent 判断需要用户管理模块后,加载 L1(概述):”用户管理模块 v2,含 CRUD、批量操作、Webhook 回调”
  • 最后按需加载 L2(完整内容):完整 Markdown 文件

传统方式 vs OpenViking:传统 RAG 可能直接返回全部相关片段,含大量无关噪声;OpenViking 通过目录递归定位,上下文完整性更高,Token 消耗更低。


GitHub: https://github.com/volcengine/OpenViking

评论区

0 条评论

登录后可评论。

查看完整榜单
查看完整榜单
查看完整榜单