openviking接入
uv tool安装
uv tool install openviking --python 3.12
按照道理来讲,安装完了这个就可以使用Ov和OpenViking Server了。 也可以接入OpenCode,OpenCode要装个插件。但是我现在需要解决embedding模型的问题和VLM模型的问题。
VLM可以用小米的模型。
Embedding模型用Agent Plan带的吧。
Embedding:
- embedding 模型id:
doubao-embedding-vision - baseURL :
https://ark.cn-beijing.volces.com/api/plan/v3
VLM: - Opencode Go的 mimo2.5
在整理这个资料的过程当中,学习到了几个新的知识:
- uv管理的python是只占用同一份存储空间的
- uv tool install 是安装全局,且工具使用自己的python解释器,互相独立
- 之前的markitdown其实也可以用uv tool install安装,而并不要找一个路径uv sync装
好那就开始安装openviking吧。
具体步骤记录:
安装ov
uv tool install openviking --upgrade
Installed 4 executables: openviking, openviking-server, ov, vikingbot
安装完成,可以使用客户端命令 ov(openviking 是其别名)和服务端命令 openviking-server。
配置
openviking-server init
通过它自带的配置了一下。然后呢我发现它火山引擎配的那个URL不对,因为我是Agent的plan。所以我就手动去配置文件里面改了一下。
然后再运行openviking-server doctor报一个socks错(因为我命令行有时候开了代理):
openviking-server doctor
OpenViking Doctor
Config: PASS /Users/rhett/.openviking/ov.conf
Python: PASS 3.14.2 (>= 3.10 required)
Native Engine: PASS variant=native
AGFS: PASS AGFS SDK 0.1.7
13:05:11 - LiteLLM:WARNING: get_model_cost_map.py:264 - LiteLLM: Failed to fetch remote model cost map from https://raw.githubusercontent.com/BerriAI/litellm/main/model_prices_and_context_window.json: Using SOCKS proxy, but the 'socksio' package is not installed. Make sure to install httpx using `pip install httpx[socks]`.. Falling back to local backup.
Embedding: FAIL volcengine/doubao-embedding-vision api_base=https://ark.cn-beijing.volces.com/api/plan/v3 dimension=1024 (invalid embedding config: Using SOCKS proxy, but the 'socksio' package is not installed. Make sure to install httpx using `pip install httpx[socks]`.)
Fix: Fix embedding.dense provider/model/api_base/dimension in ov.conf
VLM: PASS openai/mimo-v2.5
Ollama: PASS not configured
VikingBot: PASS VikingBot aligned with dev OpenViking auth
Disk: PASS 2164.6 GB free in /Users/rhett/.openviking/data
1 check(s) failed. See above for fix suggestions.
但我现在不知道怎么,因为我是用UV tool install 安装的ov,那怎么给这个ov的依赖安装httpx[socks]呢?
查询发现可以用--with来安装。
追加重装了一次:
uv tool install openviking --reinstall --with "httpx[socks]"
这次校验通过了。
at 13:09 ❯ openviking-server doctor
OpenViking Doctor
Config: PASS /Users/rhett/.openviking/ov.conf
Python: PASS 3.14.2 (>= 3.10 required)
Native Engine: PASS variant=native
AGFS: PASS AGFS SDK 0.1.7
Embedding: PASS volcengine/doubao-embedding-vision api_base=https://ark.cn-beijing.volces.com/api/plan/v3 dimension=1024 probe ok (dimension=1024)
VLM: PASS openai/mimo-v2.5
Ollama: PASS not configured
VikingBot: PASS VikingBot aligned with dev OpenViking auth
Disk: PASS 2164.5 GB free in /Users/rhett/.openviking/data
All checks passed.
运行服务端
居然报错:
openviking-server
Traceback (most recent call last):
File "/Users/rhett/.local/bin/openviking-server", line 10, in <module>
sys.exit(main())
~~~~^^
File "/Users/rhett/.local/share/uv/tools/openviking/lib/python3.14/site-packages/openviking_cli/server_bootstrap.py", line 104, in main
_real_main()
~~~~~~~~~~^^
File "/Users/rhett/.local/share/uv/tools/openviking/lib/python3.14/site-packages/openviking/server/bootstrap.py", line 282, in main
app = create_app(config)
File "/Users/rhett/.local/share/uv/tools/openviking/lib/python3.14/site-packages/openviking/server/app.py", line 716, in create_app
from openviking.server.mcp_endpoint import create_mcp_app
File "/Users/rhett/.local/share/uv/tools/openviking/lib/python3.14/site-packages/openviking/server/mcp_endpoint.py", line 27, in <module>
from mcp.server.fastmcp import FastMCP
ModuleNotFoundError: No module named 'mcp.server.fastmcp'
$ uv tool uninstall openviking && uv tool install openviking --python 3.12 --with "httpx[socks]" 2>&1 | tail -15
降级3.12 依然不行,
$ uv tool install openviking --python 3.12 --with "httpx[socks]" --with "mcp<2" --reinstall 2>&1 | tail -6
mcp 报错的原因(和 httpx[socks] 无关):
- openviking 依赖声明 mcp>=1.27.0 无上限,uv 解析时拿了刚发布的 mcp 2.0.0
- mcp 2.0 是破坏性重构,删掉了 mcp.server.fastmcp 模块,openviking 0.4.11 还在用旧 API
修复:重装并 pin mcp<2:
uv tool install openviking --python 3.12 --with "httpx[socks]" --with "mcp<2" --reinstall
两个关键选择:
- Python 3.12(不是 3.14):mcp 1.x 不支持 3.14,3.14 会强迫 uv 用 mcp 2.0
--with "mcp<2":显式锁住 mcp 1.x,这是核心修复
启动成功,可在浏览器打开http://localhost:1933/。
配置OpenCode接入
bash <(curl -fsSL https://ovrelease.tos-cn-beijing.volces.com/memory-plugin-shared/install.sh) --harness opencode
# 输入 http://127.0.0.1:1933;如果启用了认证,再输入 API Key
at 13:31 ❯ bash <(curl -fsSL https://ovrelease.tos-cn-beijing.volces.com/memory-plugin-shared/install.sh) --harness opencode
Language / 语言
( ) English
> (•) 中文
↑/↓ move · 1-9 jump · enter confirm
1. 环境检查
==> OS: Darwin
==> 已选择: opencode
安装源模式
( ) GitHub (默认;支持远程更新)
> (•) 火山引擎 TOS 镜像(无法访问 GitHub 时使用)
↑/↓ 移动 · 数字直选 · 回车确认
2. OpenViking 凭据配置 (/Users/rhett/.openviking/ovcli.conf)
==> 未找到已有配置。
连接到哪个 OpenViking 服务?
( ) 自建 / 本地 [http://127.0.0.1:1933]
( ) 火山引擎 OpenViking 云服务 [api.vikingdb.cn-beijing.volces.com]
> (•) 自定义 URL / 保持当前 [http://127.0.0.1:1933]
↑/↓ 移动 · 数字直选 · 回车确认
?? 服务地址 [http://127.0.0.1:1933]:
?? API key(本地免鉴权模式请直接回车):
==> 已更新: url: — -> http://127.0.0.1:1933
==> 凭据已就绪: /Users/rhett/.openviking/ovcli.conf
==> 之后可重跑本安装脚本重新配置。
==> 安装源模式: archive (渠道: tos)
3. Marketplace 归档
==> 下载归档
==> https://ovrelease.tos-cn-beijing.volces.com/releases/latest/memory-plugin-marketplace.zip
4. OpenCode 插件
==> OpenCode 文件插件已安装: /Users/rhett/.config/opencode/plugins/openviking
5. 安装校验
==> opencode: openviking-memory 看起来已安装
==> opencode: MCP server 已注册
完成
==> 凭据: /Users/rhett/.openviking/ovcli.conf
==> OpenCode: @openviking/opencode-plugin
~/Downloads took 42s
at 13:32 ❯
重启Opencode生效,可以在/status里看到。
后续聊天会自动被hook写入记忆到openviking中。
设置开机自启动server
手动创建~/Library/LaunchAgents/com.openviking.server.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.openviking.server</string>
<key>ProgramArguments</key>
<array>
<string>/Users/rhett/.local/bin/openviking-server</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>WorkingDirectory</key>
<string>/Users/rhett/.openviking</string>
<key>StandardOutPath</key>
<string>/Users/rhett/.openviking/openviking.log</string>
<key>StandardErrorPath</key>
<string>/Users/rhett/.openviking/openviking.err.log</string>
</dict>
</plist>
配置hermes接入
原始状态:
at 13:55 ❯ hermes memory status
Memory status
────────────────────────────────────────
Built-in: always active
Provider: (none — built-in only)
Installed plugins:
• byterover (API key / local)
• hindsight (API key / local)
• holographic (local)
• honcho (API key / local)
• mem0 (API key / local)
• openviking (API key / local)
• retaindb (API key / local)
• supermemory (requires API key)
改成接入openviking:
hermes memory setup
# 选择 openviking,然后输入 endpoint / API Key
hermes memory status
使用体验
随着在Paseo中使用OpenCode对话,或者在terminal中直接跟Hermes发起对话。在对话结束时,它就会把一些记忆自动地归档进去,提取并归档。然后同时session也会完整地保存到库当中,这倒是挺方便。
但是像Identity啊、 Soul啊,这几个文档,它并不是完整的从Hermes当中同步过来,而是自动根据所需提取一些关键信息。
目前对我来说好像能够体会到的就是Hermes跟Open Code的记忆可以互相打通了,那之前是各存各的。那当然了,其实之前我如果一定要互相调取的话,也能调得到,这其实都是存在本地磁盘上嘛,只是路径不一样。但是现在有一个统一管理呢,也还好。而且这个统一管理之后,它会把每一次的对话都做embedding,相当于一个全自动的复盘。比之前只存原始对话记录要更科学一些。
目前我感受到最大的好处就是我每天零散的布置给Open Code的各种任务,可以晚上一句话让它复盘总结。