github volcengine/OpenViking v0.4.10

pre-release7 hours ago

OpenViking v0.4.10 发布说明

OpenViking v0.4.10 重点增强了资源导入、重建索引、会话持久化、MCP 兼容性、媒体解析、记忆插件写入性能和 usage reporting 能力。本次发版包含较多代码层面的稳定性修复:reindex 会保留内容 owner,可清理孤儿向量;Session commit 的第二阶段改为 QueueFS 持久队列;MCP 对外暴露的 tool schema 更适配严格 function-calling API;Connector 导入、memory plugin 批量写入和 VectorDB 批量 upsert 也都有实质增强。

重点变化

Reindex 与资源一致性

  • Reindex 现在会按配置的 VLM 并发数创建 SemanticProcessor,避免维护任务绕过全局并发控制。(#3220)
  • Reindex 写回语义和向量记录时会根据目标 URI 切换到内容 owner 上下文,避免 admin 或维护任务把用户资源、memory、skill 的 owner 改写掉。该改动同时为 Python、TypeScript、Go 客户端暴露了 dry_run 参数。(#3096)
  • 新增 prune_orphans reindex 模式,可扫描 resource、memory、skill 向量记录,识别源文件、.abstract.md.overview.md 或 memory chunk 已不存在的孤儿记录,并支持 dry-run 预览待删除数量。(#3096)
  • 修复资源 auto-naming 预约失败时吞掉锁竞争/背压错误的问题,避免并发导入时误报为普通命名失败。(#3201)
  • 一致性检查拒绝 file:// URI,避免本地文件路径被误用到 VikingFS 资源一致性流程。(#3133)
  • 子目录 overview summary 改为批量处理,减少重复生成和队列侧不一致。(#3154)

Connector 导入

  • 新增外部 Connector 集成:当 [connector] 开启且 source scheme 命中 allowed_add_types 时,add_resource 可把导入委托给 Connector 的 doc/addtask/info 接口。(#3084)
  • Connector 导入会创建 connector_import TaskRecord,并在后台轮询 Connector 任务状态,把 succeededfailedcancelled、timeout 等状态同步回 OV 任务系统。(#3084)
  • tos:// 等 Connector-only source 做了显式校验:Connector 未启用、目标不在 viking://resources/...wait=trueto= 精确目标、watch、strict、include/exclude 等不支持参数都会提前报错,而不是走标准 pipeline 后再失败。(#3084)

Session、Snapshot 与 Usage Reporting

  • Session commit 的 Phase 2 从 asyncio.create_task() 改为 QueueFS 持久队列:归档后写入 session_commit 队列,服务重启后可从 archive 继续执行 memory extraction、relation 写入和 .done/.failed.json 标记更新。(#3254)
  • 生成的 session ID 更可读,降低排查和人工操作时只面对随机 ID 的成本。(#3287)
  • Session compressor 和 trajectory analyzer 增加来源追踪,snapshot/experience 更新时能保留更明确的来源信息。(#3221)
  • 新增可扩展 usage reporter 子系统,支持从 session 消息里的 search_experienceread_experience tool part 提取 memory.recalledmemory.injected 事件,并通过自定义 sink 上报。(#3222)
  • Usage reporter 生命周期做了容错:extractor 和 sink 失败不会打断 session commit,sink 写入和关闭都带 timeout。(#3222)

MCP 与 Agent/Plugin 兼容性

  • MCP search 类工具新增 context_type filter,客户端可直接按 resource、memory、skill 等上下文类型筛选。(#3181)
  • MCP 对外 advertised tool schema 会被重写成 plain-typed schema:内联 $ref、移除 anyOf/$defs、去掉 null 分支,并确保每个 schema node 都有显式 type,以兼容 Gemini、n8n 等严格 function-calling/OpenAPI 子集。运行时参数校验仍保留原函数签名能力。(#3288)
  • OpenClaw 插件恢复 peer_role 路由,区分消息归属 peer 与请求 actor peer,修复 assistant/person 模式下消息和数据面请求都被路由成同一身份的问题。(#3252)
  • PI coding agent 的 recall 改为先排队再异步查询,避免用户消息渲染被 recall 请求阻塞。(#3233)
  • Codex memory plugin 的 type-quota recall 结果支持压缩:从 endpoint entries 中构造待压缩 item,必要时回退 digest,减少注入上下文过长的问题。(#3248)
  • Memory plugins 新增共享 async-writerbatch-send,Claude Code、Codex、OpenCode、Cursor、Trae 等插件可批量调用 /messages/batch,失败时按连续前缀入 pending queue,避免中间消息丢失。(#3261)

Bot 体验

  • VikingBot 默认启用 OpenViking session context,并把默认保留最近消息数从 5 调整为 10。(#3236)
  • Bot 从 OV 拉取历史时会按 token budget 裁剪,避免大量 tool output 把 prompt 撑爆;裁剪后的消息会带截断提示。(#3236)
  • Bot 现在会保存中间 assistant turn 及其 tool calls/results,并在同步到 OV 时拆成结构化 text/tool parts,而不是只把最终回答和扁平 tools_used 写入。(#3236)
  • Bot 请求依赖兼容 chardet 7,并增加依赖兼容性测试。(#3282)

媒体解析与检索/rerank

  • 解析器新增 AC-3 音频支持:补充 audio/ac3 MIME 映射、.ac3 扩展名、AC-3 magic bytes,并把 AC-3 纳入音频 parser 支持列表。(#3229)
  • 多模态资源集成测试覆盖图片、音频、视频、文档等 31 个导入 case,便于用真实 OpenViking 服务验证端到端解析和队列处理。(#3229)
  • 媒体向量化扩展名与 parser 支持范围同步,补齐 .mkv.webm.ogg.m4a.opus.ac3 等格式识别。(#3241)
  • 空文档 rerank 场景保留 fallback,避免 hierarchical retriever 因空内容丢掉原始检索结果。(#3231)
  • Recall 结果隐藏 memory fields metadata,减少内部字段泄露到最终上下文。(#3240)
  • Retrieval observer 统计聚合检索 yield 时会把 aggregate retrieval 也计入,修正观测数据偏差。(#3158)
  • LiteLLM rerank 兼容 Voyage:documents 改为传 plain string list,并兼容 dict/object 两种 result item 结构,避免 Voyage 400 或 rerank silently no-op。(#3291)

VectorDB 与 Benchmark

  • VectorDB 后端新增 upsert_many 批量写入路径,批量校验 account、context_type、重复 ID 和返回 ID 顺序,再通过一次 adapter upsert 调用写入完整记录。(#3264)
  • VectorDB benchmark ingestion 从逐条 upsert 改为批量 upsert,并在 benchmark 事件中标记 upsert_rows_batch。(#3264)
  • WIKI-Dir benchmark 支持加载 corpus path mapping,区分 base queries 和 directory queries,并增加 query scope/path diagnostics,避免缺少目录约束时跑出 root-only 的误导性 Directory benchmark。(#3279)

文档、测试与清理

  • 新增 sales-opportunity-order-builder agent skill 文档,覆盖销售机会转订单的 DSL 生成流程。(#3227)
  • 移除自动 pre-commit hooks 相关配置与贡献文档说明,避免本地提交流程被自动 hook 绑定。(#3228)
  • OC2OV 测试在 OpenClaw CLI 输出为空时 fail fast,并补充诊断工具,减少空输出导致的误判。(#3250)
  • Trusted admin target 允许 root key 访问,并补充认证测试。(#3249)
  • 优化 preferences/profile memory prompt 模板,使生成内容更稳定。(#3242)
  • 移除 embedding 中未使用的 batch APIs,清理多个 provider embedder 的废弃批量入口和相关测试。(#3260)
  • 大规模清理未使用和已废弃 API,包括旧 bot channel、watch manager、旧 parse/accessor、旧 telemetry、部分 vectordb project/validation、setup wizard、redo log 等代码路径。(#3272)
  • Trace 文档补充本地 trace 文件路径、产生和上传排查说明,并新增离线 trace 上传脚本。(#3263)

新贡献者

感谢以下新贡献者首次参与 OpenViking:

完整变更

完整 Changelog:

v0.4.9...v0.4.10

What's Changed

New Contributors

Full Changelog: v0.4.9...v0.4.10

Don't miss a new OpenViking release

NewReleases is sending notifications on new releases.