github volcengine/OpenViking v0.2.11

latest release: v0.2.12
9 hours ago

OpenViking v0.2.11

OpenViking v0.2.11 聚焦在四个方向:模型与检索生态扩展、解析与导入能力增强、服务端可观测性与运维能力补齐,以及多租户安全性和稳定性加固。相较 v0.2.9,这一版本不仅补上了 Helm 部署、Prometheus 指标、健康统计 API、ov doctorreindex 等工程能力,也持续扩展了 embedding、rerank、VLM 与 bot 侧的模型接入面。

这次更新的代表性改动包括:新增 MiniMax embedding、Azure OpenAI、GeminiDenseEmbedder、LiteLLM embedding/rerank、OpenAI-compatible rerank 与 Tavily 搜索后端;新增 Whisper 音频转写与飞书/Lark 云文档解析;新增多租户文件加密与文档加密;增加 Prometheus 指标导出、内存健康统计接口、可信租户头鉴权模式,以及面向 Kubernetes 的 Helm Chart。与此同时,版本还集中修复了 Windows 锁文件、会话异步提交、向量检索 NaN/Inf 分数、ZIP 路径穿越、SOCKS5 代理兼容等一批实际使用中的问题。

版本亮点

  • 模型与检索生态继续扩展:新增 MiniMax embedding #624、Azure OpenAI embedding/VLM #808、GeminiDenseEmbedder #751、LiteLLM embedding #853 与 rerank #888,并补充 OpenAI-compatible rerank #785 与 Tavily 搜索后端 #788
  • 内容接入链路更完整:音频资源现在支持 Whisper ASR 解析 #805,云文档场景新增飞书/Lark 解析器 #831,文件向量化策略变为可配置 #858,搜索结果还新增了 provenance 元数据 #852
  • 服务端运维能力明显补齐:新增 ov reindex #795ov doctor #851、Prometheus exporter #806、内存健康统计 API #706、可信租户头模式 #868 与 Helm Chart #800
  • 多租户与安全能力增强:新增多租户文件加密 #828 和文档加密能力 #893,修复租户上下文在 observer 与 reindex 流程中的透传问题 #807 #820,并修复 ZIP Slip 风险 #879 与 trusted auth 模式下 API key 校验缺失 #924
  • 稳定性与工程体验持续加固:向量检索 NaN/Inf 分数处理在结果端 #824 和源头 #882 双重兜底,会话异步提交与并发提交问题被修复 #819 #783 #900,Windows stale lock 与 TUI 输入问题持续修复 #790 #798 #854,同时补上了代理兼容 #957 与 API 重试风暴保护 #772

升级提示

  • 如果你使用 litellm 集成,请关注这一版本中的安全策略调整:先临时硬禁用 #937,后恢复为仅允许 <1.82.6 的版本范围 #966。建议显式锁定依赖版本。
  • 如果你启用 trusted auth 模式,需要同时配置服务端 API key,相关校验已在 #924 中强制执行。
  • Helm 默认配置已切换为更适合 Volcengine 场景的默认值,并补齐缺失字段 #822。升级 chart 时建议重新审阅 values 配置。
  • Windows 用户建议关注 stale PID / RocksDB LOCK 文件处理增强 #790 #798 #854

详细变更

以下列表已按主题去重整理,保留每一项唯一 PR,并附上对应链接,便于直接用于 GitHub Release。

模型、Embedding、Rerank 与检索生态

  • 新增 MiniMax embedding provider,支持通过官方 HTTP API 接入 MiniMax 向量模型。PR #624
  • 新增 OpenAI-compatible rerank provider。PR #785
  • 新增 Azure OpenAI 对 embedding 与 VLM 的支持。PR #808
  • 新增 GeminiDenseEmbedder 文本向量模型提供方。PR #751
  • 新增 Tavily 作为可配置的 web search backend。PR #788
  • 修复 LiteLLM 下 zai/ 模型前缀处理,避免重复拼接 zhipu 前缀。PR #789
  • 修复 Gemini embedder 相关问题。PR #841
  • 新增 LiteLLM embedding provider。PR #853
  • 新增默认向量索引名可配置能力。PR #861
  • 新增 LiteLLM rerank provider。PR #888
  • 修复 Ollama embedding provider 的维度解析问题。PR #915
  • 为 Jina 代码模型补充 code-specific task 默认值。PR #914
  • 在 embedder 与 vectordb 维度不匹配时给出警告提示。PR #930
  • 为 Jina embedding provider 增加代码模型维度与更可操作的 422 错误提示。PR #928
  • 搜索结果新增 provenance 元数据,方便追踪召回来源。PR #852
  • 修复 recall limit 逻辑。PR #821
  • 在结果序列化前钳制向量检索中的 inf/nan 分数,避免 JSON 失败。PR #824
  • 在相似度分数源头钳制 inf/nan,进一步避免 JSON crash。PR #882

