ov status
ov add-resource https://github.com/volcengine/OpenViking # --wait
ov 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
OpenViking:AI 智能体的上下文数据库
English / 中文 / 日本語
官网 · GitHub · 问题反馈 · 文档
👋 加入我们的社区
📱 飞书群 · 微信群 · Discord · X
概述
智能体开发面临的挑战
在 AI 时代,数据丰富,但高质量的上下文却难以获得。在构建 AI 智能体时,开发者经常面临以下挑战:
OpenViking 解决方案
OpenViking 是专为 AI 智能体设计的开源上下文数据库。
我们的目标是为智能体定义一个极简的上下文交互范式,让开发者完全告别上下文管理的烦恼。OpenViking 抛弃了传统 RAG 的碎片化向量存储模型,创新性地采用 “文件系统范式” 来统一组织智能体所需的记忆、资源和技能。
使用 OpenViking,开发者可以像管理本地文件一样构建智能体的大脑:
快速开始
前置条件
在开始使用 OpenViking 之前,请确保您的环境满足以下要求:
1. 安装
Python 包
Rust CLI(可选)
或从源码构建:
2. 模型准备
OpenViking 需要以下模型能力:
支持的 VLM 提供商
OpenViking 支持三种 VLM 提供商:
volcengineopenaiazurelitellm提供商特定说明
Volcengine (豆包)
Volcengine 支持模型名称和端点 ID。为简单起见,建议使用模型名称:
您也可以使用端点 ID(可在 Volcengine ARK 控制台 中找到):
OpenAI
使用 OpenAI 的官方 API:
您也可以使用自定义的 OpenAI 兼容端点:
Azure OpenAI
使用 Azure OpenAI 服务。
model字段需要填写 Azure 上的部署名称(deployment name),而非模型官方名字:LiteLLM (Anthropic, DeepSeek, Gemini, Qwen, vLLM, Ollama 等)
LiteLLM 提供对各种模型的统一访问。
model字段应遵循 LiteLLM 的命名约定。以下以 Claude 和 Qwen 为例:Anthropic:
Qwen (DashScope):
常见模型格式:
claude-3-5-sonnet-20240620ANTHROPIC_API_KEYdeepseek-chatDEEPSEEK_API_KEYgemini-proGEMINI_API_KEYdashscope/qwen-turboapi_base(见上方说明)openrouter/openai/gpt-4ohosted_vllm/llama-3.1-8bapi_base为 vLLM 服务器ollama/llama3.1api_base为 Ollama 服务器本地模型 (vLLM / Ollama):
完整的模型支持,请参见 LiteLLM 提供商文档。
3. 环境配置
本地模型快速配置 (Ollama)
如果你想通过 Ollama 使用本地模型运行 OpenViking,交互式向导会自动完成所有配置:
向导会:
ov.conf配置文件随时验证配置是否正确:
doctor会检查本地环境(配置文件、Python 版本、embedding/VLM 服务连通性、磁盘空间),无需启动服务器。服务器配置模板
创建配置文件
~/.openviking/ov.conf,复制前请删除注释:服务器配置示例
👇 展开查看您的模型服务的配置示例:
示例 1:使用 Volcengine(豆包模型)
示例 2:使用 OpenAI 模型
示例 3:使用 Azure OpenAI 模型
设置服务器配置环境变量
创建配置文件后,设置环境变量指向它(Linux/macOS):
在 Windows 上,使用以下任一方式:
PowerShell:
命令提示符 (cmd.exe):
CLI/客户端配置示例
👇 展开查看您的 CLI/客户端的配置示例:
示例:用于访问本地服务器的 ovcli.conf
创建配置文件后,设置环境变量指向它(Linux/macOS):
在 Windows 上,使用以下任一方式:
PowerShell:
命令提示符 (cmd.exe):
4. 运行您的第一个示例
现在让我们运行一个完整的示例,体验 OpenViking 的核心功能。
启动服务器
或者您可以在后台运行
运行 CLI
恭喜!您已成功运行 OpenViking 🎉
VikingBot 快速开始
VikingBot 是构建在 OpenViking 之上的 AI 智能体框架。以下是快速开始指南:
服务器部署详情
对于生产环境,我们建议将 OpenViking 作为独立的 HTTP 服务运行,为您的 AI 智能体提供持久、高性能的上下文支持。
🚀 在云端部署 OpenViking: 为确保最佳的存储性能和数据安全,我们建议在 火山引擎弹性计算服务 (ECS) 上使用 veLinux 操作系统进行部署。我们准备了详细的分步指南,帮助您快速上手。
👉 查看:服务器部署与 ECS 设置指南
OpenClaw 上下文插件详情
👉 查看:OpenClaw 上下文插件
👉 查看:OpenCode 记忆插件示例
👉 查看:Claude Code 记忆插件示例
VikingBot 部署详情
OpenViking 有一个类似 nanobot 的机器人用于交互工作,现已可用。
👉 查看:使用 VikingBot 部署服务器
–
核心概念
运行第一个示例后,让我们深入了解 OpenViking 的设计理念。这五个核心概念与前面提到的解决方案一一对应,共同构建了一个完整的上下文管理系统:
1. 文件系统管理范式 → 解决碎片化
我们不再将上下文视为扁平的文本切片,而是将它们统一到一个抽象的虚拟文件系统中。无论是记忆、资源还是能力,都映射到
viking://协议下的虚拟目录中,每个都有唯一的 URI。这种范式赋予智能体前所未有的上下文操作能力,使它们能够像开发者一样,通过
ls和find等标准命令精确、确定地定位、浏览和操作信息。这将上下文管理从模糊的语义匹配转变为直观、可追踪的”文件操作”。了解更多:Viking URI | 上下文类型2. 分层上下文加载 → 降低 Token 消耗
一次性将大量上下文塞入提示不仅昂贵,而且容易超出模型窗口并引入噪声。OpenViking 在写入时自动将上下文处理为三个级别:
了解更多:上下文分层
3. 目录递归检索 → 提升检索效果
单一向量检索难以应对复杂的查询意图。OpenViking 设计了创新的目录递归检索策略,深度集成多种检索方法:
这种”先锁定高分目录,再精细化内容探索”的策略不仅找到语义最佳匹配的片段,还能理解信息所在的完整上下文,从而提高检索的全局性和准确性。了解更多:检索机制
4. 可视化检索轨迹 → 可观察上下文
OpenViking 的组织采用分层虚拟文件系统结构。所有上下文以统一格式集成,每个条目对应一个唯一的 URI(如
viking://路径),打破了传统的扁平黑盒管理模式,具有清晰易懂的层次结构。检索过程采用目录递归策略。每次检索的目录浏览和文件定位轨迹被完整保留,让用户能够清晰观察问题的根源,指导检索逻辑的优化。了解更多:检索机制
5. 自动会话管理 → 上下文自迭代
OpenViking 内置了记忆自迭代循环。在每个会话结束时,开发者可以主动触发记忆提取机制。系统将异步分析任务执行结果和用户反馈,并自动更新到用户和智能体记忆目录。
这使得智能体能够通过与世界的交互”越用越聪明”,实现自我进化。了解更多:会话管理
深入阅读
文档
更多详情,请访问我们的完整文档。
社区与团队
更多详情,请参见:**关于我们**
加入社区
OpenViking 仍处于早期阶段,有许多改进和探索的空间。我们真诚邀请每一位对 AI 智能体技术充满热情的开发者:
让我们共同努力,定义和构建 AI 智能体上下文管理的未来。旅程已经开始,期待您的参与!
Star 趋势
许可证
OpenViking 项目不同组件采用不同的开源协议: