环境
Win11,WSL2,Ubuntu24.04

openviking-server --version
openviking-server 0.4.10

ov --help
OpenViking v0.4.11.dev0

一、相关文档

记忆提供程序

Memory Providers

openviking简介

openviking快速开始

在线服务

OpenViking Service(火山引擎云)

产品介绍

二、备份数据

停止服务

(Ctrl+C 或)pkill -f openviking-server

备份数据目录

cp -r ~/.openviking/data ~/.openviking/data_backup_volc_embedding

三、切换embedding模型

doubao-embedding-vision

新版本Seed-1.6-embedding图文多模态向量化模型全新上线,主要面向图文多模向量检索的使用场景,支持图片输入及中、英双语文本输入,最长 8K 上下文长度。

输入:文本、图片、视频

(openviking不支持其他厂商嵌入模型的多模态能力)

bge-small-zh-v1.5-f16(huggingface)

bge-small-zh-v1.5-f16(官网)

FlagEmbedding 能够将任意文本映射为低维稠密向量,可用于检索、分类、聚类、语义搜索等任务,同时也可配合大语言模型应用于向量数据库场景中。

openviking-server init操作

uadmin@PC26:~$ openviking-server init

╭─────────────────────────────────────────────────────────╮
│  OpenViking Setup                                       │
│  Context database for AI agents — data in, context out  │
╰─────────────────────────────────────────────────────────╯
  Data will be stored under /home/uadmin/.openviking/data unless you edit ov.conf later.

  Existing config found: /home/uadmin/.openviking/ov.conf

  Current configuration
    Embedding:     ollama · qwen3-embedding-cpu:0.6b (1024d)
    VLM:           litellm · ollama/qwen3.6:35b
    Query planner: litellm · ollama/guoxuter/ov_intent_analysis_sft:v7_q8
    Server:        127.0.0.1:1933 · auth dev (no auth)

  What would you like to do?  ↑/↓ move · enter select

  ❯ Start over  (full setup, current config backed up as .bak)
    Update VLM  (now: litellm · ollama/qwen3.6:35b)
    Update embedding  (now: ollama · qwen3-embedding-cpu:0.6b (1024d))
    Update server & auth  (now: 127.0.0.1:1933 · auth dev (no auth))
    Cancel

选择Update embedding
---------------------------------------------------------------------------------------

  ❯ Update embedding

  Current embedding: ollama · qwen3-embedding-cpu:0.6b (1024d)

  Embedding setup:  ↑/↓ move · enter select

    Cloud API  (VolcEngine, BytePlus, OpenAI)
  ❯ Local via Ollama  (no API key, runs on this machine)
    Lightweight CPU embedding  (llama.cpp, ~24 MB, no Ollama needed)

选择Lightweight CPU embedding
---------------------------------------------------------------------------------------

  ❯ Lightweight CPU embedding

  Checking llama-cpp-python... not installed

  llama-cpp-python is required for local CPU embedding.
  Install now? (pip install "openviking[local-embed]") [Y/n]:

输入Y
---------------------------------------------------------------------------------------

  Install now? (pip install "openviking[local-embed]") [Y/n]: Y

/home/uadmin/.local/share/uv/tools/openviking/bin/python: No module named pip
  Native build failed, retrying with generic CPU flags...
/home/uadmin/.local/share/uv/tools/openviking/bin/python: No module named pip
  Installation failed.
  Try manually: pip install "openviking[local-embed]"
  Continue anyway? (config will be generated) [y/N]:

输入N
---------------------------------------------------------------------------------------

  Continue anyway? (config will be generated) [y/N]: N

  Setup cancelled.

安装系统编译依赖(llama-cpp-python 编译需要)
sudo apt update && sudo apt install -y build-essential cmake

用 uv 原生方式安装本地嵌入依赖
直接用 uv 给 OpenViking 工具环境添加 local-embed 额外依赖,uv 会自动处理安装,不需要 pip:
uv tool install --reinstall "openviking[local-embed]"
说明:--reinstall 会保留你原有配置,仅补充安装额外依赖包(包括 llama-cpp-python)。

另一种安装方法

手动给 openviking 的 uv 环境安装依赖:
uv pip install --python ~/.local/share/uv/tools/openviking/bin/python "openviking[local-embed]"

重新执行openviking-server init

  ❯ Lightweight CPU embedding

  Checking llama-cpp-python... installed

  Embedding model:  ↑/↓ move · enter select

  ❯ BGE-small-zh v1.5 (f16)  (512d, ~24 MB)

选择BGE-small-zh v1.5 (f16)
---------------------------------------------------------------------------------------

 ❯ BGE-small-zh v1.5 (f16)
  Model 'bge-small-zh-v1.5-f16' not downloaded yet. Download now? (~24 MB) [Y/n]:

