智猩猩AI整理
编辑:没方
让AI智能体帮你完成一个复杂任务,它需要去查资料、记用户偏好、调用工具、积累经验。
但是大部分智能体记忆散落在代码里,资源塞在向量数据库,技能东一个西一个。任务一长,上下文就爆炸,Token费用像坐火箭,检索效果还一塌糊涂。更气人的是,根本看不清它思考时到底用了哪些信息,智能体也学不会真正成长。
为此,今天给大家介绍字节火山引擎推出的开源项目OpenViking。它抛弃了传统 RAG 的碎片化向量存储模型,创新性地采用“文件系统范式”重构了上下文管理逻辑,实现记忆、资源、技能的统一管理,还支持分层上下文加载、目录递归检索、可视化检索轨迹和自动会话管理,让开发者彻底告别上下文管理的繁琐操作。目前,该项目在github上已收获21.7k Stars。

项目链接:
https://github.com/volcengine/OpenViking
01 项目介绍
OpenViking 的核心设计理念,是将 AI Agent 需要的所有上下文(记忆、资源、技能)映射为虚拟文件系统,通过viking://协议赋予每个信息唯一 URI,让开发者像用ls、find命令管理本地文件一样,构建智能体的大脑。通过五大核心能力,OpenViking 从根本上解决了 Agent 上下文管理的痛点。
(1)文件系统管理范式
OpenViking 摒弃了传统 RAG 的碎片化向量存储,将 Agent 的所有上下文整合为分层的虚拟文件系统,分为三大核心目录:
resources/:存放项目文档、代码仓库、网页等外部资源;
user/:记录用户偏好、使用习惯等用户记忆;
agent/:存储智能体的技能、指令、任务记忆等核心能力。
(2)分层上下文加载
把海量上下文一次性塞入模型 prompt,不仅成本高,还容易超出模型窗口。OpenViking 将所有信息自动处理为L0/L1/L2 三级结构,按需加载。
L0(摘要层):高度浓缩摘要,用于快速检索和相关性判断。
L1(概览层):包含核心信息和使用场景,用于智能体在规划阶段的决策。
L2(详情层):原始完整数据,仅在智能体需要深度阅读时加载。
三级结构让 Agent 只调用当前需要的信息,既节省了 Token 成本,又避免了无效信息的干扰。
(3)目录递归检索
单一的向量检索很难应对复杂的查询意图,OpenViking中引入一种目录递归检索策略,分为 5 步:
①意图分析:拆解用户查询,生成多个检索条件;
②初始定位:通过向量检索找到高匹配度的核心目录;
③精细探索:在核心目录内二次检索,并将高分结果更新到候选集;
④递归深入:若有子目录,逐层重复精细检索;
⑤结果聚合:返回最相关的完整上下文。
这种"先锁定高分目录,再精细化内容探索"的策略,不仅能找到语义匹配的信息片段,还能理解信息所在的全局上下文,让检索准确率大幅提升。
(4)可视化检索轨迹
OpenViking 会完整记录每次检索的目录浏览和文件定位轨迹,开发者能清晰看到智能体是如何找到信息。
当检索出现问题时,开发者可以通过轨迹快速定位根因,比如是初始目录定位错误,还是子目录探索不充分,从而针对性优化检索逻辑,彻底解决传统 RAG 调试难的问题。
(5)自动会话管理
OpenViking 内置记忆自迭代循环,在每次会话结束后,能自动分析任务执行结果和用户反馈,将核心信息更新到对应的记忆目录。
更新用户记忆:比如用户的写作风格、编码习惯,让智能体的响应更贴合用户需求;
积累智能体经验:从任务执行中提取工具使用技巧、操作流程等,辅助后续任务的高效决策。
这使得智能体能够通过与世界的交互"越用越聪明",实现自我进化。
02 使用方法
环境要求:Python版本(3.10+)、Go 版本(1.22 或更高,从源码构建 AGFS 组件需要)、C++ 编译器(GCC 9+ 或 Clang 11+,构建核心扩展需要,必须支持 C++17)。
(1)安装
#Python 包pip install openviking --upgrade --force-reinstall
#Rust CLI(可选)curl -fsSL https://raw.githubusercontent.com/volcengine/OpenViking/main/crates/ov_cli/install.sh | bash
#或从源码构建:cargo install --git https://github.com/volcengine/OpenViking ov_cli(2)模型准备
OpenViking 需要VLM 模型(用于图像和内容理解)和Embedding 模型(用于向量化和语义检索)。对于 embedding 模型,目前支持 volcengine(豆包)、openai、azure、jina 等提供商。对于 VLM 模型,支持 volcengine、openai、azure 和 litellm 提供商。litellm 提供商支持各种模型,包括 Anthropic (Claude)、DeepSeek、Gemini、Moonshot、Zhipu、DashScope、MiniMax、vLLM、Ollama 等。
(3)环境配置
服务器配置模板
创建配置文件 ~/.openviking/ov.conf:
{ "storage": { "workspace": "/home/your-name/openviking_workspace" }, "log": { "level": "INFO", "output": "stdout" // 日志输出:"stdout" 或 "file" }, "embedding": { "dense": { "api_base" : "<api-endpoint>", // API 端点地址 "api_key" : "<your-api-key>", // 模型服务 API Key "provider" : "<provider-type>", // 提供商类型:"volcengine"、"openai"、"azure" 等 "api_version": "2025-01-01-preview", // (仅 azure)API 版本,可选,默认 "2025-01-01-preview" "dimension": 1024, // 向量维度 "model" : "<model-name>" // Embedding 模型名称或 Azure 部署名(如 doubao-embedding-vision-250615 或 text-embedding-3-large) }, "max_concurrent": 10 // 最大并发 embedding 请求(默认:10) }, "vlm": { "api_base" : "<api-endpoint>", // API 端点地址 "api_key" : "<your-api-key>", // 模型服务 API Key "provider" : "<provider-type>", // 提供商类型 (volcengine, openai, azure, litellm 等) "api_version": "2025-01-01-preview", // (仅 azure)API 版本,可选,默认 "2025-01-01-preview" "model" : "<model-name>", // VLM 模型名称或 Azure 部署名(如 doubao-seed-2-0-pro-260215 或 gpt-4-vision-preview) "max_concurrent": 100 // 语义处理的最大并发 LLM 调用(默认:100) }}创建配置文件后,设置环境变量指向它(Linux/macOS):
export OPENVIKING_CONFIG_FILE=~/.openviking/ov.conf # 默认值在 Windows 上,使用以下任一方式:
PowerShell:
env:OPENVIKING_CONFIG_FILE = "$HOME/.openviking/ov.conf"命令提示符 (cmd.exe):
set "OPENVIKING_CONFIG_FILE=%USERPROFILE%\.openviking\ov.conf"CLI/客户端配置示例
示例:用于访问本地服务器的 ovcli.conf
{ "url": "http://localhost:1933", "timeout": 60.0, "output": "table"}创建配置文件后,设置环境变量指向它(Linux/macOS):
export OPENVIKING_CLI_CONFIG_FILE=~/.openviking/ovcli.conf # 默认值在 Windows 上,使用以下任一方式:
PowerShell:
env:OPENVIKING_CLI_CONFIG_FILE = "$HOME/.openviking/ovcli.conf"命令提示符 (cmd.exe):
set "OPENVIKING_CLI_CONFIG_FILE=%USERPROFILE%\.openviking\ovcli.conf"(4)运行 OpenViking
#启动服务器openviking-server
#或者可以在后台运行nohup openviking-server > /data/log/openviking.log 2>&1 &运行 CLI
ov statusov add-resource https://github.com/volcengine/OpenViking # --waitov ls viking://resources/ov tree viking://resources/volcengine -L 2# 如果没有使用 --wait,等待一段时间以进行语义处理ov find "what is openviking"ov grep "openviking" --uri viking://resources/volcengine/OpenViking/docs/zh(5)启动VikingBot
VikingBot 是构建在 OpenViking 之上的 AI 智能体框架。
pip install "openviking[bot]"
uv pip install -e ".[bot]"
openviking-server --with-bot
ov chat03 总结
当大模型从单轮对话走向长期任务执行与自主协作时,上下文管理已不再是 AI Agent 开发的附属功能,而是决定智能体能力上限的核心基础设施。OpenViking 的出现,不仅有效解决了当前 Agent 开发的上下文碎片化、检索低效等痛点,更以“文件系统范式”为 AI Agent 的记忆管理建立了全新标准。
OpenViking 内置的记忆自迭代机制,为智能体实现“越用越聪明”的持续进化打下了坚实基础。当前的 AI Agent 大多仍停留在“指令执行”阶段,而未来的智能体,需要在交互中不断积累经验、提炼知识、优化自身能力。OpenViking 通过每次会话结束后自动压缩上下文、提取长期记忆,并异步更新到对应目录,让 Agent 在真实使用中逐步成长。这种“成长型记忆”模式,正是下一代可靠、持久化 Agent 的关键特征,也将为通用人工智能(AGI)的落地提供重要基础设施支撑。