OpenViking Skill:让 AI 智能体拥有持久记忆的上下文数据库
OpenViking Skill:让 AI 智能体拥有持久记忆的上下文数据库
OpenViking 是由字节跳动火山引擎开源的 AI 智能体上下文数据库,通过虚拟文件系统(viking:// 协议)统一管理记忆、资源和技能,让智能体像开发者操作本地文件一样浏览和检索自己的上下文。36,700+ GitHub 星、持续 GitHub Trending 上榜,9 月日均增长 169 颗星——它是目前 AI Agent 记忆层最被关注的基础设施项目之一。
功能与原则
OpenViking 的核心设计理念是「让智能体的上下文可见、可复用、可调试」:
- 统一上下文管理:记忆(user memories)、资源(project docs/code)、技能(skills)全部通过 viking:// URI 寻址,智能体用
ls、tree、find直接操作,无需额外交互界面 - 分层按需加载:每个目录自动生成 L0 摘要(单句判断相关性)、L1 概览(结构 + 要点供规划用)、L2 详情(完整内容仅在需要时加载),大幅降低 token 消耗
- 目录递归检索:向量搜索先定位最高相关目录,再逐层向下探索,保证结果自带周围上下文,不破坏语义连贯性
- 可观测检索轨迹:每次检索留下完整浏览路径,开发者可以回溯调试,而非只看最终答案
认可度
- GitHub Stars:36,700+(截至 2026-09-12,7 日均值 +169 星/天,30 日均值 +281 星/天,仍在加速)
- GitHub Trending:多次进入日榜 / 周榜,曾登顶第 2 位
- 学术界验证:论文分别被 VLDB 2026 和 ICDE 2026 接收;LoCoMo 记忆评估中,接入 OpenViking 的智能体记忆准确率从原生 24–57% 提升至 80–83%;在 tau2-bench 零售与航空任务中,经验记忆带来 +6.87pp 和 +11.87pp 的成功率提升
- 集成生态:支持 Claude Code、Codex、Cursor、OpenClaw、Hermes、OpenCode、pi、LangChain/LangGraph 等主流 Agent 框架
链接
GitHub:https://github.com/volcengine/OpenViking
原作者
火山引擎(volcengine)——字节跳动旗下云服务平台,聚焦 AI 基础设施。其团队同时开源了 Ark CLI 等工具链,OpenViking 是其在 Agent Memory 方向的核心产品。
介绍
OpenViking 起源于一个朴素的问题:AI 智能体每次新会话都从零开始,无法记住用户的编码习惯、项目上下文和跨会话经验。RAG 系统擅长文档检索,但无法解决「智能体自己的状态和记忆」问题。
OpenViking 的解决方案是把上下文建模成虚拟文件系统。记忆、资源、技能分别放在 viking://user/、viking://resources/、viking://skills/ 下,智能体可以像操作普通文件一样读写和搜索。写入时内容自动处理成 L0/L1/L2 三层;检索时智能体先读摘要判断相关性,再按需加载详情——既省 token,又保证精度。
每次检索都有完整轨迹记录,开发者能看到「智能体是怎样一步步找到这条上下文的」,而不是只得到一个黑盒答案。会话结束后,OpenViking 自动异步提取用户偏好和智能体经验写入长期记忆,下次会话直接复用。
基准测试数据有力:在 LoCoMo 用户记忆评估中,接入后准确率提升至 80–83%,同时 token 消耗降低 34–91%、查询延迟降低 58–66%。
特点
- viking:// 虚拟文件系统:统一的 URI 寻址,智能体用标准文件操作管理所有类型上下文
- 三层加载机制:L0 摘要 → L1 概览 → L2 详情,智能体按需取用,节省 token
- 目录递归检索:向量搜索定位目录后逐层向下探索,结果自带语义边界,不割裂上下文
- 可观测检索轨迹:每条检索结果都附带完整路径回溯,开发者可调试可审计
- 会话 → 记忆自动转化:提交会话后异步提取用户偏好和经验,跨会话复用,降低重复解释成本
- 多 Agent 框架集成:Claude Code / Codex / Cursor / OpenClaw / Hermes / OpenCode / pi / LangChain 原生接入
- 多语言 SDK:Python / Go / TypeScript + HTTP API,覆盖主流开发场景
- 学术背书:VLDB 2026 + ICDE 2026 双接收,记忆评估数据可复现
使用方法
安装
pip install openviking --upgrade
初始化
openviking-server init # 配置 embedding 模型和 VLM 提供方
openviking-server doctor # 检查配置连通性
openviking-server # 启动服务
CLI 快速上手
ov status
ov add-resource https://github.com/volcengine/OpenViking
# 等待任务完成(ov task status <TASK_ID>)
ov ls viking://resources/
ov tree viking://resources/volcengine -L 2
ov find "what is openviking"
ov grep "openviking" --uri viking://resources/volcengine/OpenViking/docs/en
Agent 接入(以 Claude Code 为例)
# 通过 Hook + MCP 方式接入
# 详见:https://docs.openviking.ai/en/agent-integrations/02-claude-code
配置文件在 ~/.openviking/ov.conf,支持 Volcengine、OpenAI、Kimi、GLM、Ollama 等多种 Provider。
Docker 部署
docker run -p 8080:8080 openviking/openviking
使用场景与人群
适用场景:
- 需要跨会话记忆的 AI Coding Agent:智能体记住用户偏好、项目规范、历史经验,不再每次从头解释
- 长周期任务协作:多轮对话中保持上下文连贯,避免记忆断层导致答非所问
- 知识密集型 RAG 场景:OpenViking 的目录检索机制比传统 flat 向量检索更精确,结果带语义边界
- 构建研究助手或顾问类 Agent:自动提取论文、文档的核心观点,构建可查询的知识库
目标用户:
- 已经在使用 Claude Code / Codex / Cursor 等 AI 编程工具、但受困于「每次都要重新说明上下文」的开发者
- 构建 AI Agent 产品、需要可靠记忆层基础设施的工程师
- 研究 LLM Memory / Agent Memory 方向的研究者和高校团队
输入与输出案例
案例一:开发者查询项目上下文
用户(开发者):「OpenViking 是如何做检索的?」
OpenViking 内部行为:
1. ov find "how does OpenViking retrieve" → 在 viking://resources/ 下检索
2. 返回匹配条目及 URI:viking://resources/volcengine/OpenViking/docs/en/retrieval.md
3. 智能体读取 L0 摘要判断相关性 → 加载 L2 详情 → 返回包含检索路径的解释
案例二:会话提交后记忆复用
用户完成一个编码任务后退出,次日再次打开 Claude Code:
- OpenViking 自动将昨日会话中的用户偏好(如「偏好用 TypeScript」「不接受 any 类型」)提取并写入
viking://user/{user_id}/memories/preferences/ - 新会话开始时,智能体自动加载这些记忆,无需用户重复说明
- 评估数据:在 tau2-bench 航空场景中,经验记忆带来 +11.87pp 任务成功率提升
评论区
登录后可评论。