You need to enable JavaScript to run this app.
文档中心
火山方舟

火山方舟

复制全文
下载 pdf
接入 AI 工具
OpenViking
复制全文
下载 pdf
OpenViking
OpenViking 是专为 AI 智能体(Agent)打造的上下文数据库,主要适用于多 Agent 协同、长期记忆管理、复杂任务执行等场景。该数据库采用 viking://文件系统范式,将智能体的记忆、资源与技能进行统一组织管理,依托分层加载机制按需供给上下文,在减少 Token 消耗的同时提升运行效率,结合目录式检索优化信息召回效果。功能上,OpenViking 支持多租户、多用户及多 Agent 隔离,且能在会话结束后自动沉淀长期记忆,实现智能体能力的持续积累与自我优化,既有效降低开发者的上下文管理成本,也能显著提升 OpenClaw 等智能体的整体运行表现。
方舟 Coding Plan 支持在 OpenViking 中使用,可参考本文进行配置及使用。
注意
OpenViking 工具处于快速迭代阶段,本文使用的版本为 0.4.15,如果实际使用与以下步骤存在差异,可参见 OpenViking:AI 智能体的上下文数据库
说明
需要先访问 方舟 Coding Plan活动,按需订阅套餐后再配置使用工具。
核心配置
模型配置
VLM 模型
Coding Plan 支持的 VLM 模型及配置方式如下:
配置 Model Name (配置文件指定)
配置 ark-code-latest (控制台管理)
在工具配置文件中指定 Model Name,可实时切换模型。支持配置的 Model Name:
注意
配置 Model Name 时,支持使用全小写格式,同时也支持直接复制开通管理页面中的模型名称。
  • doubao-seed-2.1-pro
  • doubao-seed-2.1-lite
  • doubao-seed-evolving
  • minimax-m2.7
  • minimax-m3
  • glm-5.3
  • glm-5.3-flash
  • deepseek-v4-flash
  • deepseek-v4-pro
  • kimi-k2.6
  • kimi-k2.7-code
  • kimi-k2.8-preview
  • kimi-k3
说明
Model Name 不支持配置为 Auto,如需使用,请通过控制台切换该模式。
Embedding 模型
Coding Plan 支持的 Embedding 模型:doubao-embedding-vision
Base URL
使用 Coding Plan 专属 Base URL:https://ark.cn-beijing.volces.com/api/coding/v3(兼容 OpenAI 接口协议)
注意
请使用 Coding Plan 专属 Base URL,否则会产生额外费用。
API Key
一、前提条件
  • 已安装 C++ 编译器,且 GCC 9+ 或 Clang 11+。
说明
通过命令clang++ --versionclang++ -std=c++17 -E -x c++ - < /dev/null检查 C++编译器支持情况。
说明
如果执行 pip install openviking 时提示 No matching distribution found,请先运行 python3 --version 确认 Python 版本不低于 3.10。
二、安装 OpenViking
执行以下命令安装 OpenViking。
pip install openviking --upgrade --force-reinstall
安装结束后,执行以下命令查看安装结果,若显示版本号则安装成功。
openviking --version
三、配置 OpenViking
  1. 创建配置文件~/.openviking/ov.conf,配置信息如下。需要修改的配置信息如下:
  • storage.workspace:替换为实际的工作空间路径。
  • embedding:配置 Embedding 模型,用于向量化和语义检索。
  • embedding.dense.model:支持的 Embedding 模型 doubao-embedding-vision
  • embedding.dense.api_key:替换为您自己的 API Key
  • vlm:配置 VLM 模型,用于图像和内容理解。
  • vlm.model:支持的 VLM 模型,具体参见VLM 模型
  • vlm.api_key:替换为您自己的 API Key
{
"storage": {
"workspace": "/home/your-name/openviking_workspace"
},
"log": {
"level": "INFO",
"output": "stdout"
},
"embedding": {
"dense": {
"backend": "volcengine",
"api_key": "<ARK_API_KEY>",
"model": "doubao-embedding-vision",
"api_base": "https://ark.cn-beijing.volces.com/api/coding/v3",
"dimension": 1024,
"input": "multimodal"
}
},
"vlm": {
"backend": "volcengine",
"api_key": "<ARK_API_KEY>",
"model": "doubao-seed-2.1-pro",
"api_base": "https://ark.cn-beijing.volces.com/api/coding/v3",
"temperature": 0.1,
"max_retries": 3
}
}
  1. 设置服务器配置环境变量。