解析、导入与内容处理

  • 新增基于 Whisper 的音频解析与 ASR 集成。PR #805
  • 修复 PDF 书签目标页为整数索引时的解析问题。PR #794
  • 新增飞书/Lark 云文档解析器。PR #831
  • 修复 MarkdownParser 的字符数限制处理。PR #826
  • 支持可配置的文件向量化策略。PR #858
  • 优化语义处理性能,并发执行 batch overview 与 file summary 生成。PR #840
  • 修复 resource add 时可能出现的 file exists 错误。PR #845
  • 修复 ZIP 解压中的 Zip Slip 路径穿越风险。PR #879

服务端、观测、部署与运维

  • 新增 CLI reindex 命令,用于主动触发内容重建索引。PR #795
  • 修复 observer 中 RequestContext 透传,支持 tenant-scoped vector count。PR #807
  • 新增基于 observer pattern 的 Prometheus metrics exporter。PR #806
  • 新增内存健康统计 API endpoints。PR #706
  • 新增 Helm Chart,支持 Kubernetes 部署。PR #800
  • 修复 Helm 默认值并补齐缺失配置字段,默认切换为 Volcengine 场景。PR #822
  • 新增 ov doctor 诊断命令。PR #851
  • ov doctor 中的 ov.conf JSON 加载逻辑集中管理。PR #913
  • 新增 trusted auth mode,支持基于 tenant headers 的可信鉴权模式。PR #868
  • 修复 trusted auth mode 下必须提供 server API key 的校验。PR #924
  • 修复 dockerized localhost server 场景下 CLI 上传本地文件的问题。PR #961
  • 将 vectordb engine 迁移到 abi3 packaging,改善构建与分发兼容性。PR #897
  • 重构集成测试体系。PR #910

多租户、安全、会话与稳定性

  • 新增多租户文件加密能力。PR #828
  • 新增文档加密能力,并重构加密相关代码。PR #893
  • 修复 reindex existence check 未正确传递 tenant context 的问题。PR #820
  • client.Session 新增 commit_asyncPR #819
  • 修复 session archive 相关问题。PR #883
  • 修复 session 并发提交时旧消息可能被重复提交的问题。PR #783
  • 新增异步 session commit、session metadata 与 archive continuity threading。PR #900
  • 为队列增加 circuit breaker,避免 API retry storm。PR #772
  • 修复 Semantic queue worker 使用错误并发限制的问题,改为 _max_concurrent_semanticPR #905
  • 修复 HTTPX 在 SOCKS5 代理场景下的识别问题,避免 OpenViking crash。PR #957
  • 严格校验 ov.confovcli.confPR #904
  • 加强 LogConfig 未知字段校验,并在 ParserConfig 中给出告警。PR #856
  • 读取 ov.conf JSON 时支持展开环境变量。PR #908
  • 临时硬禁用 LiteLLM 集成以规避安全风险。PR #937
  • 在安全范围内恢复 LiteLLM 集成,仅允许 <1.82.6 版本。PR #966

Windows 兼容性与底层资源处理

  • 修复 Windows 下 stale PID lock 与 TUI console input 处理问题。PR #790
  • 启动时清理 Windows 下残留的 RocksDB LOCK 文件。PR #798
  • 说明文档中补充 process_lock 在 Windows 的错误处理说明。PR #849
  • 修复 process_lock._is_pid_aliveWinError 11 的处理。PR #854

Bot、Plugin 与 OpenClaw

  • 为 memory-openviking plugin 增加清理脚本。PR #832
  • 增加旧版本 plugin 清理说明。PR #843
  • 为 openclaw-plugin 增加卸载脚本。PR #933
  • openclaw-plugin 上下文引擎重构,增加 token budget 约束并减少上下文膨胀。PR #891
  • 新增 archive-aware context assembly 与 async session commit 到 openclaw-plugin。PR #938
  • 回滚 openclaw-plugin 的 archive-aware context assembly 与 async session commit 变更。PR #953
  • bot 侧新增 multi read tool,优化 loop memory,修复 agent memory search,并更新 README。PR #895
  • bot 侧删除无效工具,并更新 search/grep tool 描述。PR #929
  • bot 默认 provider 切换为 OpenAI,并修复飞书 chat_mode 值。PR #962
  • ov 脚本中新增 import locomoPR #965
  • 重构 memory extract 逻辑。PR #916
  • 再次重构 memory extract 逻辑。PR #952

