Skip to content

Releases: volcengine/OpenViking

v0.4.6

29 Jun 08:32
83cba39

Choose a tag to compare

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.

v0.4.5

24 Jun 08:37
61f0537

Choose a tag to compare

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_mode support 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.5 tag.
  • Docker images are published with v0.4.5 and latest tags by the release workflow.

New Contributors

Full Changelog: v0.4.4...v0.4.5

python-sdk/v0.1.2

22 Jun 06:05
02f0648

Choose a tag to compare

v0.4.4

18 Jun 13:20
8a2d781

Choose a tag to compare

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

18 Jun 11:09
b1712aa

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.4.2...v0.4.3

v0.4.2

17 Jun 06:32
ff73e68

Choose a tag to compare

What's Changed

Full Changelog: v0.4.1...v0.4.2

v0.4.1

16 Jun 13:20
740b7fc

Choose a tag to compare

中文版本 / Chinese Version

OpenViking v0.4.1 发布说明:Context 进入 User / Peer 时代

完整对比:v0.3.24...v0.4.1

openviking-release-highlights

升级前先看三件事

上面的图是 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_idactor_peer_id,服务端会拒绝这种混用。
  • legacy agent_id client 下不要再显式传 message peer_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://agentviking://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/...、message peer_id 和 request/client actor_peer_id
  • 不要同时配置 agent_idactor_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-web

Claude 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] 是最高优先级。

系统会区分错误类型:

  • 4295xx、超时、连接错误:可重试或切换 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,建议按这个顺序升级:

  1. 先用 0.3.24 兼容版本备份现有数据。
  2. 升级 server、CLI 和 SDK 到 0.4.1。
  3. 重启服务端,验证 viking://agentviking://session 仍可读。
  4. 执行 ov --sudo admin migrate --output json
  5. 检查 task status、迁移统计、向量记录数量和新 URI。
  6. 把业务写入迁移到 viking://user/...、message peer_idactor_peer_id
  7. 确认无回滚需求后,再执行 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

openviking-release-highlights

Read This First

The overview image above summarizes the v0.4.1 release: User / Peer identity, legacy migration, multimodal ingestion, OpenClaw Recall Trace,...

Read more

v0.3.24

05 Jun 08:05

Choose a tag to compare

What's Changed

  • docs(bot): document gateway.token (required when host is non-localhost) by @r266-tech in #2405
  • docs(quickstart): note Web Studio /studio is 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/lang command 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 switch reports 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

03 Jun 08:02
f6bffda

Choose a tag to compare

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 链路的可靠性修复。

主要更新

  • 原生 ov CLI 体验重构ov config 现在是配置管理入口,可交互添加、编辑、删除、切换配置;ov config showov config validateov 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_onlyexp_recall_limitexp_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 --verbose

ov 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 enov 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_resource watch 语义,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 ov CLI refresh: ov config is now the configuration manager for adding, editing, deleting, and switching saved configs. ov config show, ov config validate, and ov config switch remain explicit subcommands. ov language / ov lang chooses display language, ov status [--verbose] provides system diagnostics, and ov health plus 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, and exp_recall_max_chars let task-style runners inject agent experience only on the first turn. Local and remote modes both isolate experience namespaces by incoming agent_id.
  • Simpler resource watches: add_resource no longer requires explicit to when watch_interval > 0; if the import returns a stable root_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 --verbose

ov 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 60

If 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.conf defaults to http://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 en or ov language zh-CN before other commands.
  • ov status defaults to a curated diagnostic view. Use ov status --verbose or -o json for 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 mv paths 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 / ovcli VLM 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_store extracts zero memories.
  • Added git to 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_resource watch semantics; read() directory-URI errors now document structured details.
  • Corrected the documented vlm.max_concurrent default 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

29 May 09:46
18897e4

Choose a tag to compare

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 raw query 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