本节摘要:漫游倒数第二站,动作
du全盘盘点 +serve上生产。先验收:benchmark/ 目录备好八大基准——LoCoMo 长对话记忆、tau2 多轮任务、skillsbench、RAG、longmemeval、retrieval、vectordb_perf、cuvs——每个都是可执行脚本而非纸面数字;重点复现 LoCoMo:配置模型与root_api_key、导入数据、跑评测、LLM 裁判打分、统计核对官方的 24-57% → 80-83%。再看 observability 与 grafana 面板如何把检索轨迹变成曲线。最后上线:docker-compose(官方镜像 + Caddy HTTPS)、Helm chart 进 K8s、docs/zh/configuration 配置手册与多租户。
内容来源:原项目源码 benchmark/(locomo/、tau2/、cuvs/ 等)、README_CN.md 评测段、openviking/metrics/、openviking/observability/、examples/grafana/、docker-compose.yml、Caddyfile、deploy/helm/、docs/zh/configuration/
⚠️ 注意:LoCoMo 评测依赖多租户模式:服务端必须配置
server.root_api_key,每份样本用 sample_id(如conv-26)当 user_id 独立存储,样本之间互不污染;数据导入用的 account 与查询用的 account 必须一致(默认default)。复现对不上数字时,先查这两处,再查模型配置。
ls benchmark/ 的目录名就是成绩单的目录:
locomo/ tau2/ skillsbench/ RAG/ longmemeval/ retrieval/ vectordb_perf/ cuvs/ custom/
考察面各有分工: locomo——长对话用户记忆(第 5 章的主角,超长多轮对话后回答历史问题); tau2——多轮智能体任务(Retail/Airline 场景,考经验记忆); skillsbench——技能库场景; RAG 与 longmemeval——知识库问答与长记忆评测; retrieval——检索质量本体; vectordb_perf——向量引擎性能(第 7 章 C++ 引擎的主场); cuvs——GPU 后端基准(PRELIMINARY_RESULTS.md 记录初步数据);custom 留给自定义。README_CN 把态度写在明处:「完整结果和实验设置见评测报告,复现脚本在 ./benchmark」——官方数字全部可由仓库脚本再生,这是开源评测的诚意标准,也是本节存在的理由。
顺带留意基准目录的「对照组织法」:locomo/ 下不是一份脚本,而是按接入对象各开一个子目录——vikingbot、openclaw、mem0、supermemory、claudecode、hermes。要复现「Claude Code 57.21% → 80.32%」就进 claudecode/,要与 mem0/Supermemory 这类竞品记忆系统横向对比,同目录就有现成脚手架——评测本身也是生态位之争的公开擂台。
locomo/ 目录按接入对象分子目录(vikingbot、openclaw、mem0、supermemory、claudecode、hermes),每个目录一套同构脚本:
benchmark/locomo/vikingbot/ ├── run_eval.py # 运行 QA 评估 ├── judge.py # LLM 裁判打分 ├── import_to_ov.py # 导入数据到 OpenViking ├── import_and_eval_one.sh # 单题/批量测试脚本 ├── stat_judge_result.py # 统计评分结果 ├── run_full_eval.sh # 一键运行完整评测流程 ├── data/ # 测试数据目录 └── result/ # 评测结果目录
README 的前置条件很坦白:
{ "server": { "root_api_key": "your-key" } }
五步流程:第一步起服务、配模型(嵌入/VLM/裁判 LLM),开启多租户;第二步导入——每份 LoCoMo 样本是一次超长对话,import_to_ov.py 把它灌进 OpenViking,sample_id 即 user_id,评测期每题的检索互不干扰;第三步评测——逐题检索+作答(run_eval.py,或 import_and_eval_one.sh 单题调试);第四步裁判——judge.py 用 LLM 按标准答案打分(LLM-as-judge,而非字符串匹配,容忍表述差异);第五步统计——stat_judge_result.py 汇总准确率与 token 用量;赶时间的直接 run_full_eval.sh 一键串联全程。vikingbot 目录的 README 还提醒了两处坑:vikingbot 评测须配置 OpenViking 的 root 级 API KEY(默认取 server.root_api_key,也可在 bot.ov_server 单独配);查询侧 account 默认 default,若改必须与导入侧一致。对齐官方数字(README_CN 0.3.22 版评测):
| 接入对象 | 原生记忆 | + OpenViking |
|---|---|---|
| OpenClaw | 24.20% | 82.08% |
| Hermes | 33.38% | 82.86% |
| Claude Code | 57.21% | 80.32% |
同时输入 token 减少 34.3%-91.0%,查询时延降低 58.45%-66.10%。为什么三家原生分数差得远(24 到 57),接入后却挤在 80-83% 的窄带里?因为接入后决定成绩的不再是各家 Agent 的记忆实现,而是同一套外置系统(第 4 章检索+第 5 章沉淀+第 3 章分层)——上限由基准难度与检索质量共同封顶,这窄带本身就是「提升来自机制」的证据。
复现要点归纳四条:多租户必须开(root_api_key);account 全程一致;裁判模型与官方设置对齐(裁判偏严偏松直接拉分);bad case 别扔——目录里备着 locomo_bad_case_questions.csv,对着第 4 章 03 节的检索轨迹逐题查「是没检索到还是没排上来」,复现就升格成了调参实验。
tau2 同向验证经验记忆:Retail 70.94%→77.81%、Airline 54.38%→66.25%——用户记忆与经验记忆是两条独立的分数线,别混着比。tau2 考的是多轮任务里的工具调用与政策遵循(退改签、订单查询这类客服场景),OpenViking 的经验记忆(experiences 目录与 traj-exp 训练链路,第 5 章 03 节)在其中的角色是把「上一次怎么做对的」变成可检索的策略;而 skillsbench 考技能库的命中率,RAG/longmemeval 考知识库问答与超长记忆,retrieval 考检索本体质量,vectordb_perf 与 cuvs 则是第 7 章引擎的裸性能考场(索引/查询/并发三组脚本,PRELIMINARY_RESULTS.md 有初步数据)。八合一面面俱到:用户、经验、技能、知识四类记忆,准确性、性能、并发三个维度,都有独立靶场。
第 4 章 03 节讲过检索轨迹的可观测数据面(thinking_trace、Entering URI 日志、OpenTelemetry);指标侧的出口是 openviking/metrics/:collectors(采集)、datasources(数据源)、exporters(导出)、account_dimension(按账户维度切分),openviking/observability/ 则提供事件、上下文与 usage_audit 用量审计。Prometheus 拉走指标后,grafana 出图——examples/grafana/ 备好现成的 docker-compose、prometheus.yml 与三份面板 JSON(demo 主面板、feedback baseline、token demo):

