github volcengine/OpenViking v0.4.6

3 hours ago

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 中保留 skillsendpointstoolspayments 等新的 agent 保留子目录。0.4.5 的 cleanup 会删除整个旧 /agent 根,更适合作为 0.3.x legacy 数据迁移完成后的清理版本。

同时,0.4.6 不再把 search/find 请求体里的 agent_idagent_uri 当作 peer selector。升级时请同步升级 server、CLI、SDK;需要 peer 视图时使用 actor_peer_idX-OpenViking-Actor-Peer,或显式 target_uri

主要更新

  • VikingFS 多版本管理:新增 Git-backed snapshot 能力,支持 commitlogshowrestore。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 Skillsviking://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 list

Grep 引擎配置:

{
  "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-reinstall

Reason: 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, and restore primitives across HTTP API, Python SDK, and Rust CLI. Git objects can live in local .ovgit storage or an S3/TOS-compatible backend.
  • Whole-site ingestion: add_resource can ingest sitemaps, sitemap indexes, RSS 2.0, and Atom feeds. A sitemap/feed URL becomes one resource tree, and watch_interval keeps the site refreshed.
  • Shared Agent Skills: viking://agent/skills is available again as an account-shared skill root. User-private viking://user/<user_id>/skills remains the default.
  • VikingDB BM25 Grep: grep can use VikingDB BM25 keyword recall in auto mode while keeping fs as 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 json

Whole-site ingestion:

ov add-resource https://example.com/sitemap.xml --watch-interval 60 --wait
ov add-resource https://example.com --args site:true --wait

Shared skills:

ov skills add ./skills/search-web -p viking://agent/skills --wait
ov skills list --uri viking://agent/skills
ov skills list

Grep config:

{
  "grep": {
    "engine": "auto",
    "switch_to_remote_threshold": 10000
  }
}

Improvements

  • add_resource has clearer parent / create_parent behavior, 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.0 and :: 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.
  • .jsonl is 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 litellm dependency range.

Don't miss a new OpenViking release

NewReleases is sending notifications on new releases.