根据系统环境选择对应的方式设置环境变量。
说明
如果配置文件放在其他位置,需要在环境变量中指定对应的文件路径。
macOS/Linux
Windows
执行以下命令,设置环境变量指向对应的配置文件。
export OPENVIKING_CONFIG_FILE=~/.openviking/ov.conf
四、 开始使用 OpenViking
说明
需要先在另一个终端执行 openviking-server 启动服务,再运行下面的 Python 示例。
  1. 创建 Python 文件example.py,代码内容如下。
  • from openviking_sdk import SyncHTTPClient
    # Initialize OpenViking HTTP client
    client = SyncHTTPClient(url="http://localhost:1933", api_key="<ARK_API_KEY>")
    try:
    # Initialize the client
    client.initialize()
    # Add resource (supports URL, file, or directory)
    add_result = client.add_resource(
    path="https://raw.githubusercontent.com/volcengine/OpenViking/refs/heads/main/README.md"
    )
    root_uri = add_result['root_uri']
    # Explore the resource tree structure
    ls_result = client.ls(root_uri)
    print(f"Directory structure:\n{ls_result}\n")
    # Use glob to find markdown files
    glob_result = client.glob(pattern="**/*.md", uri=root_uri)
    if glob_result['matches']:
    content = client.read(glob_result['matches'][0])
    print(f"Content preview: {content[:200]}...\n")
    # Wait for semantic processing to complete
    print("Wait for semantic processing...")
    client.wait_processed(timeout=120)
    # Get abstract and overview of the resource
    abstract = client.abstract(root_uri)
    overview = client.overview(root_uri)
    print(f"Abstract:\n{abstract}\n\nOverview:\n{overview}\n")
    # Perform semantic search
    results = client.find("what is openviking", target_uri=root_uri)
    print("Search results:")
    for r in results.get("resources", []):
    print(f" {r['uri']} (score: {r['score']:.4f})")
    # Close the client
    client.close()
    except Exception as e:
    print(f"Error: {e}")
  1. 执行命令 python example.py,输出如下内容则说明 OpenViking 已成功运行。
  • Directory structure:
    ...
    Content preview: ...
    Wait for semantic processing...
    Abstract:
    ...
    Overview:
    ...
    Search results:
    viking://resources/... (score: 0.8523)
    ...
其他操作
CLI 服务端配置并使用 OpenViking
如果需要将 OpenViking 作为独立的 HTTP 服务运行,然后从任意客户端连接,请参考以下步骤进行配置。
前提条件
已安装并完成配置 OpenViking,具体参见 安装 OpenViking配置 OpenViking
启动服务
执行以下命令启动服务。
openviking-server
启动完成后,在新的命令行界面执行以下命令验证服务启动是否成功,若返回"status":"ok"则表示启动成功。
curl http://localhost:1933/health
使用 CLI 连接
  1. 创建 CLI 连接配置文件 ~/.openviking/ovcli.conf,配置信息如下。其中<ARK_API_KEY>需替换为您自己的 API Key
  • {
    "url": "http://localhost:1933",
    "api_key": "<ARK_API_KEY>",
    "output": "table"
    }
  1. 在新的命令行界面执行以下 CLI 命令。
  • # Check system health
    openviking observer system
    # Add a resource to memory
    openviking add-resource https://raw.githubusercontent.com/volcengine/OpenViking/refs/heads/main/README.md
    # List all synchronized resources
    openviking ls viking://resources
    # Query
    openviking find "what is openviking"
使用 curl 连接
启动服务后,也可以在命令行界面使用 curl 命令连接 OpenViking。
# Add a resource
curl -X POST http://localhost:1933/api/v1/resources \
-H "Content-Type: application/json" \
-d '{"path": "https://raw.githubusercontent.com/volcengine/OpenViking/refs/heads/main/README.md"}'
# List resources
curl "http://localhost:1933/api/v1/fs/ls?uri=viking://resources/"
# Semantic search
curl -X POST http://localhost:1933/api/v1/search/find \
-H "Content-Type: application/json" \
-d '{"query": "what is openviking"}'
在 OpenClaw 配置 OpenViking 记忆功能
通过 OpenViking 为 OpenClaw 提供长效记忆能力,配置完成后,OpenClaw 将自动记住对话中的重要信息,并在回复前回忆相关内容。
前提条件
已完成 OpenClaw 的安装与配置,具体参见 安装 OpenClaw配置 OpenClaw
安装及配置
安装完成后,编辑配置文件~/.openviking/ov.conf,使用 Coding Plan 支持的模型。配置信息可参见 配置工具
最近更新时间:2026.09.23 17:07:48
这个页面对您有帮助吗?
有用
有用
无用
无用