Releases: volcengine/OpenViking
v0.4.6
Release date / 发布日期: 2026-06-29
Compare range / 对比范围: v0.4.5..v0.4.6 (33 first-parent commits)
Full Changelog / 完整变更记录: v0.4.5...v0.4.6
中文
版本概览
v0.4.6 是 0.4 系列的一次功能型发布:新增 VikingFS 多版本管理、整站 sitemap/RSS/Atom 导入、VikingDB BM25 grep、Web Studio 使用指标视图,并重新启用 viking://agent/skills 作为账号级共享 skill 目录。
本版本也收窄了 legacy agent_id 的兼容边界。对于还停留在 0.3.x、并且仍有旧 viking://agent/<agent_id> 或 viking://session/... 数据的部署,不建议把 0.4.6 作为直接迁移落点。先升到 0.4.5 完成迁移和 cleanup,再升 0.4.6。
0.3.x 升级与迁移说明
全新部署、已经在 0.4.x 上运行的部署,或已经清理完 legacy agent/session 数据的部署,可以直接升级到 0.4.6。
如果从 0.3.x 升级,且数据目录里仍有 legacy agent/session 数据,推荐路径是:
# 1. 在 0.3.x 侧先备份,推荐使用最后一个 0.3.x 版本
pip install openviking==0.3.24 --upgrade --force-reinstall
ov backup ./backups/openviking-before-0.4.ovpack
# 2. 先升级到 0.4.5,完成迁移
pip install openviking==0.4.5 --upgrade --force-reinstall
openviking-server --config ov.conf
ov --sudo admin migrate --output json
ov --sudo task status <task_id>
# 3. 验证新路径后,清理旧 namespace
ov --sudo admin migrate --cleanup --output json
ov --sudo task status <cleanup_task_id>
# 4. 再升级到 0.4.6
pip install openviking==0.4.6 --upgrade --force-reinstall原因:0.4.6 重新使用 viking://agent/skills 作为共享 skill 目录,并在迁移/cleanup 中保留 skills、endpoints、tools、payments 等新的 agent 保留子目录。0.4.5 的 cleanup 会删除整个旧 /agent 根,更适合作为 0.3.x legacy 数据迁移完成后的清理版本。
同时,0.4.6 不再把 search/find 请求体里的 agent_id 或 agent_uri 当作 peer selector。升级时请同步升级 server、CLI、SDK;需要 peer 视图时使用 actor_peer_id、X-OpenViking-Actor-Peer,或显式 target_uri。
主要更新
- VikingFS 多版本管理:新增 Git-backed snapshot 能力,支持
commit、log、show、restore。HTTP API、Python SDK、Rust CLI 均可使用;Git 对象可存本地.ovgit,也可使用 S3/TOS 兼容后端。 - 整站导入:
add_resource支持 sitemap、sitemap index、RSS 2.0 和 Atom。sitemap/feed URL 会生成一棵资源树;对 feed 设置watch_interval可以持续刷新整站内容。 - 共享 Agent Skills:
viking://agent/skills重新成为账号级共享 skill 根;默认仍安装到当前用户的viking://user/<user_id>/skills,可通过-p/--uri选择共享目录。 - VikingDB BM25 Grep:grep 引擎可在
auto模式下使用 VikingDB BM25 做关键词召回,并保留fs强制本地搜索模式。 - Web Studio 指标开放给用户:首页补充 token trend、context commits、heatmap 等用户可见指标,并拆分 heavy chunks 改善前端加载。
新功能用法
多版本管理最小流程:
ov snapshot commit -m "initial import" -o json
ov snapshot log --limit 10 -o json
ov snapshot show <commit_oid> --path viking://resources/project/guide.md --out-file ./guide.md
ov snapshot restore <commit_oid> viking://resources/project --dry-run -o json
ov snapshot restore <commit_oid> viking://resources/project -m "restore project" -o json整站导入:
# 直接导入 sitemap / RSS / Atom
ov add-resource https://example.com/sitemap.xml --watch-interval 60 --wait
# 对普通域名强制整站发现
ov add-resource https://example.com --args site:true --wait共享 skill:
# 安装到账号级共享 skill 目录
ov skills add ./skills/search-web -p viking://agent/skills --wait
# 只列出共享 skill
ov skills list --uri viking://agent/skills
# 默认会合并用户私有 skill 与共享 agent skill
ov skills listGrep 引擎配置:
{
"grep": {
"engine": "auto",
"switch_to_remote_threshold": 10000
}
}体验与兼容性改进
add_resource增强了parent/create_parent语义,CLI 增加--parent-auto-create。- SDK 和 CLI 会避免向旧服务端发送不必要的新字段,提高跨版本请求兼容性。
- 服务端会把
0.0.0.0、::这类监听地址映射成 loopback client URL,避免派生出的本地客户端 URL 不可连接。 - Session memory diff 会过滤未变化的更新,空 message range 会回退到当前日期。
- Bot 增加 temperature 配置,并修正 search tool 结果和 iteration-limit 回答。
修复
- 修复 VikingDB grep fallback、exclude URI 过滤、text 字段大小限制、旧 collection schema 兼容、embedding metadata schema version 等问题。
- 修复 content-write 后语义刷新锚点和递归刷新,减少写入后索引不一致。
- 禁止删除受保护的 VikingFS 根目录。
.jsonl现在按文本文件处理,上传编码归一化会覆盖该格式。- 修复 RAGFS backup 默认工作区导致的递归同步循环,并重命名相关配置键。
- OpenCode plugin 支持 tokenless npm publish。
文档、测试与安全
- 新增 snapshot API / guide / examples,以及 Git version control 设计文档。
- 新增 VikingDB BM25 grep 效果与性能 benchmark。
- 补充 reindex mode 文档、0.4.3 到 0.4.5 changelog、community plugin 文档更新。
- 更新
litellm依赖范围。
English
Overview
v0.4.6 is a feature release for the 0.4 line. It adds VikingFS snapshot versioning, whole-site sitemap/RSS/Atom ingestion, VikingDB BM25 grep, user-visible Web Studio metrics, and restores viking://agent/skills as an account-shared skill root.
This release also narrows legacy agent_id compatibility. If you are still on 0.3.x and still have legacy viking://agent/<agent_id> or viking://session/... data, do not use 0.4.6 as the direct migration landing version. Upgrade to 0.4.5 first, migrate and clean up, then upgrade to 0.4.6.
0.3.x Upgrade And Migration
Fresh installs, existing 0.4.x deployments, and deployments that have already cleaned up legacy agent/session data can upgrade directly to 0.4.6.
For 0.3.x deployments with legacy agent/session data, use this path:
# 1. Back up on a 0.3.x-compatible version
pip install openviking==0.3.24 --upgrade --force-reinstall
ov backup ./backups/openviking-before-0.4.ovpack
# 2. Upgrade to 0.4.5 first and run migration
pip install openviking==0.4.5 --upgrade --force-reinstall
openviking-server --config ov.conf
ov --sudo admin migrate --output json
ov --sudo task status <task_id>
# 3. Verify new paths, then clean legacy namespaces
ov --sudo admin migrate --cleanup --output json
ov --sudo task status <cleanup_task_id>
# 4. Upgrade to 0.4.6
pip install openviking==0.4.6 --upgrade --force-reinstallReason: 0.4.6 reuses viking://agent/skills as the shared skill directory, and migration/cleanup now preserves new reserved agent subdirectories such as skills, endpoints, tools, and payments. 0.4.5 cleanup removes the whole legacy /agent root, so it is the safer cleanup stop for 0.3.x data.
Also note that 0.4.6 no longer treats request-body agent_id or agent_uri on search/find as a peer selector. Upgrade server, CLI, and SDK together; use actor_peer_id, X-OpenViking-Actor-Peer, or explicit target_uri when you need a peer-scoped view.
Highlights
- VikingFS snapshot versioning: new Git-backed
commit,log,show, andrestoreprimitives across HTTP API, Python SDK, and Rust CLI. Git objects can live in local.ovgitstorage or an S3/TOS-compatible backend. - Whole-site ingestion:
add_resourcecan ingest sitemaps, sitemap indexes, RSS 2.0, and Atom feeds. A sitemap/feed URL becomes one resource tree, andwatch_intervalkeeps the site refreshed. - Shared Agent Skills:
viking://agent/skillsis available again as an account-shared skill root. User-privateviking://user/<user_id>/skillsremains the default. - VikingDB BM25 Grep: grep can use VikingDB BM25 keyword recall in
automode while keepingfsas the forced local-search option. - Web Studio metrics for users: the home view adds token trend, context commits, and heatmap metrics, with heavy chunks split for faster loading.
New Feature Usage
Snapshot flow:
ov snapshot commit -m "initial import" -o json
ov snapshot log --limit 10 -o json
ov snapshot show <commit_oid> --path viking://resources/project/guide.md --out-file ./guide.md
ov snapshot restore <commit_oid> viking://resources/project --dry-run -o json
ov snapshot restore <commit_oid> viking://resources/project -m "restore project" -o jsonWhole-site ingestion:
ov add-resource https://example.com/sitemap.xml --watch-interval 60 --wait
ov add-resource https://example.com --args site:true --waitShared skills:
ov skills add ./skills/search-web -p viking://agent/skills --wait
ov skills list --uri viking://agent/skills
ov skills listGrep config:
{
"grep": {
"engine": "auto",
"switch_to_remote_threshold": 10000
}
}Improvements
add_resourcehas clearerparent/create_parentbehavior, and the CLI adds--parent-auto-create.- SDK and CLI clients omit unnecessary newer fields when talking to older servers.
- Server bind hosts such as
0.0.0.0and::are mapped to loopback addresses for generated local client URLs. - Session memory diff updates skip unchanged output, and empty message ranges fall back to the current date.
- Bot flows gain temperature configuration and fixes for search-tool results and iteration-limit answers.
Fixes
- Fixed VikingDB grep fallback, exclude-URI filtering, text field size limits, legacy collection schema compatibility, and embedding metadata schema-version handling.
- Fixed content-write semantic refresh anchoring and recursive refresh behavior.
- Blocked deletion of protected VikingFS roots.
.jsonlis now recognized as text for upload encoding normalization.- Prevented recursive backup sync loops by moving the default backup workspace and renaming the related config key.
- OpenCode plugin publishing now supports tokenless npm publish.
Docs, Tests, And Security
- Added snapshot API / guide / examples and the Git version-control design doc.
- Added VikingDB BM25 grep effectiveness and performance benchmarks.
- Documented reindex modes and added v0.4.3 through v0.4.5 changelog entries.
- Updated the
litellmdependency range.
v0.4.5
This hotfix release prioritizes role handling and trusted-auth reliability, while also rolling up the current main fixes since v0.4.4.
Highlights
- Fixed auth role serialization so request identity roles are consistently serialized as string roles across storage, resource, session, queue, watch, summarizer, and semantic-processing paths. (#2728)
- Improved user-management setup in the CLI config wizard and stabilized Web Studio account selection. (#2721, #2722)
- Simplified VikingBot auth handling and added trusted
auth_modesupport for OpenViking-backed bot flows. (#2769) - Made failed session archives skippable and tuned OpenClaw auto-commit behavior. (#2775)
- Added session-aware recall for Codex/OpenCode integrations and consolidated OpenCode plugin documentation around the single maintained plugin. (#2729, #2540, #2801)
- Hardened storage/session behavior, including queuefs semantic processing for non-directory memory URIs, glob URI scheme preservation, event-summary fallback, memory abstract truncation, and path-lock progress logs. (#2735, #2804, #2806, #2774, #2768)
- Improved CLI and SDK surfaces: clearer CLI validation errors, safer request field emission for older servers, Go SDK
set_tags, and the standalone Python HTTP SDK extraction. (#2762, #2799, #2782, #2736) - Added OpenWebUI and Pi coding-agent integration examples. (#2640, #2314)
Upgrade Notes
- Deploy this release for the role serialization fix if you run authenticated or trusted-mode multi-tenant deployments.
- Python package version is derived from the
v0.4.5tag. - Docker images are published with
v0.4.5andlatesttags by the release workflow.
New Contributors
- @BenSharir made their first contribution in #2754
- @blackdeathdrow made their first contribution in #2745
- @Kashkovsky made their first contribution in #2735
- @hammerhoundai made their first contribution in #2314
Full Changelog: v0.4.4...v0.4.5
python-sdk/v0.1.2
v0.1.2
v0.4.4
What's Changed
- refactor(auth): introduce plugin-based authentication architecture by @MaojiaSheng in #2709
- fix(sdk/go): expose search date and level filters by @r266-tech in #2703
- fix(ragfs): fix root directory acquire encryption account_id exceptio… by @baojun-zhang in #2717
Full Changelog: v0.4.3...v0.4.4
v0.4.3
What's Changed
- fix(skill): Opt session skill yaml, add name rule by @yeshion23333 in #2677
- feat(ragfs): add CachedFileSystem and Redis/Mooncake/Yuanrong cache providers by @tuofang in #2520
- feat(sdk): 支持 Go HTTP SDK by @qin-ctx in #2680
- feat(code-tools): add code navigation endpoints for opencode-plugin by @wlff123 in #2671
- fix(session): Fix session id encode by @yeshion23333 in #2682
- feat(docs): add OpenViking-powered search by @ehz0ah in #2664
- wechat QR code update by @Lumos088 in #2688
- fix(parse): tighten Feishu URL host matching by @qin-ctx in #2689
- fix(task): unify task tracker encryption binding by @qin-ctx in #2690
- fix(ragfs): skip zero-byte files during legacy shape probe by @baojun-zhang in #2691
- deps(security): bump python-multipart floor to >=0.0.31 (GHSA-5rvq-cxj2-64vf, HIGH) by @r266-tech in #2651
- docs(hermes): update OpenViking peer identity wording by @r266-tech in #2686
- fix(vectordb): avoid AVX512 auto-selection on Windows by @r266-tech in #2685
- feat(ragfs): optimize S3 head-object error message return and parallelize legacy shape probe by @baojun-zhang in #2692
- fix(parse): use safe_extract_zip for UnderstandingAPI zip download to close Zip Slip by @r266-tech in #2634
- deps(security): bump cryptography floor to >=48.0.1 (GHSA-537c-gmf6-5ccf, HIGH) by @r266-tech in #2635
- docs(sdk): document Go filesystem examples by @qin-ctx in #2687
- fix(ragfs): ignore path locks during shape probe by @qin-ctx in #2695
- fix by @qin-ctx in #2696
- fix(tests): 修复单元测试 by @MaojiaSheng in #2708
- [codex] fix memory plugin recall and auth handling by @heaoxiang-ai in #2676
- fix(memory): event_overview_refresh_bug by @fujiajie666 in #2678
- chore(openclaw-plugin): release 2026.6.18 (OpenViking compat 0.4.x) by @LinQiang391 in #2705
- Set tags by @zhoujh01 in #2706
- feat(ragfs): add plaintext fallback for encrypted-read migration path by @baojun-zhang in #2712
- fix(docs): localize OpenViking search by @ehz0ah in #2711
New Contributors
Full Changelog: v0.4.2...v0.4.3
v0.4.2
What's Changed
- test(openclaw): cover install contracts and runtime docs by @Mijamind719 in #2647
- Feature/wiki link by @fujiajie666 in #2558
- feat(openclaw): add TOS release installer flow by @Mijamind719 in #2653
- refactor(openclaw): add setup and routing modules by @Mijamind719 in #2654
- fix(ragfs): ignore legacy task records during shape probe by @qin-ctx in #2675
Full Changelog: v0.4.1...v0.4.2
v0.4.1
中文版本 / Chinese Version
OpenViking v0.4.1 发布说明:Context 进入 User / Peer 时代
完整对比:v0.3.24...v0.4.1
升级前先看三件事
上面的图是 v0.4.1 的变更总览:这次发布围绕 User / Peer 身份模型、legacy 迁移、多模态入库、OpenClaw Recall Trace、Skills、模型 failover 和存储可靠性展开。它不是一次普通的小版本迭代,而是 0.3.x 到 0.4 系列的数据模型升级。
Breaking Changes
v0.4.1 保留了 legacy 读取兼容,但新写入和新业务代码应切到新的 user namespace:
viking://agent/...仍可读旧数据,但不再是新写入目标。- 新的 memory / resource / session / skill 数据应进入
viking://user/...。 agent_id只作为 legacy 过渡配置使用,会映射到请求级actor_peer_id。- 不要同时配置
agent_id和actor_peer_id,服务端会拒绝这种混用。 - legacy
agent_idclient 下不要再显式传 messagepeer_id。 - 旧的
role_id记忆隔离不再支持,升级后应使用 User / Peer 模型表达隔离边界。
迁移文档
迁移指南:https://github.com/volcengine/OpenViking/blob/v0.4.1/docs/zh/migration/01-user-peer-model.md
推荐的升级顺序是:先备份 0.3.x 数据,升级 server / CLI / SDK 到 0.4.1,验证 viking://agent 和 viking://session 仍可读,再执行 ov --sudo admin migrate --output json。确认迁移结果无误、没有回滚需求后,再执行 cleanup。
OpenViking v0.4.1 是从 0.3.x 走向 0.4 系列的关键版本。它不是简单增加几个 API,而是把 OpenViking 的核心定位进一步收敛到 Agent Context Core:身份边界、长期记忆、资源入库、技能、检索、插件和存储迁移都围绕“可长期运行、可迁移、可观测”的上下文基础设施展开。
这次发布可以概括为七条主线:
- User / Peer 成为新的上下文身份模型,
user负责数据归属,peer表达交互对象。 - 0.3.x legacy agent/session 数据可以兼容读取、后台迁移、验证和 cleanup。
- 会话、记忆和资源入库支持更多多模态场景,包括图片消息、图片资源、Feishu 用户 token 和外部 Understanding API。
- 检索支持
context_type,OpenClaw 侧补齐 Recall Trace、runtime query config 和 feature gates。 - Skills 成为 user-scoped 上下文资产,CLI / API / 插件链路继续产品化。
- VLM 和 Embedding 支持 ordered credentials、failover / failback 和更严格的错误分类。
- RAGFS multi-write、S3 content-type autodetect、向量迁移和后台 task 让升级与生产运行更可靠。
User / Peer:把数据 owner 和交互对象拆开
v0.4.1 最重要的变化,是新的 User / Peer 模型。
User = OpenViking 服务里的数据 owner
Peer = 某个 user 下的交互对象
Session = user 下的会话状态
Skill = user 下的可执行能力
在 0.3.x 心智里,很多场景会把外部说话人、agent、工具实例都塞进 agent_id。这在一人一助手时够用,但客服 Bot、群聊机器人、IDE 插件、OpenClaw / Codex 这类平台型接入会遇到一个问题:到底谁拥有数据,谁只是当前正在交互的对象?
v0.4.1 把这两个问题分开。比如客服场景可以建模为:
account = acme
user = support-bot
peer = customer-alice
peer = customer-bob
support-bot 是 OpenViking 的数据 owner,Alice 和 Bob 是它服务的对象。这样平台只需要管理 support-bot 的 key,每个客户的长期上下文用稳定的 peer_id 隔离。
如果需要完整理解这个模型的背景和接入方式,可以看这篇博客:
https://blog.openviking.ai/post/openviking-user-peer-model/
最常见的新接入方式是:
import openviking as ov
client = ov.SyncHTTPClient(
url="http://localhost:1933",
api_key="<support-bot-user-key>",
)
client.initialize()
session = client.create_session(
memory_policy={
"self": {"enabled": True},
"peer": {"enabled": True},
}
)
client.add_message(
session["session_id"],
role="user",
content="我的发票抬头需要开成火山引擎。",
peer_id="customer-alice",
)
client.commit_session(session["session_id"])如果要从某个 peer 的视角检索当前 user 下的数据,可以使用 actor_peer_id:
alice_view = ov.SyncHTTPClient(
url="http://localhost:1933",
api_key="<support-bot-user-key>",
actor_peer_id="customer-alice",
)
alice_view.initialize()
results = alice_view.find("发票偏好")actor_peer_id 不会改变认证身份,也不会切换 account / user。它只是在当前 user 的数据空间里过滤 peer 视图。
从 0.3.x 平滑迁移到 0.4.1
v0.4.1 没有把旧 agent/session 路径直接切断。升级后可以先验证兼容读取,再执行迁移:
pip install openviking==0.4.1 --upgrade --force-reinstall
openviking-server --config ov.conf
ov ls viking://agent
ov ls viking://session
ov --sudo admin migrate --output json
ov --sudo task status <task_id>迁移会把旧数据复制到新模型下:
| 旧数据 | 新位置 |
|---|---|
viking://agent/<agent_id>/memories/... |
viking://user/<user_id>/peers/<agent_id>/memories/... |
viking://agent/<agent_id>/resources/... |
viking://user/<user_id>/peers/<agent_id>/resources/... |
viking://agent/<agent_id>/skills/<skill>/... |
viking://user/<user_id>/skills/<skill>/... |
viking://session/<session_id>/... |
viking://user/<user_id>/sessions/<session_id>/... |
迁移会处理已有向量索引:对成功复制的 memory / resource / skill 文件或目录,OpenViking 会读取旧记录里的向量 payload,重写 URI 和 owner 字段后写入新记录。它不会要求重新 embedding 全部历史数据。没有向量 payload 的旧标量记录会跳过并计数。
确认迁移结果无误后,可以执行 cleanup:
ov --sudo admin migrate --cleanup --output json
ov --sudo task status <cleanup_task_id>兼容性上需要注意:
viking://agent/...仍可读旧数据,但不再是新写入目标。viking://session/...仍可作为当前 user session 的读 alias。- legacy
agent_id模式下,find/search会同时查新 peer 数据和未迁移的旧 agent 数据。 - 新业务代码应迁移到
viking://user/...、messagepeer_id和 request/clientactor_peer_id。 - 不要同时配置
agent_id和actor_peer_id。
多模态资源和会话记忆
v0.4.1 继续扩展多模态入库能力。资源解析新增 ParserRouter,可以按扩展名在内置 ParserRegistry 和第三方 Understanding API 之间路由:
{
"parser_api": {
"enable": true,
"extensions": ["pdf", "docx", "pptx", "xlsx", "mp4"],
"host": "https://example.com",
"api_key": "..."
}
}解析流程会把本地文件或 URL 提交给外部解析服务,轮询结果,下载输出,再物化回 VikingFS 临时目录,继续进入 TreeBuilder 和 SemanticQueue。
资源侧还补齐了几个实际生产里很关键的能力:
- Markdown 图片引用会被改写为
viking://URI。 - PDF / DOC 中抽出的图片可以保存到 VikingFS。
- 图片向量化策略支持 summary-only、image-only、image-and-summary。
- Feishu / Lark 导入支持用户 access token;watch 场景可以提供 refresh token 并保存在私有 task state 中。
ov add-resource https://example.feishu.cn/docx/doc_token \
--to viking://resources/feishu/doc \
--watch-interval 1440 \
--args feishu_access_token:u-... \
--args feishu_refresh_token:r-...会话侧新增图片消息记忆抽取。OpenAI-style image_url part 会先通过 VLM 转成稳定描述,再进入长期记忆抽取流程。截图、白板、票据、产品图里的信息可以成为记忆候选,而不是只留下一个没有语义的图片 URL。
检索、OpenClaw 和 Recall Trace
检索 API 新增 context_type,可以明确限定搜索 memory、resource 或 skill:
import openviking as ov
from openviking.retrieve import ContextType
client = ov.SyncHTTPClient(url="http://localhost:1933", api_key="your-key")
client.initialize()
results = client.find(
"how should this agent import a Feishu doc with user token?",
context_type=[ContextType.SKILL, ContextType.RESOURCE],
limit=10,
)OpenClaw 插件这轮补了多项上下文运行时能力:
- Recall Trace core、runtime 和 HTTP routes,用于记录召回查询、搜索目标、跳过原因、候选结果和注入结果。
- recall target types 配置,让插件能控制召回 memory / resource / skill 的组合。
- runtime query config,让单次运行可以调整召回行为。
- feature gates RPC 和 agent-visible tools gate,让插件能力暴露更可控。
- 默认 peer role 修正为 assistant,并接入 actor peer scope。
这些改动让 OpenClaw 从“能自动召回上下文”进一步走向“召回行为可解释、可调试、可按场景控制”。
Skills 和插件生态
Skills 在 v0.4.1 里成为 user-scoped 的一等上下文资产。它们存储在:
viking://user/{user_id}/skills/
viking://user/skills 也可以作为当前用户短写使用。CLI / API 支持添加、列出、查找、展示、更新、删除和校验 skill,也支持从 Git source 安装或更新。
ov skills add https://github.com/acme/skills/tree/main/skills/search-web --wait
ov skills list
ov skills update search-webClaude Code / Codex memory plugins 也继续增强:支持 TOS release upload、GitHub-free install path、本地 pending queue,以及 recall compressor profile 缓存和 runtime failure 缓存。短生命周期 coding 工具可以把 OpenViking 当成长期上下文后端,同时减少重复探测和失败重试带来的延迟。
模型可靠性:多凭证、错误分类和 failback
v0.4.1 为 VLM 和 Embedding 增加 ordered credentials。数组顺序就是优先级,credentials[0] 是最高优先级。
系统会区分错误类型:
429、5xx、超时、连接错误:可重试或切换 credential。- 认证、权限、配额类 credential-level 错误:可以切换到下一 credential。
400参数错误、输入过大、内容安全拒绝:请求级快速失败,不浪费其他 credential。
Embedding 配置还会校验多 credential 的向量维度一致性,避免不同模型混用导致向量库维度错乱。对于线上部署,这意味着可以更现实地使用多 endpoint、多 provider、多 key,并在上游模型抖动时保持 Agent 可用性。
存储和运维可靠性
RAGFS multi-write 是这轮的重要基础设施增强。OpenViking 的上层 API 不需要变化,底层可以配置 primary 和多个 backup,用于高可用、跨区域副本、读加速和存储迁移。
{
"storage": {
"agfs": {
"backend": "local",
"backups": {
"sync_type": "async",
"items": [
{
"name": "object-store",
"backend": "s3",
"s3": {
"bucket": "openviking-backup",
"endpoint": "https://s3.example.com"
}
}
]
}
}
}
}同一条线上还包含一批生产修复:
- S3 场景支持 content-type autodetect。
- migrated legacy agent aliases 可以被正确读取。
- vector migration 输出字段修正。
- multiwrite copy 修复 empty chunk overwrite。
- session directory 跳过 vector seed,避免无效向量占位。
- user entry directories 初始化更完整。
ov doctor会报告无效ov.conf字段,而不是误报 PASS。
这些改动不一定显眼,但决定了长期运行、迁移、备份和对象存储场景的稳定性。
评测、测试和文档
v0.4.1 也补齐了大量测试和评测资产,覆盖:
- User / Peer identity、actor-peer filesystem view、peer auth check。
- legacy migration、vector migration、RAGFS multi-write。
- Feishu user token、watch auth state。
- image message memory extraction。
- VLM / embedding failover、ordered credential switcher。
- OpenClaw recall trace、runtime query config、feature gates。
- Skills API / CLI。
- LongMemEval 和 LoCoMo OpenViking benchmarks。
文档侧也新增了 0.3.x 到 0.4 的迁移指南、multi-write storage guide、User / Peer API 说明,以及 session、retrieval、skills、resources 等 API 文档更新。
建议升级路径
如果你已经在运行 0.3.x,建议按这个顺序升级:
- 先用 0.3.24 兼容版本备份现有数据。
- 升级 server、CLI 和 SDK 到 0.4.1。
- 重启服务端,验证
viking://agent和viking://session仍可读。 - 执行
ov --sudo admin migrate --output json。 - 检查 task status、迁移统计、向量记录数量和新 URI。
- 把业务写入迁移到
viking://user/...、messagepeer_id和actor_peer_id。 - 确认无回滚需求后,再执行 cleanup。
建议尽快关注 v0.4.1 的用户包括:
- 正在做多用户、多 Agent 或平台型 OpenViking 部署的团队。
- 已经有 0.3.x agent/session 历史数据,需要平滑迁移。
- 希望把 Feishu、PDF、DOC、图片消息、视频等多模态内容纳入上下文的用户。
- 使用 OpenClaw、Codex、Claude Code 插件,希望召回行为更可解释、更可控的用户。
- 对存储迁移、备份、多 endpoint 模型可用性有生产要求的部署。
英文版本 / English Version
OpenViking v0.4.1 Release Notes: Context Enters the User / Peer Era
Read This First
The overview image above summarizes the v0.4.1 release: User / Peer identity, legacy migration, multimodal ingestion, OpenClaw Recall Trace,...
v0.3.24
What's Changed
- docs(bot): document
gateway.token(required when host is non-localhost) by @r266-tech in #2405 - docs(quickstart): note Web Studio
/studiois available from pip/pipx server installs by @r266-tech in #2407 - feat(cli): improve config wizard and result UX by @ehz0ah in #2408
- docs(agents): batch update zh setup guides by @Lilimamama in #2413
- docs(agents): consolidate all unsubmitted zh fork edits by @Lilimamama in #2416
- feat(storage): optimize tree func by @baojun-zhang in #2372
- docs(agents): consolidate latest unsubmitted fork follow-ups by @Lilimamama in #2419
- docs(agents): sync en agent guides with current zh docs by @Lilimamama in #2423
- docs(cli): document
ov language/langcommand in CLI reference by @r266-tech in #2427 - docs(agents): sync latest zh follow-ups and fix agent-cli rendering by @Lilimamama in #2432
- feat(cli): add non-interactive config commands by @ehz0ah in #2426
- refactor(storage): deprecated and remove agfs http mode client by @baojun-zhang in #2425
- feat: upgrade MiniMax default model to M3 by @octo-patch in #2368
- docs: set README version to 0.3.22 by @iAlexKai in #2366
- docs(api): add cached_tokens/reasoning_tokens to get_session() llm_token_usage example by @r266-tech in #2328
- docs: remove broken agent doc links by @yufeng201 in #2436
- fix(embedding): use word-boundary matching for numeric error patterns in classify_api_error by @abinch in #2370
- docs(changelog): add v0.3.20-v0.3.23 entries (EN+ZH) by @r266-tech in #2316
- docs(api): document keep_recent_count param on commit() (#2284) by @r266-tech in #2315
- docs(roadmap): fix dead Contributing link (404) in EN+ZH roadmap by @r266-tech in #2322
- docs: add version 0.3.22 to README evaluation section (all languages) by @iAlexKai in #2437
- docs(cli): add CLI setup guide for manual and agent-assisted config by @ehz0ah in #2304
- feat(resources): persist async add-resource tasks by @qin-ctx in #2433
- fix(cli):
ov config switchreports invalid skip by @MaojiaSheng in #2441 - Skip process lock by @zhoujh01 in #2442
- docs: fix Claude agent documentation links by @yufeng201 in #2443
Full Changelog: v0.3.23...v0.3.24
v0.3.23
OpenViking v0.3.23 Release Notes / 发布说明
Release date / 发布日期: 2026-06-03
Full Changelog / 完整变更记录: v0.3.22...v0.3.23
Compare range / 对比范围: v0.3.22...v0.3.23 (42 commits)
中文
版本概览
v0.3.23 是一次偏体验与可靠性的版本:原生 ov CLI 改为更完整的交互式配置与诊断入口,Web Studio 增加 Playground 与连接身份管理,VikingBot 的经验召回改为配置驱动,同时补齐一批资源导入、会话、插件和 VLM 链路的可靠性修复。
主要更新
- 原生
ovCLI 体验重构:ov config现在是配置管理入口,可交互添加、编辑、删除、切换配置;ov config show、ov config validate、ov config switch保留为显式子命令。新增ov language/ov lang选择显示语言,ov status [--verbose]提供聚合诊断视图,ov health与错误提示改为更可读的渲染。 - Web Studio Playground 与身份管理:Studio 侧边栏新增 Playground,可在同一工作区内查看上下文树、运行 Terminal 操作并与 Agent 面板交互;Connection & Identity 页面支持保存连接、选择 account/user/agent、创建 account/user、复制或重新生成 API key。
- VikingBot 经验召回配置化:新增
bot.ov_server.recall_exp_first_round_only、exp_recall_limit、exp_recall_max_chars,用于单任务/评测场景中只在第一轮注入 agent experience;本地与远端模式都按传入agent_id做经验命名空间隔离。 - 资源 Watch 更易用:
add_resource设置watch_interval > 0时不再强制要求显式to;如果导入结果返回稳定root_uri,watch task 会自动绑定到该 URI。CLI/MCP/文档示例同步更新。 - Agent 插件与会话可靠性:Claude Code / OpenClaw 插件改为向 OpenViking 写入结构化 tool parts,工具调用与结果不再只能内联到文本;CJK-aware token 估算覆盖 Python 与插件侧,降低中文、日文、韩文会话的预算低估风险。
新功能用法
CLI 新入口:
ov language zh-CN
ov config
ov config validate
ov status --verboseov config setup-cli 已移除;新配置请使用裸 ov config。
导入远端资源并绑定自动刷新到本次导入产生的 root_uri:
ov add-resource https://github.com/example/repo.git --watch-interval 60如果资源类型无法返回稳定 root_uri,服务端会要求显式传入 --to。
VikingBot 只在第一轮注入经验召回:
{
"bot": {
"ov_server": {
"recall_exp_first_round_only": true,
"exp_recall_limit": 2,
"exp_recall_max_chars": 10000
}
}
}体验与兼容性改进
ovcli.conf默认 URL 统一到http://127.0.0.1:1933,配置文件序列化会跳过默认值和空字段,减少配置噪音。- 首次使用新 CLI 时,如果尚未选择显示语言,交互环境会弹出语言选择;非交互环境应先运行
ov language en或ov language zh-CN。 ov status默认展示整理后的诊断视图;需要原始组件数据时使用ov status --verbose或-o json。- 语义处理默认并发从 100 调整/校准为 64,避免大目录或多 root 同时处理时过度占用 VLM。
- 本地目录上传会跳过 symlink,避免递归、重复导入或越界读取。
ls/ 资源浏览的摘要批量读取与 Web Studio 资源浏览导航、保存延迟、查找面板二级调色板均有优化。
修复
- 修复加密存储
mv过程中可能二次删除的问题。 - 修复 VikingDB 批量 upsert/fetch/delete 的单批数量限制。
- 修复 Codex VLM Responses 流事件解析,在 completed response 没有 output 时使用 text deltas 兜底。
- 修复显式 VLM provider 经过 VikingBot /
ovcli配置序列化后没有按 VLM adapter 路由的问题。 - 修复 Web Studio 打包产物未进入 release wheel、Playground bot 流程、随机 UUID fallback 和资源浏览细节问题。
- 修复 server tool context 中 proxy namespace policy 传播问题。
- 修复 LangChain tool schema、OpenClaw auto-recall health precheck 鉴权、
memory_store零提取时缺少模型可见反馈等问题。 - Docker runtime stage 增加
git,避免运行期依赖 Git 的资源导入失败。
文档、测试与安全
- 文档新增通用 Agent 集成指南,并补充 Cursor、Trae、Codex、Claude Code、OpenClaw、OpenCode、SDK、MCP 等图文配置材料。
- MCP / Resource API 文档更新
add_resourcewatch 语义,read()目录 URI 错误现在记录结构化 details。 - 配置文档修正
vlm.max_concurrent默认值为 64。 - 新增 CJK token 估算测试、session message/commit 测试和 CLI config/status/doctor 回归测试。
- OpenClaw auto-recall health precheck 现在会带认证信息,避免误判受保护的 OpenViking 服务。
English
Overview
v0.3.23 focuses on operator experience and reliability. The native ov CLI now has a fuller interactive configuration and diagnostics flow, Web Studio adds Playground plus connection and identity management, VikingBot experience recall becomes config-driven, and several resource import, session, plugin, and VLM reliability issues are fixed.
Highlights
- Native
ovCLI refresh:ov configis now the configuration manager for adding, editing, deleting, and switching saved configs.ov config show,ov config validate, andov config switchremain explicit subcommands.ov language/ov langchooses display language,ov status [--verbose]provides system diagnostics, andov healthplus runtime errors now render with clearer guidance. - Web Studio Playground and identity management: Studio now includes Playground with a context tree, Terminal, and Agent panel. The Connection & Identity page can save connection state, select account/user/agent, create accounts and users, copy keys, and regenerate API keys.
- Config-driven VikingBot experience recall:
bot.ov_server.recall_exp_first_round_only,exp_recall_limit, andexp_recall_max_charslet task-style runners inject agent experience only on the first turn. Local and remote modes both isolate experience namespaces by incomingagent_id. - Simpler resource watches:
add_resourceno longer requires explicittowhenwatch_interval > 0; if the import returns a stableroot_uri, the watch task binds to that URI. CLI, MCP, and docs examples were updated. - Agent plugin and session reliability: Claude Code and OpenClaw plugins now write structured tool parts to OpenViking instead of flattening calls/results into text only. CJK-aware token estimation is shared across Python and plugin code, reducing budget underestimation for Chinese, Japanese, and Korean sessions.
New Feature Usage
New CLI entry points:
ov language en
ov config
ov config validate
ov status --verboseov config setup-cli has been removed; use bare ov config for new setup.
Import a remote resource and bind automatic refresh to the imported root_uri:
ov add-resource https://github.com/example/repo.git --watch-interval 60If the resource type cannot return a stable root_uri, the server asks for explicit --to.
VikingBot first-turn experience recall:
{
"bot": {
"ov_server": {
"recall_exp_first_round_only": true,
"exp_recall_limit": 2,
"exp_recall_max_chars": 10000
}
}
}Improvements
ovcli.confdefaults tohttp://127.0.0.1:1933, and config serialization omits default/empty fields to reduce noise.- On first use, the new CLI prompts for a display language in interactive environments. Non-interactive automation should run
ov language enorov language zh-CNbefore other commands. ov statusdefaults to a curated diagnostic view. Useov status --verboseor-o jsonfor raw component data.- Semantic processing concurrency is calibrated to 64 by default instead of 100, preventing excessive VLM pressure during large directory or multi-root processing.
- Local directory uploads skip symlinks to avoid recursive, duplicate, or out-of-scope ingestion.
ls/ resource browsing now batch-fetches abstracts more efficiently; Web Studio resource navigation, save latency, and the find palette L2 flow were polished.
Fixes
- Fixed encrypted storage
mvpaths that could delete twice. - Fixed VikingDB batch limits for upsert, fetch, and delete operations.
- Fixed Codex VLM Responses stream parsing by falling back to text deltas when the completed response has no output.
- Fixed explicit VLM provider routing through the VikingBot /
ovcliVLM adapter path. - Fixed Web Studio release-wheel asset bundling, Playground bot flow, random UUID fallback, and resource-browser details.
- Fixed proxy namespace policy propagation in server tool context.
- Fixed LangChain tool schemas, authenticated OpenClaw auto-recall health prechecks, and model-visible feedback when
memory_storeextracts zero memories. - Added
gitto the Docker runtime stage so Git-backed resource imports work in runtime images.
Docs, Tests, and Security
- Added general Agent integration guides and image-backed setup docs for Cursor, Trae, Codex, Claude Code, OpenClaw, OpenCode, SDK, and MCP usage.
- Updated MCP / Resource API docs for
add_resourcewatch semantics;read()directory-URI errors now document structured details. - Corrected the documented
vlm.max_concurrentdefault to 64. - Added CJK token estimation tests, session message/commit tests, and CLI config/status/doctor regressions.
- OpenClaw auto-recall health precheck now authenticates against protected OpenViking services.
v0.3.22
What's Changed
- fix(langchain): recover stale OpenViking clients by @ehz0ah in #2246
- feat(search) Add lightweight query planner config for intent analysis by @heaoxiang-ai in #2224
- fix(server): update server mode terminology from 'dev-implicit' to 'dev' by @Ferry-200 in #2260
- fix(ovpack): skip missing semantic sidecars by @qin-ctx in #2265
- refactor(memory): remove legacy memory v1 by @qin-ctx in #2264
- docs: simplify TAU-2 benchmark reproduction by @huangruiteng in #2267
- fix(bot): Limit grep\glob\search tool's user scope, grep use one pattern, Optimize client initialization. by @yeshion23333 in #2240
- fix(embedding): 统一 embedding 输入截断 by @qin-ctx in #2266
- docs: update benchmark results for LoCoMo and RAG by @iAlexKai in #2275
- feat(langchain): implement local batch message writes by @ehz0ah in #2250
- fix(ov-cli): report missing CLI config before server requests by @ehz0ah in #2279
- docs(prompt-guide): document trajectories memory schema by @r266-tech in #2282
- docs(memory): document version field that now rejects v1 (#2264) by @r266-tech in #2280
- docs(api): document
rawquery param on /content/read (#2225) by @r266-tech in #2278 - docs(retrieval): note intent-analysis model is configurable via query_planner (#2224) by @r266-tech in #2269
- docs(mcp): grep pattern is a single string, not string-or-array (#2240) by @r266-tech in #2270
- fix(cli): ignore null profile envelope metadata by @ZaynJarvis in #2274
- refactor(langchain): clarify session commit policy helper by @ehz0ah in #2283
- wechat qrcode update by @Lumos088 in #2290
- feat(openclaw): add typed synopsis stubs for externalized tool results by @huangxun375-stack in #2248
- feat(memory):Opt event yaml by @yeshion23333 in #2299
- fix(vectordb): skip candidates with corrupted JSON fields in search / 检索时跳过 fields 损坏的候选 by @KCHENPENGFEI in #2302
- fix(vectordb): add ap-southeast-1 region host mappings for VikingDB by @abinch in #2297
- docs(openclaw-plugin): list openviking_tool_result_read/search/list in plugin tool tables (#2058) by @r266-tech in #2295
- docs: fix broken crates/ov_cli/LICENSE link in README/README_CN/README_JA (404 since #1221 crates reorg) by @r266-tech in #2289
- chore(deps): update litellm requirement from <1.85.2,>=1.83.7 to >=1.83.7,<1.86.3 by @dependabot[bot] in #2287
- docs: refresh multilingual readmes by @iAlexKai in #2296
- docs: add agent integration assets by @yufeng201 in #2306
New Contributors
Full Changelog: v0.3.21...v0.3.22