VLM 与多模态相关修复

  • 修复当 API 返回字符串响应时 VLM 抛出 AttributeError 的问题。PR #814
  • thinking 标记透传给 dashscope OpenAI backend。PR #939

构建、CI、版本与仓库维护

  • 使用 pull_request_target 让 Qodo review 能在 fork PR 上运行。PR #816
  • 同步 ov CLI 版本与 openviking 包版本。PR #869
  • 修复 CI 构建依赖中缺失 setuptools-scm 的问题。PR #870
  • 更新 .pr_agent.tomlPR #838
  • 新增 gitcgr code graph badge。PR #872
  • 回滚 gitcgr code graph badge。PR #884

文档与社区更新

  • README banner 替换为居中 logo。PR #799
  • 更新 INSTALL-ZH.mdPR #818
  • 更新 INSTALL.mdPR #823
  • 增加 Gemini embedding provider 的使用与安装文档。PR #830
  • 新增 OpenCode 与 OpenClaw plugin 的中文 README 翻译。PR #850
  • 新增增量更新功能的 API 文档。PR #886
  • 新增飞书/Lark 云文档解析文档。PR #906
  • 更新 INSTALL.mdPR #917
  • 更新 INSTALL-ZH.mdPR #918
  • 更新最新微信交流群二维码。PR #919
  • 更新 README_CN.mdPR #920
  • 更新 README.mdPR #921

New Contributors

