中文
版本概览
OpenViking v0.4.17 包含 92 个 commit,重点补齐跨语言 SDK 与服务端接口、增强检索和媒体读取能力,并修复 Session、记忆写入、语义索引、资源导入和多种 Agent 插件的可靠性问题。同时欢迎以上 14 位首次贡献者,感谢他们为本次版本带来的改进。
升级前请注意一项 URI 兼容性变化:面向当前用户的旧写法 viking://user/resources、viking://user/memories 等已从公开请求入口移除,请改用 viking://~/resources、viking://~/memories,或显式的 viking://user/{user_id}/...。
主要更新
- 跨语言 SDK 对齐:Python、Go、TypeScript SDK 补齐 find/search、context search、recall、资源、内容、Session、Skill、reindex 和管理接口;Python SDK 引入类型化 options,同时保留常用具名参数。
- 检索可直接返回正文:
find和 list 模式的search新增read_content,可把每个命中 URI 的可见全文放入content字段。CLI 对应--read-content。 - 支持 anydoc office converter
- MCP 原生媒体返回:MCP
read可返回标准图片、音频 content block;mode=download可导出原始字节。视频使用 download 模式。 - 私有 TOS URL 导入:
add_resource支持一次性的args.tos_signature或args.tos_access,用于 HEAD/GET,凭据不会进入资源元数据或异步队列。 - 目录默认可检索:
mkdir即使不传 description,也会用目录名创建最小 L0 并排队向量化。 - 写入缺失文件:content
write的replace和append在目标不存在时会创建文件和父目录;create仍在文件已存在时返回 409。 - 管理过滤:list accounts/users 的
name支持*、?通配符。 - 插件可诊断性:Claude Code 和 Codex memory plugin 新增
ov-memory-doctor,检查安装、配置、鉴权、服务和近期活动。 - Agent 插件修复:DSH 可排除 delegated subagent session,避免污染用户记忆;ZCode 修复空 matcher 导致整组 hooks 被静默丢弃的问题。
- 构建提速准备:GitHub Actions 持久化 Cargo/ccache 等 BuildKit mount cache,为后续镜像构建复用原生编译产物。
- Studio 修复:修复检索 description label 重叠。
- 记忆与检索可靠性:修复连续 Session commit 的 archive 锁阻塞、memory 多 block patch、replace 字段丢失、目录 overview 未进入 L1 索引、query planner 返回数组导致崩溃等问题。
- 可观测性:新增按 memory type/action/result 拆分的记忆抽取指标,并为模型调用记录受控错误码和真实耗时。
首次贡献者
感谢以下 14 位首次参与 OpenViking 的贡献者:
- @axiomoth(#4203)
- @ntdat812(#4228)
- @c020627(#4213)
- @LH-kevin(#4232)
- @DamonDay(#4034)
- @yachen4ever(#4214)
- @wdsjjs(#4149)
- @Mchenr(#4272)
- @dajiaohuang(#4287)
- @rbalachandar(#4206)
- @ktz03(#4040)
- @veryvideo(#4331)
- @almazom(#4391)
- @kwistzzqq-byte(#4382)
使用示例
# 当前用户 URI
ov ls viking://~/resources
# 返回匹配项及其完整正文
ov find "deployment procedure" --read-content
ov search "deployment procedure" --read-contentresults = client.find(
query="deployment procedure",
target_uri="viking://~/resources",
limit=5,
read_content=True,
){
"path": "https://bucket.example.tos-cn-beijing.volces.com/private.pdf",
"to": "viking://resources/tos/private.pdf",
"args": {
"tos_signature": "<TOS_SIGNATURE>"
}
}tos_signature 与 tos_access 只能二选一。不要开启生产环境 request body dump,避免显式传入的凭据进入日志。
兼容性与升级说明
- Breaking change:旧的 uid-less 当前用户 URI 会返回 400 并提示替代写法。升级服务端前先升级外部脚本、agent prompt 和旧插件;旧服务端不认识
viking://~,服务端与客户端需要成组升级。 search(mode="context")不接受read_content=true,因为 context 模式有独立 token budget。read_content=true会扩大响应体;生产调用要设置合理的limit。- TOS 凭据只用于本次单文件 HTTP(S) 导入,不支持 watch 刷新,也不提供
tos://accessor。 - Python SDK 的
options与同名具名参数不能同时传入;显式False、0和空数组会被保留。
完整变更记录:v0.4.16...e7f2fe5
English
Overview
OpenViking v0.4.17 contains 92 commits. It aligns the Python, Go, and TypeScript SDKs with the server, expands retrieval and MCP media support, and improves reliability across sessions, memory updates, semantic indexing, resource imports, and Agent plugins. We also welcome 14 first-time contributors and thank them for their improvements in this release.
Before upgrading, migrate the deprecated current-user URI forms such as viking://user/resources and viking://user/memories to viking://~/resources, viking://~/memories, or the explicit viking://user/{user_id}/... form.
Highlights
- Aligned Python, Go, and TypeScript SDK interfaces for retrieval, recall, resources, content, sessions, skills, reindexing, and administration.
- Added 'AnyDoc' for office suite
- Added
read_contentto rankedfindand list-modesearch, with--read-contentin the CLI. - Added standard MCP image/audio content blocks and raw-byte download mode.
- Added one-shot private TOS HTTP(S) imports through
args.tos_signatureorargs.tos_accesswithout persisting credentials. - Made directories searchable by creating a default L0 summary on
mkdir. - Made
replaceandappendcreate missing files and parent directories. - Added wildcard filters to account and user listing.
- Added the
ov-memory-doctordiagnostic skill to the Claude Code and Codex memory plugins. - Fixed DSH delegated-session memory contamination, ZCode hook registration, Studio retrieval-label overlap, and added persistent native-build caches to the image workflow.
- Fixed session archive lock contention, memory patch/update regressions, missing memory overview indexing, and query-planner array responses.
- Added memory-extraction metrics by type/action/result and safer model-call error metrics.
New Contributors
Thank you to our 14 first-time contributors: @axiomoth, @ntdat812, @c020627, @LH-kevin, @DamonDay, @yachen4ever, @wdsjjs, @Mchenr, @dajiaohuang, @rbalachandar, @ktz03, @veryvideo, @almazom, and @kwistzzqq-byte.
Usage
ov ls viking://~/resources
ov find "deployment procedure" --read-content
ov search "deployment procedure" --read-contentresults = client.find(
query="deployment procedure",
target_uri="viking://~/resources",
limit=5,
read_content=True,
)Compatibility notes
- Breaking change: uid-less current-user URIs now fail with HTTP 400 and a corrective hint. Upgrade scripts, prompts, and plugins together with the server.
search(mode="context")rejectsread_content=true; context assembly has its own token budget.- Bound response size with
limitwhen usingread_content=true. - TOS credentials are request-scoped and do not support watch refreshes.
- Python SDK typed options cannot be combined with the same flattened named arguments.
Full changelog: v0.4.16...e7f2fe5