ghcr.io/volcengine/openviking:v0.4.6.dev10
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
OpenViking:AI智能体的上下文数据库
英文 / 中文 / 日本語
网站 · 在线演示 · GitHub · 问题反馈 · 文档
👋 加入我们的社区
📱 飞书群 · 微信 · *** · X
✨ 2026年5月更新:更新了OpenViking在用户记忆、智能体记忆和知识库问答场景下的基准测试结果。→ 参见评估亮点。
概述
智能体开发中的挑战
在AI时代,数据丰富但高质量上下文稀缺。构建AI智能体时,开发者常面临以下挑战:
- 上下文碎片化:记忆存储在代码中,资源位于向量数据库,技能分散各处,难以统一管理。
- 上下文需求激增:智能体的长时间运行任务在每次执行时都会产生上下文。简单的截断或压缩会导致信息丢失。
- 检索效果不佳:传统RAG采用扁平存储,缺乏全局视角,难以理解信息的完整上下文。
- 上下文不可观测:传统RAG的隐式检索链如同黑盒,出现错误时难以调试。
- 记忆迭代受限:当前记忆仅记录用户交互,缺乏与智能体相关的任务记忆。
OpenViking解决方案
OpenViking是一个专为AI智能体设计的开源上下文数据库。
我们旨在为智能体定义极简的上下文交互范式,让开发者彻底告别上下文管理的烦恼。OpenViking摒弃了传统RAG的碎片化向量存储模型,创新性地采用**“文件系统范式”**来统一智能体所需的记忆、资源和技能的结构化组织。
借助OpenViking,开发者可以像管理本地文件一样构建智能体的“大脑”:
- 文件系统管理范式 → 解决碎片化问题:基于文件系统范式统一管理记忆、资源和技能的上下文。
- 分层上下文加载 → 降低Token消耗:L0/L1/L2三层结构,按需加载,大幅节省成本。
- 目录递归检索 → 提升检索效果:支持原生文件系统检索方式,结合目录定位与语义搜索,实现递归且精准的上下文获取。
- 可视化检索轨迹 → 上下文可观测:支持目录检索轨迹可视化,让用户清晰观察问题根源并指导检索逻辑优化。
- 自动会话管理 → 上下文自迭代:自动压缩对话中的内容、资源引用、工具调用等,提取长期记忆,使智能体越用越聪明。
快速开始
💡 想先体验一下? 试试OpenViking Studio——一个托管的在线实例,包含上下文 playground、语义搜索和多智能体中心。无需安装。
本地部署
前提条件
开始使用OpenViking前,请确保您的环境满足以下要求:
- Python版本:3.10或更高
- Rust工具链:Cargo(从源码构建RAGFS和CLI组件时需要)
- C++编译器:GCC 9+ 或 Clang 11+(构建核心扩展时需要)
- 操作系统:Linux、macOS、Windows
- 网络连接:需要稳定的网络连接(用于下载依赖和访问模型服务)
1. 安装
Python包
pip install openviking --upgrade --force-reinstall
Rust CLI(可选)
npm i -g @openviking/cli
或从源码构建:
cargo install --git https://github.com/volcengine/OpenViking ov_cli
2. 模型准备
OpenViking需要以下模型能力:
- VLM模型:用于图像和内容理解
- 嵌入模型(Embedding Model):用于向量化和语义检索
支持的VLM提供商
OpenViking支持多种VLM提供商:
| Provider | 描述 | 设置 -------------------------------------------------------------------------------------------------------------------------------------------------- |
|---|---|---|
volcengine | 火山引擎豆包模型 | https://console.volcengine.com/ark/region:ark+cn-beijing/overview?briefPage=0%5C&briefType=introduce%5C&type=new%5C&utm_content=OpenViking%5C&utm_medium=devrel%5C&utm_source=OWO%5C&utm_term=OpenViking |
openai | OpenAI官方API | https://platform.openai.com |
openai-codex | Codex VLM | 使用 openviking-server init |
kimi | Kimi代码会员 | 使用 openviking-server init |
glm | GLM编码计划 | 使用 openviking-server init |
特定提供商说明
火山引擎(豆包)
火山引擎支持模型名称和端点ID。为简单起见,建议使用模型名称:
{
"vlm": {
"provider": "volcengine",
"model": "doubao-seed-2-0-lite-260428",
"api_key": "your-api-key",
"api_base": "https://ark.cn-beijing.volces.com/api/v3"
}
}
您也可以使用端点ID(在https://console.volcengine.com/ark/region:ark+cn-beijing/overview?briefPage=0%5C&briefType=introduce%5C&type=new%5C&utm_content=OpenViking%5C&utm_medium=devrel%5C&utm_source=OWO%5C&utm_term=OpenViking%E4%B8%AD%E6%89%BE%E5%88%B0%EF%BC%89%EF%BC%9A
{
"vlm": {
"provider": "volcengine",
"model": "ep-20241220174930-xxxxx",
"api_key": "your-api-key",
"api_base": "https://ark.cn-beijing.volces.com/api/v3"
}
}
OpenAI
使用OpenAI官方API:
{
"vlm": {
"provider": "openai",
"model": "gpt-4o",
"api_key": "your-api-key",
"api_base": "https://api.openai.com/v1"
}
}
您也可以使用自定义的OpenAI兼容端点:
{
"vlm": {
"provider": "openai",
"model": "gpt-4o",
"api_key": "your-api-key",
"api_base": "https://your-custom-endpoint.com/v1"
}
}
OpenAI Codex(OAuth)
当您希望OpenViking通过您的***/Codex OAuth会话而非标准OpenAI API密钥调用Codex VLM时,使用此提供商:
openviking-server init
# 出现提示时选择OpenAI Codex
openviking-server doctor
{
"vlm": {
"provider": "openai-codex",
"model": "gpt-5.3-codex",
"api_base": "https://chatgpt.com/backend-api/codex",
"temperature": 0.0,
"max_retries": 2
}
}
💡 提示:
- 当Codex OAuth可用时,
openai-codex不需要vlm.api_key- OpenViking将自己的Codex认证状态存储在
~/.openviking/codex_auth.jsonopenviking-server doctor验证当前Codex认证是否可用
Kimi代码(订阅)
当您希望OpenViking直接调用专用的Kimi代码订阅端点时,使用此提供商:
GLM Coding Plan(订阅版)
当您希望 OpenViking 直接调用智谱 AI 的 OpenAI 兼容 Coding Plan 端点时,使用此提供商:
openviking-server init
# 出现提示时选择 GLM Coding Plan
openviking-server doctor
{
"vlm": {
"provider": "glm",
"model": "glm-4.6v",
"api_key": "your-zai-api-key",
"api_base": "https://api.z.ai/api/coding/paas/v4",
"temperature": 0.0,
"max_retries": 2
}
}
💡 提示:
glm、zhipu、zai、z-ai和z.ai均指向同一个一级 GLM 提供商- 默认端点是 Coding Plan 端点,而非通用 Z.AI 端点
- 对于多模态解析,请使用支持视觉的模型,例如
glm-4.6v或glm-5v-turbo
3. 环境配置
本地模型快速设置(Ollama)
如果您希望通过 Ollama 运行 OpenViking 本地模型,交互式设置向导会自动处理所有事项:
openviking-server init
向导将:
- 检测并在需要时安装 Ollama
- 根据您的硬件推荐并拉取合适的嵌入模型和 VLM 模型
- 生成即用型
ov.conf配置文件
随时验证您的设置:
openviking-server doctor
doctor 命令会检查本地先决条件(配置文件、Python 版本、嵌入/VLM 提供商连接性、磁盘空间),无需运行服务器。
对于云 API 提供商(Volcengine、OpenAI、*** 等),请继续以下手动配置。
服务器配置模板
推荐的首次使用流程:
openviking-server init
openviking-server doctor
如果在 openviking-server init 中选择 OpenAI Codex,向导可以导入现有 Codex 身份验证信息或为您启动 Codex 登录流程。
如果您偏好手动配置,请创建 ~/.openviking/ov.conf,复制前移除注释:
{
"storage": {
"workspace": "/home/your-name/openviking_workspace"
},
"log": {
"level": "INFO",
"output": "stdout" // 日志输出:"stdout" 或 "file"
},
"embedding": {
"dense": {
"api_base" : " ", // API 端点地址
"api_key" : " ", // 模型服务 API Key
"provider" : " ", // 提供商类型:"volcengine" 或 "openai"(当前支持)
"dimension": 1024, // 向量维度
"model" : " " // 嵌入模型名称(例如 doubao-embedding-vision-251215 或 text-embedding-3-large)
},
"max_concurrent": 10, // 最大并发嵌入请求数(默认:10)
"text_source": "content_only", // 文本文件向量化来源:content_only|summary_first|summary_only
"max_input_tokens": 4096 // 发送至嵌入模型的最大预估原始文本 tokens
},
"vlm": {
"api_base" : " ", // API 端点地址
"api_key" : " ", // 模型服务 API Key(openai-codex 可选)
"provider" : " ", // 提供商类型(volcengine、openai、openai-codex、kimi、glm 等)
"model" : " ", // VLM 模型名称(例如 doubao-seed-2-0-lite-260428 或 gpt-4-vision-preview)
"max_concurrent": 64 // 语义处理的最大并发 LLM 调用数(默认:64)
}
}
[!NOTE] 对于嵌入模型,支持的提供商包括
volcengine(豆包)、openai、azure、jina、ollama、voyage、dashscope、minimax、cohere、vikingdb、gemini(需pip install "google-genai>=1.0.0")、litellm和local。对于 VLM 模型,常见提供商包括volcengine、openai、openai-codex、kimi和glm。
[!NOTE] 内存配置:OpenViking 始终使用 v3 内存提取管道。旧版
memory.version设置已弃用并被忽略;设置了该值的现有配置仍可加载,且不会改变行为。
[!NOTE] 内存模式作用域:内存模式 YAML 默认值为
stage: "user"和peer_enabled: true。对于轨迹/经验等执行派生模式,使用stage: "agent";当模式必须保留在当前用户的内存目录而非对等目录时,设置peer_enabled: false。
服务器配置示例
👇 展开查看您的模型服务对应的配置示例:
示例 1:使用 Volcengine(豆包模型)
{
"storage": {
"workspace": "/home/your-name/openviking_workspace"
},
"log": {
"level": "INFO",
"output": "stdout" // 日志输出:"stdout" 或 "file"
},
"embedding": {
"dense": {
"api_base" : "https://ark.cn-beijing.volces.com/api/v3",
"api_key" : "your-volcengine-api-key",
"provider" : "volcengine",
"dimension": 1024,
"model" : "doubao-embedding-vision-251215"
},
"max_concurrent": 10
},
"vlm": {
"api_base" : "https://ark.cn-beijing.volces.com/api/v3",
"api_key" : "your-volcengine-api-key",
"provider" : "volcengine",
"model" : "doubao-seed-2-0-lite-260428",
"max_concurrent": 64
}
}
示例 2:使用 OpenAI 模型
{
"storage": {
"workspace": "/home/your-name/openviking_workspace"
},
"log": {
"level": "INFO",
"output": "stdout" // 日志输出:"stdout" 或 "file"
},
"embedding": {
"dense": {
"api_base" : "https://api.openai.com/v1",
"api_key" : "your-openai-api-key",
"provider" : "openai",
"dimension": 3072,
"model" : "text-embedding-3-large"
},
"max_concurrent": 10
},
"vlm": {
"api_base" : "https://api.openai.com/v1",
"api_key" : "your-openai-api-key",
"provider" : "openai",
"model" : "gpt-4-vision-preview",
"max_concurrent": 64
}
}
示例 3:使用 Google *** 嵌入
首先安装所需包:
pip install "google-genai>=1.0.0"
{
"storage": {
"workspace": "/home/your-name/openviking_workspace"
},
"embedding": {
"dense": {
"provider": "gemini",
"api_key": "your-google-api-key",
"model": "gemini-embedding-2-preview",
"dimension": 3072
},
"max_concurrent": 10
},
"vlm": {
"api_base" : "https://api.openai.com/v1",
"api_key" : "your-openai-api-key",
"provider" : "openai",
"model" : "gpt-4o",
"max_concurrent": 64
}
}
获取 Google API 密钥的地址:
示例 4:使用 Volcengine 嵌入 + Codex VLM
使用 openviking-server init 并选择 OpenAI Codex,然后运行 openviking-server doctor。
{
"storage": {
"workspace": "/home/your-name/openviking_workspace"
},
"embedding": {
"dense": {
"api_base" : "https://ark.cn-beijing.volces.com/api/v3",
"api_key" : "your-volcengine-api-key",
"provider" : "volcengine",
"dimension": 1024,
"model" : "doubao-embedding-vision-251215"
}
},
"vlm": {
"api_base" : "https://chatgpt.com/backend-api/codex",
"provider" : "openai-codex",
"model" : "gpt-5.3-codex",
"max_concurrent": 64
}
}
4. 运行第一个示例
[!IMPORTANT] 前提条件:确保已完成上一步的配置(ov.conf 和 ovcli.conf)。
现在让我们运行一个完整示例,体验 OpenViking 的核心功能。
启动服务器
openviking-server doctor
openviking-server
如果您配置了 provider=openai-codex,openviking-server doctor 已验证 Codex 身份验证。
或者您可以在后台运行:
nohup openviking-server
> /data/log/openviking.log 2>&1 &
运行 CLI
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
要重建现有索引,ov reindex --mode vectors_only 仅刷新向量。当必须在生成向量之前重新生成语义工件(.abstract.md 和 .overview.md)时,使用 --mode semantic_and_vectors;没有 semantic 或 full 模式别名。
恭喜!您已成功运行 OpenViking 🎉
4. 可视化检索轨迹 → 可观测的上下文
OpenViking 的组织采用分层虚拟文件系统结构。所有上下文均以统一格式整合,每个条目对应唯一 URI(如 viking:// 路径),打破了传统的扁平黑盒管理模式,形成易于理解的清晰层级。
检索过程采用目录递归策略。每次检索的目录浏览和文件定位轨迹均被完整保留,使用户能够清晰观察问题根源并指导检索逻辑优化。了解更多:检索机制
5. 自动会话管理 → 上下文自迭代
OpenViking 内置内存自迭代循环。在每个会话结束时,开发者可主动触发内存提取机制。系统将异步分析任务执行结果和用户反馈,并自动更新至 User 和 Agent 内存目录。
- 用户内存更新:更新与用户偏好相关的记忆,使 Agent 响应更贴合用户需求。
- Agent 经验积累:从任务执行经验中提取操作技巧、工具使用经验等核心内容,辅助后续任务的高效决策。
这使得 Agent 通过与世界的交互实现“越用越聪明”,达成自我进化。了解更多:会话管理
OpenViking 仍处于早期阶段,有许多改进和探索的空间。我们诚挚邀请每一位对 AI Agent 技术充满热情的开发者:
- 为我们点亮宝贵的 Star,给予我们前进的动力。
- 访问我们的 官网 了解我们所传递的理念,并通过 文档 在您的项目中使用。感受它带来的变化,并将您最真实的体验反馈给我们。
- 加入我们的社区,分享您的见解,帮助解答他人的问题,共同营造开放互助的技术氛围:
- 📱 飞书群:扫描加入 → 查看
- 💬 ***:扫描添加助手 → 查看
- 🎮 *******:加入 *** 服务器
- 🐦 X (*)**:关注我们
- 成为 贡献者,无论是提交漏洞修复还是贡献新功能,您的每一行代码都将是 OpenViking 成长的重要基石。
让我们共同定义和构建 AI Agent 上下文管理的未来。征程已启,期待您的参与!
Star 趋势
安全与隐私
本项目高度重视安全性。有关漏洞报告和支持的版本,请参见 SECURITY.md
许可协议
OpenViking 项目对不同组件使用不同的许可协议:
- 主项目:AGPLv3 - 详情参见 LICENSE 文件
- crates/ov_cli:Apache 2.0 - 详情参见 LICENSE
- examples:Apache 2.0 - 详情参见 LICENSE
- third_party:第三方项目各自的原始许可协议
镜像拉取常见问题
功能
错误码
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务