输入Y
---------------------------------------------------------------------------------------

  Model 'bge-small-zh-v1.5-f16' not downloaded yet. Download now? (~24 MB) [Y/n]: Y

  Downloading...

---------------------------------------------------------------------------------------

  Model 'bge-small-zh-v1.5-f16' not downloaded yet. Download now? (~24 MB) [Y/n]: Y

  Download failed: HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /CompendiumLabs/bge-small-zh-v1.5-gguf/resolve/main/bge-small-zh-v1.5-f16.gguf?download=true (Caused by NewConnectionError("HTTPSConnection(host='huggingface.co', port=443): Failed to establish a new connection: [Errno 101] Network is unreachable"))
  Model will be auto-downloaded on first server start.

  Embedding dimension changes from 1024 to 512.
  Existing vector indexes become unusable — data must be re-ingested.
  Continue? [y/N]:

网络报错,先输入N
---------------------------------------------------------------------------------------

  Continue? [y/N]: N

  Setup cancelled.

重新执行openviking-server init

打开网络代理

  Model 'bge-small-zh-v1.5-f16' not downloaded yet. Download now? (~24 MB) [Y/n]: Y

  Downloading...

---------------------------------------------------------------------------------------

  Model 'bge-small-zh-v1.5-f16' not downloaded yet. Download now? (~24 MB) [Y/n]: Y

  OK Model downloaded to /home/uadmin/.cache/openviking/models/bge-small-zh-v1.5-f16.gguf

  Embedding dimension changes from 1024 to 512.
  Existing vector indexes become unusable — data must be re-ingested.
  Continue? [y/N]:

输入y
---------------------------------------------------------------------------------------

  Continue? [y/N]: y

  Change: ollama · qwen3-embedding-cpu:0.6b (1024d)
      →    local · bge-small-zh-v1.5-f16 (512d)

  Save configuration? [Y/n]:

输入Y
---------------------------------------------------------------------------------------

  Save configuration? [Y/n]: Y
  Existing config backed up to /home/uadmin/.openviking/ov.conf.bak.5
  OK Configuration updated

  Validate the setup now? (runs `openviking-server doctor`) [Y/n]:

输入Y
---------------------------------------------------------------------------------------

  Validate the setup now? (runs `openviking-server doctor`) [Y/n]: Y

OpenViking Doctor

  Config:        PASS  /home/uadmin/.openviking/ov.conf
  Python:        PASS  3.11.15 (>= 3.10 required)
  Native Engine: PASS  variant=x86_avx2
  AGFS:          PASS  AGFS SDK 0.1.7
  Embedding:     PASS  local/bge-small-zh-v1.5-f16 (/home/uadmin/.cache/openviking/models/bge-small-zh-v1.5-f16.gguf)
  VLM:           PASS  litellm/ollama/qwen3.6:35b
  Ollama:        PASS  running at localhost:11434
  VikingBot:     PASS  VikingBot aligned with dev OpenViking auth
  Disk:          PASS  947.5 GB free in /home/uadmin/.openviking/data

  All checks passed.

  Start the server now? [y/N]:

输入N,手动启动
---------------------------------------------------------------------------------------

  Start the server now? [y/N]: N

配置文件ov.conf

~/.openviking/ov.conf

  "embedding": {
    "dense": {
      "provider": "local",
      "model": "bge-small-zh-v1.5-f16",
      "dimension": 512
    }
  },

更换嵌入模型后,向量数据需要处理。

如果是少量测试数据,可以清理了。如果想保留数据可以重建向量数据。

四、清理向量数据

停止服务

(Ctrl+C 或)pkill -f openviking-server

备份数据目录

cp -r ~/.openviking/data ~/.openviking/data_backup_volc_embedding