What's Changed

  • feat(embedder): minimax embeding by @zhougit86 in #624
  • feat(cli): add reindex command to trigger content re-indexing by @mvanhorn in #795
  • feat: replace banner with centered logo in README files by @ZaynJarvis in #799
  • fix(observer): pass RequestContext through vikingdb observer for tenant-scoped vector count by @qin-ctx in #807
  • feat(parse): implement Whisper ASR integration for audio parser by @mvanhorn in #805
  • feat(rerank): add OpenAI-compatible rerank provider by @chenxiaofei-cxf in #785
  • fix(ci): use pull_request_target so Qodo review runs on fork PRs by @qin-ctx in #816
  • feat: add Helm chart for Kubernetes deployment by @jackjin1997 in #800
  • feat: add Azure OpenAI support for embedding and VLM by @zeng121 in #808
  • fix(windows): handle stale PID locks and TUI console input by @Bortlesboat in #790
  • fix(vlm): fix AttributeError when API returns string response (Issue #801) by @sponge225 in #814
  • fix(parser): resolve PDF bookmark destinations for integer page indices by @mvanhorn in #794
  • Update INSTALL-ZH.md by @yuyaoyoyo-svg in #818
  • feat: add Tavily as configurable web search backend by @evanYDL in #788
  • fix(content): pass tenant context to reindex existence check by @RobertIndie in #820
  • fix(recall): fix recall limit by @zhoujh01 in #821
  • fix(helm): switch to volcengine defaults and add missing config fields by @qin-ctx in #822
  • fix(windows): clean stale RocksDB LOCK files on startup by @REMvisual in #798
  • Update INSTALL.md by @yuyaoyoyo-svg in #823
  • fix(session): add commit_async for client.Session by @boyweb in #819
  • feat(gemini): add GeminiDenseEmbedder text embedding provider by @chethanuk in #751
  • fix(vlm): skip zhipu prefix when model already uses zai/ (LiteLLM) by @Protocol-zero-0 in #789
  • add script to clean up memory-openviking plugin by @wlff123 in #832
  • feat: Add multi-tenant file encryption capability by @baojun-zhang in #828
  • fix(parser): MarkdownParser char limit by @chenxiaofei-cxf in #826
  • feat(telemetry): add Prometheus metrics exporter via observer pattern by @mvanhorn in #806
  • fix(search): clamp inf/nan scores from vector search to prevent JSON serialization failure by @a1461750564 in #824
  • Update .pr_agent.toml by @qin-ptr in #838
  • feat(server): add memory health statistics API endpoints by @mvanhorn in #706
  • fix/gemini_embedder by @qin-ptr in #841
  • Add instructions for cleaning up old version plugins. by @wlff123 in #843
  • fix(resource): resolve 'file exists' errors on resource add by @qin-ptr in #845
  • docs: Add Chinese README translations for OpenCode and OpenClaw plugins by @SCPZ24 in #850
  • docs(process_lock): clarify Windows error handling for _is_pid_alive by @haosenwang1018 in #849
  • fix(config): validate unknown fields in LogConfig and warn in ParserConfig by @r266-tech in #856
  • docs: add Gemini embedding provider usage and installation guide by @chethanuk in #830
  • fix(utils): handle WinError 11 in process_lock._is_pid_alive by @Bortlesboat in #854
  • feat(parse): add Feishu/Lark cloud document parser by @ryzn0518 in #831
  • feat(vectordb): make default index name configurable by @zhoujh01 in #861
  • feat(embedding): add litellm as embedding provider by @stubbi in #853
  • fix(build): sync ov cli version with openviking by @zhoujh01 in #869
  • fix(scm) Fix missing setuptools-scm in CI build dependencies by @zhoujh01 in #870
  • docs: add gitcgr code graph badge by @vitali87 in #872
  • feat(server): add trusted auth mode for tenant headers by @zhoujh01 in #868
  • Revert "docs: add gitcgr code graph badge" by @qin-ptr in #884
  • fix: clamp inf/nan similarity scores at source to prevent JSON crash by @snemesh in #882
  • docs(api): add documentation for incremental update feature by @myysy in #886
  • Fix/session archive by @myysy in #883
  • feat(openclaw-plugin):context engine refactor design & enforce token budget and reduce context bloat by @Mijamind719 in #891
  • fix(session): prevent concurrent commit re-committing old messages by @deepakdevp in #783
  • fix: prevent Zip Slip path traversal in ZIP extraction by @r266-tech in #879
  • feat(rerank): add litellm as rerank provider by @mvanhorn in #888
  • feat(vectordb)Migrate vectordb engine to abi3 packaging by @zhoujh01 in #897
  • feat: add encrypt doc && refactoring encrypt code by @baojun-zhang in #893
  • feat(bot):add multi read tool, opt loop memory, fix agent memory search, update README by @yeshion23333 in #895
  • feat(cli): add ov doctor diagnostic command by @mvanhorn in #851
  • fix: use _max_concurrent_semantic in Semantic queue worker by @vincent067 in #905
  • docs: add Feishu/Lark cloud document parser documentation by @r266-tech in #906
  • feat: make file vectorization strategy configurable by @ningfeemic-dev in #858
  • feat(retrieve): add provenance metadata to search results by @mvanhorn in #852
  • perf(semantic): run batch overview generation and file summaries concurrently by @ahmedhesham6 in #840
  • fix(queue): add circuit breaker to prevent API retry storms by @deepakdevp in #772
  • feat: refactor integration test by @baojun-zhang in #910
  • Refactor(CLI): Centralize ov.conf JSON loading in ov doctor by @everforge in #913
  • fix(config): validate ov.conf and ovcli.conf strictly by @qin-ctx in #904
  • fix(embedding): add dimension resolution for Ollama embedding provider by @JasonOA888 in #915
  • fix: expand env vars when loading ov.conf JSON config files by @itlackey in #908
  • Update INSTALL.md by @yuyaoyoyo-svg in #917
  • Update INSTALL-ZH.md by @yuyaoyoyo-svg in #918
  • add latest wechat-group-qrcode by @yuyaoyoyo-svg in #919
  • Use code-specific Jina task defaults for code embedding models by @3kyou1 in #914
  • Update README_CN.md by @yuyaoyoyo-svg in #920
  • Update README.md by @yuyaoyoyo-svg in #921
  • Refactor memory extract by @chenjw in #916
  • fix: require server api key in trusted auth mode by @zhoujh01 in #924
  • add script to uninstall openclaw-plugin by @wlff123 in #933
  • feat(bot):delete invalid tools, update search\grep tool's description by @yeshion23333 in #929
  • fix(embed): give warning when embeder and vectoerdb are not the same. by @zhougit86 in #930
  • fix(embedder): add code model dimensions and actionable 422 error for Jina by @deepakdevp in #928
  • feat(session): async commit, session metadata, and archive continuity threading by @qin-ctx in #900
  • fix(security): hard-disable litellm integrations by @qin-ctx in #937
  • feat(openclaw-plugin): add archive-aware context assembly and async session commit by @Mijamind719 in #938
  • Revert "feat(openclaw-plugin): add archive-aware context assembly and async session commit" by @qin-ctx in #953
  • fix(vlm): pass thinking flag to dashscope openai backend by @sacloudy in #939
  • Refactor memory extract by @chenjw in #952
  • Fix HTTPX recognition issue with SOCKS5 proxy causing OpenViking crash by @Ghostknight0 in #957
  • fix(cli): upload local files for dockerized localhost servers by @qin-ctx in #961
  • fix(bot):change provider to OpenAI, fix feishu chat_mode value by @yeshion23333 in #962
  • feat(bot): add import locomo to ov script by @yeshion23333 in #965
  • fix(security): restore litellm integrations below 1.82.6 by @qin-ctx in #966
  • Fix/watch manager file not found by @myysy in #970
  • fix release build workflow by @zhoujh01 in #971

New Contributors

Full Changelog: v0.2.9...v0.2.11

Don't miss a new OpenViking release

NewReleases is sending notifications on new releases.