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 消耗更低。
评论区
登录后可评论。