删除目录
rm -rf ~/.openviking/data/*
#mv ~/.openviking/data ~/.openviking/data1

重启服务会生成data目录

openviking-server

五、处理向量数据

启动服务

openviking-server

日志报错

openviking.storage.errors.EmbeddingRebuildRequiredError: Existing collection embedding dimension (1024) does not match current configuration (512). Vectors are incompatible; rebuild is required.

删除向量数据库目录

rm -rf ~/.openviking/data/vectordb

再次启动服务

openviking-server

重建向量数据

看根目录有什么

ov ls viking:///

uadmin@UD26:~$ ov ls viking:///
cmd: ov ls viking:/// -l 256 -n 256
1. dir · 2026-07-27 06:28
   viking://resources
   本目录是 Hermes Agent
   框架的核心文档集合,专注于指导开发者构建具备长期记忆能力和复杂推理能力的智能 Agent...

2. dir · 2026-07-27 06:52
   viking://user
   This directory serves as the central hub for the `user` component within a sophisticated AI
   assistant framework. The primary focus is on managing persistent user identity, ensuring secu...

# 1. 重建全局资源库的向量(手动导入的文档、素材、公共资源)
ov reindex viking://resources/ --mode vectors_only --wait true

# 2. 重建默认用户的所有对话记忆与个人数据的向量
ov reindex viking://user/default/ --mode vectors_only --wait true

uadmin@UD26:~$ ov reindex viking://resources/ --mode vectors_only --wait true
status                completed
uri                   viking://resources
object_type           resource
mode                  vectors_only
scanned_records       12
rebuilt_records       17
deleted_records       0
would_delete_records  0
unsupported_records   0
failed_records        0
duration_ms           6528
warnings              []

uadmin@UD26:~$ ov reindex viking://user/default/ --mode vectors_only --wait true
status                completed
uri                   viking://user/default
object_type           user_namespace
mode                  vectors_only
scanned_records       34
rebuilt_records       36
deleted_records       0
would_delete_records  0
unsupported_records   0
failed_records        0
duration_ms           11923
warnings              []

测试

ov find "测试标记"

uadmin@UD26:~$ ov find "测试标记"
cmd: ov find --uri= -n 10 "测试标记"
9 results
Ranked by relevance · limit 10 final results

1. memory · Level 2 · score 0.565
   viking://user/default/memories/preferences/2026/07/24/凌晨开发_openviking-20260724.md
   测试标记为 openviking-20260724,开发者凌晨仍在开发中。

2. memory · Level 2 · score 0.467
   viking://user/default/memories/experiences/viking_search验证开发环境记忆.md
   ## Situation - 用户要求使用viking_search工具搜索开发环境相关内容,验证新存储记忆的语义检索有效性
   ## Approach - 调用viking_search工具,传入开发环境相关的搜索关键词 -...

3. memory · Level 1 · score 0.459
   viking://user/default/memories/cases/.overview.md
   No abstract available.
...

ov find --help

重新生成语义摘要和重建向量索引

一般重建向量数据即可,不用重建语义摘要。

# 1. 全局资源库:重新生成语义摘要 + 重建向量索引
ov reindex viking://resources/ --mode semantic_and_vectors --wait true

# 2. 默认用户记忆库:重新生成语义摘要 + 重建向量索引
ov reindex viking://user/default/ --mode semantic_and_vectors --wait true

uadmin@PC26:~$ ov reindex viking://resources/ --mode semantic_and_vectors --wait true
status                completed
uri                   viking://resources
object_type           resource
mode                  semantic_and_vectors
scanned_records       12
rebuilt_records       17
deleted_records       0
would_delete_records  0
unsupported_records   0
failed_records        0
duration_ms           48866
warnings              []

# 这句命令更容易报错
uadmin@PC26:~$ ov reindex viking://user/default/ --mode semantic_and_vectors
ov reindex viking://user/default/ --mode semantic_and_vectors

╭─ Request Timeout ────────────────────────────────────────────────────╮
│ OpenViking did not respond before the configured timeout expired.    │
╰──────────────────────────────────────────────────────────────────────╯

Next:
  ov config       Increase the request timeout
  ov config show  Show the active config

openviking-server日志报错

[07/27/26 06:51:58] ERROR    Task was destroyed but it is pending!                                                                                                                            base_events.py:1785
                             task: <Task pending name='Task-1659' coro=<LoggingWorker._worker_loop() done, defined at
                             /home/uadmin/.local/share/uv/tools/openviking/lib/python3.11/site-packages/litellm/litellm_core_utils/logging_worker.py:109> wait_for=<Future cancelled>>

问题分析,可能是Ollama压力稍大,处理不过来

适当调整配置

Ollma环境变量

# 允许同时处理 2 个推理请求,VLM 与嵌入任务并行执行,避免完全串行排队
OLLAMA_NUM_PARALLEL=2
# 允许 2 个模型同时常驻显存,避免 VLM 和嵌入模型来回加载卸载
OLLAMA_MAX_LOADED_MODELS=2
# 开启 FlashAttention 硬件加速,降低显存占用、提升推理速度
OLLAMA_FLASH_ATTENTION=1 

ollama serve(重启Ollama)
启动日志能看见这个几个变量

ov.conf配置

vlm模型从"num_ctx": 16384,改到8192(重启服务)(后来又改回去了)

再次执行

如果openviking-server日志里有报错,ov命令执行成功了,可以接受。

测试ov find

ov find "测试标记" -u viking://user/default

更多推荐