面板上看什么?检索请求量与延迟分布(第 4 章递归轮次的真耗时)、命中率与层级分布(L0 试探/L1 确认/L2 精读各占多少——第 3 章 token 经济学的运行时证据)、队列深度与语义 DAG 进度(第 6 章入库管线的 backlog)、token 用量按账户拆账。基准告诉你「好不好」,面板告诉你「为什么」——LoCoMo 复现出差距时的第一现场就在这里。
起步姿势也现成:examples/grafana/ 下的 docker-compose.yml 拉起 grafana+prometheus 两个容器,prometheus.yml 指向 OpenViking 的 metrics 端点,面板 JSON 导入即用;grafana/ 子目录还带 provisioning 自动装载。本地演练用 docker-compose.localhost.yml 与 prometheus.localhost.yml,免去公网配置。三份面板各有侧重:demo 主面板看全链路,feedback baseline 看用户反馈基线,token demo 专门盯 token 经济学——把第 3 章的「L0 一百 token 试探」从设计变成可审计的账目。
观测三件套的分工再理一遍:应用内 tracing(第 4 章 thinking_trace)负责单次检索的逐步复盘,日志(Entering URI)负责流水审计,Prometheus+grafana 负责聚合趋势——微观可复盘、宏观可报警,缺一角都不是生产级观测。
与基准的配合关系也别错过:跑 LoCoMo 前先看面板确认队列排空(入库未完成就评测是新手第一大坑),跑完再对比 token 曲线验证「省」的半边——基准与面板一个出结论、一个出证据,合起来才是完整的复现报告。
最短路径是官方 compose。docker-compose.yml 的骨架一目了然:
services: openviking: image: ghcr.io/volcengine/openviking:latest ports: - "${OPENVIKING_SERVER_PORT:-1933}:${OPENVIKING_SERVER_PORT:-1933}" volumes: - ~/.openviking:/app/.openviking # 配置与数据全在这一个目录 healthcheck: test: ["CMD", "openviking-entrypoint", "--healthcheck"] interval: 30s timeout: 5s retries: 3 start_period: 30s restart: unless-stopped caddy: image: caddy:2 ports: - "1934:1934" # 反向代理入口
注:1934 端口是为存量部署保留的反代入口,新部署也可直连 openviking:1933——compose 注释把这条演进史写在了配置里。
值得圈的三处:数据面收敛——~/.openviking 一个宿主目录承载配置与全部存储,备份/rsync 即迁移;healthcheck 走 entrypoint——容器自检复用与 doctor 同源的检查,编排器据此重启;Caddy 负责 HTTPS——公网部署时在 .env 里设 OPENVIKING_PUBLIC_BASE_URL=https://ov.your-domain.com 与 OV_ACME_EMAIL,Caddyfile 加域名块,80/443 端口打开,ACME 自动签证书。compose 文件顶部的注释把三种 .env 写法都给了示例:本地零配置直接 docker compose up -d、自定义端口改 OPENVIKING_SERVER_PORT、公网 HTTPS 配 BASE_URL+ACME。公网 HTTPS 不是锦上添花:上一章的 MCP OAuth、公网 Agent 接入都要求 TLS。
# .env 示例:公网 HTTPS OPENVIKING_PUBLIC_BASE_URL=https://ov.your-domain.com OV_ACME_EMAIL=admin@your-domain.com
K8s 用户走 deploy/helm/openviking chart——镜像、配置、持久卷、健康检查封装成 values,随版本升级;examples/k8s-helm 里另有带说明的部署示例。配置手册在 docs/zh/configuration/(01-server.md 那张 vectordb.backend 表的老家),模型、检索、嵌入、bot 的每一项都在册。
多租户是部署侧最后一个要点,值得单独立节。开 server.root_api_key 后,account/user 两级身份隔离贯穿整个系统:
search_in_tenant 按租户过滤,account A 永远搜不到 account B 的向量;viking://user/<user>/ 空间天然按用户划分;examples/multi_tenant 有现成示例代码。团队部署的典型拓扑:单实例 + local 向量后端起步,数据量上来后 vectordb.backend 一行切到 volcengine——第 7 章 03 节的承诺在部署侧兑现;再往后,把 MCP endpoint 开给每个成员的 coding agent,把 Web Studio 开给不写代码的同事,一台服务器就成了整个团队的共享记忆体。
💡 漫游要点:基准复现是全书唯一「动手验证」的章节,别只看数字:LoCoMo 的五步流程把第 4-5 章(检索+记忆)、第 6 章(导入管线)、第 8 章(插件接入)串成一次端到端拉练;grafana 面板把「分层加载省 token」「递归检索带语境」从论断变成曲线;部署侧则验收了第 7 章的可插拔承诺(数据一个目录、后端一行切换)。跑通本节,你就不再是读者,而是运维者。
下一节:
02 全书回顾:漫游上下文数据库——漫游最后一站:沿九站串讲全书,提炼 OpenViking 核心哲学四点,与 Hermes、semantica 的记忆方案做三方对照,并给出合上书之后的下一步。