Releases: volcengine/OpenViking
v0.3.10
OpenViking v0.3.10 Release Notes / 发布说明
Release date / 发布日期: 2026-04-22
Full Changelog / 完整变更记录: v0.3.9...v0.3.10
中文
版本概览
v0.3.10 重点增强了 VLM provider、OpenClaw 插件生态、VikingDB 数据面接入,以及文件写入、QueueFS、Bot/CLI 的稳定性。本次发布包含 46 个提交,覆盖新功能、兼容性修复、安全修复和测试补强。
主要更新
- 新增 Codex、Kimi、GLM VLM provider,并支持
vlm.timeout配置。 - 新增 VikingDB
volcengine.api_key数据面模式,可通过 API Key 访问已创建好的云上 VikingDB collection/index。 write()新增mode="create",支持创建新的文本类 resource 文件,并自动触发语义与向量刷新。- OpenClaw 插件新增 ClawHub 发布、交互式 setup 向导和
OPENCLAW_STATE_DIR支持。 - QueueFS 新增 SQLite backend,支持持久化队列、ack 和 stale processing 消息恢复。
- Locomo / VikingBot 评测链路新增 preflight 检查和结果校验。
新功能用法
使用新的 VLM provider
Codex OAuth 推荐通过初始化向导配置:
openviking-server init
openviking-server doctor手动配置时,openai-codex 在 Codex OAuth 可用时不需要 api_key:
{
"vlm": {
"provider": "openai-codex",
"model": "gpt-5.3-codex",
"api_base": "https://chatgpt.com/backend-api/codex",
"timeout": 120
}
}Kimi 和 GLM 使用 OpenAI-compatible 请求格式:
{
"vlm": {
"provider": "kimi",
"model": "kimi-code",
"api_key": "your-kimi-subscription-api-key",
"api_base": "https://api.kimi.com/coding"
}
}{
"vlm": {
"provider": "glm",
"model": "glm-4.6v",
"api_key": "your-zai-api-key",
"api_base": "https://api.z.ai/api/coding/paas/v4"
}
}创建新的 resource 文件
openviking write viking://resources/notes/release-v0.3.10.md \
--mode create \
--content "# v0.3.10\n\nRelease notes." \
--waitcreate 模式只用于新文件;目标已存在时会返回 409 Conflict。支持的扩展名包括 .md、.txt、.json、.yaml、.yml、.toml、.py、.js、.ts。
使用 VikingDB API Key 数据面模式
该模式适合连接已提前创建 collection/index/schema 的 VikingDB。OpenViking 会执行数据写入、查询、删除和聚合,不会创建或删除 collection/index。
{
"storage": {
"vectordb": {
"backend": "volcengine",
"name": "context",
"project": "default",
"index_name": "default",
"volcengine": {
"api_key": "your-vikingdb-data-api-key",
"region": "cn-beijing",
"host": "api-vikingdb.vikingdb.cn-beijing.volces.com"
}
}
}
}安装和配置 OpenClaw 插件
openclaw plugins install clawhub:@openclaw/openviking
openclaw openviking setup连接已有远端 OpenViking 服务时:
openclaw config set plugins.entries.openviking.config.mode remote
openclaw config set plugins.entries.openviking.config.baseUrl http://your-server:1933
openclaw config set plugins.entries.openviking.config.apiKey your-api-key
openclaw config set plugins.entries.openviking.config.agentId your-agent-idQueueFS SQLite backend
服务端语义/向量任务队列默认可使用持久化 QueueFS。直接挂载 queuefs 插件时,可配置 SQLite 参数:
{
"backend": "sqlite",
"db_path": "./data/queue.db",
"recover_stale_sec": 300,
"busy_timeout_ms": 5000
}体验与兼容性改进
- 调整
recallTokenBudget和recallMaxContentChars默认值,降低 OpenClaw 自动召回注入过长上下文的风险。 ov add-memory在异步 commit 场景下返回OK,避免误判后台任务仍在执行时的状态。ov chat会从ovcli.conf读取鉴权配置并自动发送必要请求头。- OpenClaw 插件默认远端连接行为、鉴权、namespace 和
role_id处理更贴合服务端多租户模型。
修复
- 修复 Bot API channel 鉴权检查、启动前端口检查和已安装版本上报。
- 修复 OpenClaw 工具调用消息格式不兼容导致的孤儿
toolResult。 - 修复 console
add_resourcetarget 字段、repo target URI、filesystemmkdir、reindex maintenance route 等问题。 - 修复 Windows
.bat环境读写、shell escaping、ov.conf校验和硬编码路径问题。 - 修复 Gemini + tools 场景下 LiteLLM
cache_control导致的 400 错误,并支持 OpenAI reasoning model family。 - 修复 S3FS 目录 mtime 稳定性、Rust native build 环境污染、SQLite 数据库扩展名解析等问题。
文档、测试与安全
- 补充 VLM provider、Codex OAuth、Kimi/GLM、
write(mode=create)、tools.mcp_servers、ov_tools_enable、Feishu thread 和 VLM timeout 文档。 - 新增资源构建、Context Engine、OpenClaw 插件、内容写入、VLM provider、setup wizard、server bootstrap 和安全相关测试。
- 新增
SECURITY.md并更新 README、多语言文档和社群二维码。 - 修复多项 code scanning 和 runtime 安全告警。
- 增强 Bot gateway、OpenAPI auth、werewolf demo、配置校验和本地命令执行相关安全测试。
English
Overview
v0.3.10 focuses on VLM providers, the OpenClaw plugin ecosystem, VikingDB data-plane access, and stability improvements across content write, QueueFS, Bot, and CLI workflows. This release includes 46 commits covering new capabilities, compatibility fixes, security fixes, and expanded tests.
Highlights
- Added Codex, Kimi, and GLM VLM providers, plus
vlm.timeoutfor per-request HTTP timeouts. - Added VikingDB
volcengine.api_keydata-plane mode for accessing pre-created cloud VikingDB collections and indexes with an API key. - Added
write(mode="create")for creating new text resource files and automatically refreshing related semantics and vectors. - Added ClawHub publishing, an interactive setup wizard, and
OPENCLAW_STATE_DIRsupport for the OpenClaw plugin. - Added a SQLite backend for QueueFS with persisted queues, ack support, and stale processing message recovery.
- Added Locomo / VikingBot evaluation preflight checks and result validation.
New Feature Usage
Use the new VLM providers
For Codex OAuth, prefer the setup wizard:
openviking-server init
openviking-server doctorWhen configuring manually, openai-codex does not require api_key if Codex OAuth is available:
{
"vlm": {
"provider": "openai-codex",
"model": "gpt-5.3-codex",
"api_base": "https://chatgpt.com/backend-api/codex",
"timeout": 120
}
}Kimi and GLM use OpenAI-compatible request formats:
{
"vlm": {
"provider": "kimi",
"model": "kimi-code",
"api_key": "your-kimi-subscription-api-key",
"api_base": "https://api.kimi.com/coding"
}
}{
"vlm": {
"provider": "glm",
"model": "glm-4.6v",
"api_key": "your-zai-api-key",
"api_base": "https://api.z.ai/api/coding/paas/v4"
}
}Create a new resource file
openviking write viking://resources/notes/release-v0.3.10.md \
--mode create \
--content "# v0.3.10\n\nRelease notes." \
--waitcreate mode only targets new files; an existing path returns 409 Conflict. Supported extensions include .md, .txt, .json, .yaml, .yml, .toml, .py, .js, and .ts.
Use VikingDB API-key data-plane mode
This mode is intended for VikingDB collections, indexes, and schemas that were created out of band. OpenViking can write, search, delete, and aggregate data, but it does not create or delete collections and indexes in this mode.
{
"storage": {
"vectordb": {
"backend": "volcengine",
"name": "context",
"project": "default",
"index_name": "default",
"volcengine": {
"api_key": "your-vikingdb-data-api-key",
"region": "cn-beijing",
"host": "api-vikingdb.vikingdb.cn-beijing.volces.com"
}
}
}
}Install and configure the OpenClaw plugin
openclaw plugins install clawhub:@openclaw/openviking
openclaw openviking setupTo connect to an existing remote OpenViking server:
openclaw config set plugins.entries.openviking.config.mode remote
openclaw config set plugins.entries.openviking.config.baseUrl http://your-server:1933
openclaw config set plugins.entries.openviking.config.apiKey your-api-key
openclaw config set plugins.entries.openviking.config.agentId your-agent-idQueueFS SQLite backend
The server semantic/vector task queues can use persistent QueueFS. When mounting the queuefs plugin directly, configure SQLite parameters like this:
{
"backend": "sqlite",
"db_path": "./data/queue.db",
"recover_stale_sec": 300,
"busy_timeout_ms": 5000
}Improvements
- Adjusted the default
recallTokenBudgetandrecallMaxContentCharsto reduce the risk of overlong OpenClaw auto-recall context injection. ov add-memorynow returnsOKfor asynchronous commit workflows instead of implying the background task has already finished.ov chatnow reads authentication fromovcli.confand sends the required request headers.- The OpenClaw plugin now aligns remote connection behavior, auth, namespace, and
role_idhandling with the server multi-tenant model.
Fixes
- Fixed Bot API channel auth checks, startup port preflight checks, and installed-version reporting.
- Fixed orphan
toolResulterrors caused by incompatible OpenClaw tool-call message formats. - Fixed console
add_resourcetarget fields, repo target URIs, filesystemmkdir, and the reindex maintenance route. - Fixed Windows
.batenvironment read/write, shell escaping,ov.confvalidation, and hardcoded paths. - Fixed LiteLLM
cache_control400 errors for Gemini + tools and added support for OpenAI reasoning model families. - Fixed S3FS directory mtime stability, Rust native build environment pollution, and SQLite database extension parsing.
Docs, Tests, and Security
- Documented VLM providers, Codex OAuth, Kimi/GLM,
write(mode=create),tools.mcp_servers,ov_tools_enable, Feishu thread settings, and VLM timeout. - Added tests for resource builds, Context Engine, the OpenClaw plugin, content write, VLM providers, setup wizard, server bootstrap, and security behavior.
- Added
SECURITY.mdand updated the README files, multilingual docs, and community QR code. - Addressed multiple code scanning and runtime security findings.
- Expanded security coverage for Bot gateway, OpenAPI auth, the werewolf demo, config validation, and local command execution.
What's Changed
- docs(channel): document ov_tools_enable config introduced in #1352 by @r266-tech in #1571
- docs(bot): document tools.mcp_servers config (#1392) by @r266-tech in #1...
v0.3.9
What's Changed
- reorg: remove golang depends by @MaojiaSheng in #1339
- Feat/mem opt by @chenjw in #1349
- fix: openai like embedding models fix, no more matryoshka error by @MaojiaSheng in #1350
- feat(bot): Add disable OpenViking config for channels. by @yeshion23333 in #1352
- fix(config): point missing-config help messages to openviking.ai docs by @Gujiassh in #1370
- fix(embedder): initialize async client state in VolcengineSparseEmbedder by @lRoccoon in #1362
- feat(examples): add Codex memory plugin example by @0xble in #1080
- feat(openclaw-plugin): add unified ov_import and ov_search by @jcp0578 in #1369
- feat(bot): add MCP client support (port from HKUDS/nanobot v0.1.5) by @ponsde in #1392
- feat(eval):Readme add qa by @yeshion23333 in #1400
- feat(cli): support for default file/dir ignore config in
ovcli.confby @sentisso in #1393 - benchmark: add LoCoMo evaluation for Supermemory by @yangxinxin-7 in #1401
- fix(embedder): report configured provider in slow-call logs by @qin-ptr in #1403
- fix(queue): preserve embedding message ids across serialization by @officialasishkumar in #1380
- test(security): add unit tests for network_guard and zip_safe modules by @sjhddh in #1395
- fix(semantic): preserve repository hierarchy in overviews by @chethanuk in #1376
- fix(tests): align pytest coverage docs with required setup (#1259) by @chethanuk in #1373
- feat: rerank support extra headers by @caisirius in #1359
- fix: reload legacy session rows by @chethanuk in #1365
- fix: protect global watch-task control files from non-root access by @Hinotoi-agent in #1396
- fix(agfs): enable agfs s3 plugin default by @chuanbao666 in #1408
- fix(claude-code-memory-plugin): improve Windows compatibility by @Castor6 in #1249
- fix(pdf): resolve bookmark page mapping by @qin-ctx in #1412
- fix: update observer test to use /models endpoint instead of non-exis… by @kaisongli in #1407
- fix(openclaw-plugin): extend default Phase 2 commit wait timeout by @yeyitech in #1415
- pref(retrieve): Optimize the search performance of larger directories by skipping redundant target_directories scope by @sponge225 in #1426
- Add third_party directory to Dockerfile by @qin-ptr in #1433
- Fix/openclaw addmsg by @chenjw in #1391
- feat(bot):Heartbeat fix by @yeshion23333 in #1434
- feat: add
openviking-server initinteractive setup wizard for local Ollama model deployment by @t0saki in #1353 - fix(volcengine): update default doubao embedding model by @qin-ctx in #1438
- feat: add Memory V2 full suite test by @kaisongli in #1354
- update new wechat group qr code by @yuyaoyoyo-svg in #1440
- feat(filesystem): support directory descriptions on mkdir by @qin-ctx in #1443
- feat(memory): default to memory v2 by @chenjw in #1445
- fix: resolve OpenClaw session file lock conflicts in oc2ov tests by @kaisongli in #1441
- fix: isolate temp scope by user within an account by @Hinotoi-agent in #1398
- fix(docker): raise Rust toolchain for ragfs image builds by @qin-ctx in #1448
- feat(metric): add metric system by @baojun-zhang in #1357
- openclaw refactor: assemble context partitioning (Instruction/Archive/Session/… by @wlff123 in #1446
- Fix/memory v2 by @chenjw in #1450
- Fix/memory v2 by @chenjw in #1452
- reorg: split parser layer to 2-layer: accessor and parser, so that we can reuse more code by @MaojiaSheng in #1428
- fix: merge error by @MaojiaSheng in #1463
- docs: document openviking-server init/doctor in README (#1454) by @r266-tech in #1455
- [security] fix(pack): block ovpack import writes to forbidden control-plane targets by @Hinotoi-agent in #1451
- feat(retrieval): add time filters to find and search by @0xble in #1429
- feat: add local llama-cpp embedding support by @Mijamind719 in #1388
- fix(release): fail wheel builds without ragfs bindings by @qin-ctx in #1466
- fix: support CI environment in upgrade_openviking.sh by @kaisongli in #1467
- feat(rust tui): add delete uri funciton with confirmation and refresh behaviour by @xiaobin83 in #696
- fix(plugin): sanitize prompt fallback in before_prompt_build to preve… by @wlff123 in #1472
- fix: error handling in CLI tui by @MaojiaSheng in #1476
- fix: downgrade embedding metadata check from fatal error to warning f… by @LinQiang391 in #1477
- fix: block CI when OpenViking server fails to start by @kaisongli in #1478
- feat(bot):Werewolf demo fix, Add one-click startup script by @yeshion23333 in #1473
- fix(code): recognize ssh clone URLs with userinfo by @yeyitech in #1421
- feat(server): add resources-only WebDAV adapter by @yeyitech in #1435
- fix(parser): Fix parser config propagation for markdown splitting by @zhoujh01 in #1480
- docs(api): align API reference with current server behavior by @qin-ctx in #1483
- Feat/memory overview by @chenjw in #1460
- fix(client): ensure session files exist when creating new session in local mode by @sponge225 in #1470
- feat(opencode-plugin): add auto recall for automatic memory context injection by @A0nameless0man in #1484
- fix(plugin): propagate toolCallId and handle user-role tool parts in … by @wlff123 in #1482
- reorg: collect all envs from everywhere, and defined in consts.py by @MaojiaSheng in #1490
- fix(cli): return actionable resource errors for fs commands by @ehz0ah in #1458
- [security] fix(bot): prevent unauthenticated remote bot control via OpenAPI HTTP routes by @Hinotoi-agent in #1447
- feat(embedding): surface non-symmetric embedding config for VikingDB provider by @mvanhorn in #1110
- refactor: organize CLI commands with category tags, add timeout flexibility by @MaojiaSheng in #1492
- feat(metric): add token-full-cycle metric by @baojun-zhang in #1488
- feat: Add Vaka LoCoMo benchmark scripts by @PowerfulLxx in #1502
- Temporary exemption to avoid compatibility issues. by @qin-ptr in #1504
- feat: vaka locomo benchmark by @PowerfulLxx in #1506
- build(deps): update litellm requirement from <1.83.1,>=1.0.0 to >=1.0.0,<1.83.9 by @dependabot[bot] in #1496
- build(deps): bump actions/github-script from 8 to 9 by @dependabot[bot] in #1494
- build(deps): bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #1495
- fix(openclaw-plugin): enforce assemble token budgets by @Mijamind719 in #1511
- fix: use abi3 for rust package by @MaojiaSheng in #1517
- feat(session): add account namespace policy and shared sessions by @qin-ctx in #1356
- Add...
v0.3.8
- Date: 2026-04-15
- Tag:
v0.3.8 - Compare: v0.3.5...v0.3.8
中文说明
OpenViking v0.3.8 主要聚焦于 Memory V2、Agent/插件生态增强,以及一批配置、检索和稳定性修复。本次版本共整理了 35 个变更项,覆盖 Memory V2、CLI、OpenClaw、Codex、VikingBot、检索性能和部署体验,并包含 8 位新贡献者。
Memory V2 专题
Memory V2 是 v0.3.8 的核心主题之一。本节重点介绍其记忆格式设计,以及模板化、结构化更新和可扩展性带来的架构优化。
- 记忆格式:
- Memory V2 不再把长期记忆限制在 v1 的固定类别里,而是改成基于 YAML 模板定义记忆类型。
- 每种记忆模板都可以定义
directory、filename_template、fields、merge_op,必要时还可以定义content_template。 - 最终写入的仍然是可读的 Markdown 记忆文件,但文件路径、文件名、字段结构和更新方式都由模板控制,文件名也更语义化,便于导航和检索。
- 内置模板已经覆盖
profile、preferences、entities、events、cases、patterns、tools、skills,并支持初始化soul.md、identity.md这类基础记忆文件。
- 重构与优化:
- v1 的问题是记忆类别、抽取提示和合并逻辑相对固定,新增类型往往需要改核心代码;Memory V2 把这部分能力抽到模板层,新增记忆类型不再需要继续硬编码。
- 抽取链路从“抽出来再做多轮合并”的思路,演进为基于 ReAct 编排的结构化
write/edit/delete操作,更新路径更统一,也更适合后续扩展。 - 通过
memory.custom_templates_dir,团队可以在不改主干逻辑的情况下扩展自己的业务记忆模板。 - 本次版本同时补充了 Memory V2 full suite test,并修复了异常响应、越界范围、额外迭代终止等边界问题,使默认开启后的稳定性更可控。
- 对用户的直接价值:
- 记忆文件更可读,目录结构和文件名更有语义。
- 记忆类型更容易扩展,不再受限于固定类别。
- 记忆更新逻辑更统一,后续做定制模板、行业知识卡片、事件索引、工具经验沉淀会更顺。
- 在 LoCoMo 评测中,Memory V2 路径的准确率达到 80%,说明这套记忆格式和更新机制不仅更灵活,也已经具备实际效果支撑。
重点更新
- Memory V2 默认开启:
- Memory V2 将长期记忆从 v1 的固定类别抽取,升级为基于 YAML 模板的记忆系统,核心链路由模板定义、ReAct 抽取编排和
write/edit/delete结构化操作组成。 - 记忆类型不再需要写死在核心代码里,内置模板可覆盖
profile、preferences、entities、events、cases、patterns、tools、skills,并可初始化soul.md、identity.md等基础记忆文件。 - Memory V2 支持通过
memory.custom_templates_dir扩展自定义模板,便于团队按业务场景定义新的记忆类型,而不必继续修改核心抽取逻辑。 - 本次版本还补充了 Memory V2 full suite test,并修复了抽取循环中的异常响应、越界范围和额外迭代终止等边界问题,默认开启后更适合直接投入真实对话流量。
- Memory V2 将长期记忆从 v1 的固定类别抽取,升级为基于 YAML 模板的记忆系统,核心链路由模板定义、ReAct 抽取编排和
- 本地部署与初始化体验:
- 新增
openviking-server init交互式向导,面向本地 Ollama 模型部署场景,支持自动检测环境、推荐模型、拉取模型并生成可用的ov.conf。 openviking-server doctor与服务端健康检查增强了对 Ollama 的识别和联通性检查,降低本地部署排障成本。
- 新增
- 插件与 Agent 生态增强:
- VikingBot 新增 MCP client 支持,可连接
stdio、SSE、streamable HTTP三类 MCP 服务,把第三方工具并入代理运行时。 - VikingBot 新增可按 channel 关闭 OpenViking 的配置,并修复 heartbeat 消息误入对话、过期 heartbeat 重复检查等问题。
- 新增 Codex memory plugin 示例,提供
openviking_recall、openviking_store、openviking_forget、openviking_health四个工具,方便在 Codex 中接入 OpenViking 长期记忆。 - OpenClaw 插件新增统一的
ov_import和ov_search,并补强会话消息捕获、tool_input透传、commit 等待超时和 trace 日志,提升接入稳定性。
- VikingBot 新增 MCP client 支持,可连接
- 配置与部署体验改进:
ovcli.conf新增upload.ignore_dirs,支持为add-resource配置默认忽略目录。- rerank 配置支持
extra_headers,便于对接 OpenAI 兼容 provider、代理层或网关。 - AGFS S3 插件默认启用;同时在 S3/OSS 兼容场景新增
disable_batch_delete,改善与部分 S3 兼容服务的适配。 - 移除了仓库中的历史 Go 依赖和 AGFS 第三方代码,简化了构建、打包和仓库维护。
- 性能与稳定性:
- 优化大目录检索,跳过冗余
target_directories作用域过滤,减少不必要的搜索开销。 - 修复 overview 生成时仓库层级丢失、embedding message ID 序列化丢失、legacy session row 重载、watch task 控制文件保护等问题。
- 改善 Claude Code memory plugin 的 Windows 兼容性,并修复 PDF 书签页码映射、OpenAI-like embedding 的 Matryoshka 报错、
VolcengineSparseEmbedder异步状态初始化,以及默认 Doubao embedding 模型更新等问题。 - 修复内存提取循环中的异常响应处理、越界范围处理和额外迭代终止逻辑,减少记忆抽取异常;同时补充 Memory V2 全量测试与一批安全/兼容性测试。
- 优化大目录检索,跳过冗余
- 其他补充:
- 文件系统新增目录描述支持,可在
mkdir场景下为目录补充语义信息。 - 仓库同步更新了新的微信交流群二维码。
- 文件系统新增目录描述支持,可在
升级提示
- 如果你经常通过 CLI 导入目录资源,建议在
ovcli.conf中配置upload.ignore_dirs,减少无关目录上传。 - 如果你需要保留旧行为,可在
ov.conf中显式设置"memory": { "version": "v1" }回退到 legacy memory pipeline。 - 如果你之前使用
ov init或ov doctor,请改用openviking-server init和openviking-server doctor。 - 如果你使用 OpenRouter 或其他 OpenAI 兼容 rerank/VLM 服务,可以通过
extra_headers注入平台要求的 Header。 - 如果你的对象存储是阿里云 OSS 或其他 S3 兼容实现,且批量删除存在兼容问题,可开启
storage.agfs.s3.disable_batch_delete。 - 如果你在做 Agent 集成,建议查看
examples/codex-memory-plugin与examples/openclaw-plugin中的新示例和工具能力。
致谢
感谢所有为 v0.3.8 提交特性、修复和文档改进的贡献者。
English Release Notes
OpenViking v0.3.8 focuses on Memory V2, stronger agent/plugin integrations, and a broad set of configuration, retrieval, and stability improvements. This release rolls up 35 tracked changes across Memory V2, the CLI, OpenClaw, Codex, VikingBot, retrieval performance, and local deployment, and it also welcomes 8 new contributors.
Memory V2 Spotlight
Memory V2 is one of the central themes of v0.3.8. This section highlights its memory format, along with the architectural improvements brought by templating, structured updates, and extensibility.
- Format:
- Memory V2 no longer treats long-term memory as a fixed set of hard-coded v1 categories. Instead, memory types are defined through YAML templates.
- Each memory template can define
directory,filename_template,fields, andmerge_op, and can optionally provide acontent_template. - The final output is still readable Markdown memory files, but the path layout, filenames, field structure, and update behavior are now template-driven. Filenames are also more semantic and easier to navigate.
- Built-in templates already cover
profile,preferences,entities,events,cases,patterns,tools, andskills, and can initialize baseline files such assoul.mdandidentity.md.
- Refactor and optimization:
- In v1, memory categories, extraction prompts, and merge behavior were relatively fixed, so adding a new memory type usually meant changing core code. Memory V2 moves that flexibility into the template layer.
- The update path evolves from a mostly extract-then-merge flow into a ReAct-orchestrated structured operation model built around
write/edit/delete. - Through
memory.custom_templates_dir, teams can extend memory behavior with domain-specific templates without modifying the main extraction pipeline. - This release also adds a full Memory V2 test suite and fixes extraction edge cases around unexpected responses, out-of-bounds ranges, and extended-iteration termination, which matters now that the path is default-on.
- What users get from this:
- More readable memory files with more meaningful directory and filename structure.
- A memory system that is easier to extend beyond a fixed category list.
- A more uniform update pipeline for future custom templates, event indexing, knowledge cards, and tool/skill experience capture.
- In LoCoMo evaluation, the Memory V2 path reached 80% accuracy, which is a useful signal that the new format and update model are not only more flexible but also practically effective.
Highlights
- Memory V2 by default:
- Memory V2 moves long-term memory beyond the fixed-category v1 pipeline into a YAML-templated system built around schema-defined memory types, ReAct-style extraction orchestration, and structured
write/edit/deleteoperations. - Memory types are no longer hard-coded in the core extractor. Built-in templates cover
profile,preferences,entities,events,cases,patterns,tools, andskills, and can initialize baseline files such assoul.mdandidentity.md. - Teams can extend the system through
memory.custom_templates_dir, making it practical to define domain-specific memory types without changing core extraction code. - This release also adds a full Memory V2 test suite and fixes several extraction edge cases, making the default-on rollout materially safer.
- Memory V2 moves long-term memory beyond the fixed-category v1 pipeline into a YAML-templated system built around schema-defined memory types, ReAct-style extraction orchestration, and structured
- Local deployment and setup:
- Added
openviking-server init, an interactive setup wizard for local Ollama-based deployments that can detect the environment, recommend models, pull them, and generate a validov.conf. - Improved
openviking-server doctorand server-side readiness checks so Ollama availability is easier to diagnose in local deployments.
- Added
- Plugin and agent ecosystem improvements:
- VikingBot now supports MCP clients and can connect to third-party MCP servers over
stdio,SSE, andstreamable HTTP. - VikingBot also adds per-channel disable controls for OpenViking and fixes heartbeat behavior so health-check traffic no longer pollutes conversations.
- Added a Codex memory plugin example with
openviking_recall,openviking_store,openviking_forget, andopenviking_healthtools for explicit long-term memory operations in Codex. - The OpenClaw plugin now exposes unified
ov_importandov_searchflows, and also improves session capture,tool_inputpropagation, commit wait behavior, and trace logging.
- VikingBot now supports MCP clients and can connect to third-party MCP servers over
- Config and deployment improvements:
ovcli.confnow supportsupload.ignore_dirssoadd-resourcecan ignore default directories out of the box.- Rerank config now supports
extra_headers, which helps when working with OpenAI-compatible providers, gateways, or custom proxies. - AGFS S3 is now enabled by default, and
disable_batch_deleteis available for S3/OSS compatibility scenarios. - Removed legacy Go-based dependencies and AGFS third-party code from the repository, simplifying builds, packaging, and maintenance.
- Performance and reliability:
- Improved retrieval performance for large directories by skipping redundant
target_directoriesscope filters when safe. - Fixed repository hierarchy loss in semantic overviews, embedding message ID serialization issues, legacy session row reload behavior, and watch-task control file protection.
- Also improved Windows compatibility for the Claude Code memory plugin, fixed PDF bookmark page mapping, resolved OpenAI-like embedding Matryoshka errors, corrected async client initialization in
VolcengineSparseEmbedder, and updated the default Doubao embedding model. - Fixed several memory extraction edge cases, including unexpected VLM response shapes, out-of-bounds extraction ranges, and extended-iteration termination behavior, and added broader Memory V2 and security test coverage.
- Improved retrieval performance for large directories by skipping redundant
- Other additions:
- The filesystem now supports directory descriptions in
mkdirflows. - The repository also updates the WeChat community QR code.
- The filesystem now supports directory descriptions in
Upgrade Notes
- If you frequently upload directories through the CLI, consider setting
upload.ignore_dirsinovcli.confto reduce noisy uploads. - If you need legacy behavior, you can explicitly set `"memory": { "version...
v0.3.5
What's Changed
- fix(memory): define config before v2 memory lock retry settings access by @heaoxiang-ai in #1317
- fix: 优化测试关键词匹配和移除 Release Approval Gate by @kaisongli in #1313
- fix: sanitize internal error details in bot proxy responses by @sjhddh in #1310
- feat: add scenario-based API tests by @kaisongli in #1303
- fix(security): remove leaked token from settings.py by @kaisongli in #1319
- Fix/add resource cover by @myysy in #1321
- Revert "Fix/add resource cover" by @MaojiaSheng in #1322
- fix: litellm embedding dimension adapts by @MaojiaSheng in #1323
- ci: optimize runner usage with conditional OS matrix and parallel limit by @kaisongli in #1327
- fix(bot):Response language, Multi user memory commit by @yeshion23333 in #1329
- ci: remove lite and full test workflows by @zhoujh01 in #1331
- docs: fix docker deployment by @MaojiaSheng in #1332
- docs(openclaw-plugin): add health check tools guide by @mrj666 in #1326
- fix(queue): expose re-enqueue counts in queue status by @qin-ctx in #1337
- feat(s3fs): add disable_batch_delete option for OSS compatibility by @yuan7he in #1333
- Fix/add resource cover by @myysy in #1338
- afterTurn: store messages with actual roles and skip heartbeat messages by @wlff123 in #1340
- fix: fall back to prefix filters for volcengine path scope by @haosenwang1018 in #1342
- fix(session): auto-create missing sessions on first add by @qin-ctx in #1348
- Fix/api test issues by @kaisongli in #1341
- fix: derive context_type from URI in index_resource by @yc111233 in #1346
New Contributors
- @sjhddh made their first contribution in #1310
- @mrj666 made their first contribution in #1326
- @yuan7he made their first contribution in #1333
Full Changelog: v0.3.4...v0.3.5
更新内容
- 修复(memory):在访问 v2 memory 锁重试配置前先定义 config,作者 @heaoxiang-ai,见 #1317
- 修复:优化测试关键词匹配,并移除 Release Approval Gate,作者 @kaisongli,见 #1313
- 修复:对 bot 代理响应中的内部错误详情进行脱敏处理,作者 @sjhddh,见 #1310
- 新增:添加基于场景的 API 测试,作者 @kaisongli,见 #1303
- 修复(security):从 settings.py 中移除泄露的 token,作者 @kaisongli,见 #1319
- 修复/新增资源封面,作者 @myysy,见 #1321
- 回滚“修复/新增资源封面”,作者 @MaojiaSheng,见 #1322
- 修复:LiteLLM 的 embedding 维度自适应,作者 @MaojiaSheng,见 #1323
- CI:通过条件式 OS 矩阵和并行数量限制优化 runner 使用,作者 @kaisongli,见 #1327
- 修复(bot):响应语言和多用户记忆提交,作者 @yeshion23333,见 #1329
- CI:移除 lite 和 full 测试工作流,作者 @zhoujh01,见 #1331
- 文档:修复 Docker 部署说明,作者 @MaojiaSheng,见 #1332
- 文档(openclaw-plugin):新增健康检查工具指南,作者 @mrj666,见 #1326
- 修复(queue):在队列状态中暴露重新入队次数,作者 @qin-ctx,见 #1337
- 新增(s3fs):添加 disable_batch_delete 选项以兼容 OSS,作者 @yuan7he,见 #1333
- 修复/新增资源封面,作者 @myysy,见 #1338
- afterTurn:按实际角色存储消息,并跳过心跳消息,作者 @wlff123,见 #1340
- 修复:为火山引擎路径作用域回退到前缀过滤器,作者 @haosenwang1018,见 #1342
- 修复(session):首次添加时自动创建缺失的会话,作者 @qin-ctx,见 #1348
- 修复:解决 API 测试问题,作者 @kaisongli,见 #1341
- 修复:在 index_resource 中从 URI 推导 context_type,作者 @yc111233,见 #1346
新贡献者
完整更新日志:v0.3.4...v0.3.5
v0.3.4
OpenViking v0.3.4
本次 v0.3.4 版本主要围绕 OpenClaw 插件与评测链路、Memory / 存储与写入稳定性、安全边界与网络控制,以及发布流程、Docker 与 CI 体系做了持续增强。相较 v0.3.3,这一版本一方面补齐了 OpenClaw 默认行为、eval 脚本、provider 扩展和多项兼容性问题,另一方面也显著加强了会话写入等待、锁与压缩器重试、HTTP 资源导入 SSRF 防护、trusted mode 限制和整体发布交付链路。
版本亮点
- OpenClaw 插件与评测体验继续完善:调整
recallPreferAbstract与ingestReplyAssist的默认值以降低意外行为,PR #1204 PR #1206;新增 OpenClaw eval shell 脚本并修复评测导入问题,PR #1287 PR #1305;同时补齐 autoRecall 搜索范围与查询清洗、截断能力,PR #1225 PR #1297。 - Memory、会话写入与运行时稳定性明显增强:写接口引入 request-scoped wait 机制,PR #1212;补强 PID lock 回收、召回阈值绕过、孤儿 compressor 引用、async contention 和 memory 语义批处理等问题,PR #1211 PR #1301 PR #1304;并继续优化 memory v2 compressor 锁重试控制,PR #1275。
- 安全与网络边界进一步收紧:HTTP 资源导入补齐私网 SSRF 防护,PR #1133;trusted mode 在无 API key 时被限制为仅允许 localhost,PR #1279;embedding circuit breaker 与日志抑制也变得可配置,PR #1277。
- 生态与集成能力继续扩展:新增 Volcengine Vector DB STS Token 支持,PR #1268;新增 MiniMax-M2.7 与 MiniMax-M2.7-highspeed provider 支持,PR #1284;AST 侧补充 Lua parser,PR #1286;Bot 新增 channel mention 能力,PR #1272。
- 发布、Docker 与 CI 链路更稳健:发布时自动更新
main并增加 Docker Hub push,PR #1229;修复 Docker maturin 路径并将 Gemini optional dependency 纳入镜像,PR #1295 PR #1254;CI 侧优化 API matrix、补充 timeout/SMTP 通知并修复 reusable workflow / action 问题,PR #1281 PR #1293 PR #1300 PR #1302 PR #1307。
升级说明
- OpenClaw 插件默认配置发生调整:
recallPreferAbstract与ingestReplyAssist现在默认均为false。如果你之前依赖默认开启行为,升级后需要显式配置,见 PR #1204 和 PR #1206。 - HTTP 资源导入现在默认更严格地防护私网 SSRF;如果你有合法的内网资源采集场景,升级时建议复核现有接入方式与白名单策略,见 PR #1133。
- trusted mode 在未提供 API key 时已限制为仅允许 localhost 访问;如果你此前通过非本地地址使用 trusted mode,需要同步调整部署与鉴权配置,见 PR #1279。
- 写接口现在引入 request-scoped wait 机制,相关调用在并发写入下的等待与返回时机会更一致;如果你有依赖旧时序的外部编排逻辑,建议升级后复核行为,见 PR #1212。
- server 已支持
host=none以使用双栈网络;如果你在 IPv4/IPv6 混合环境中部署,可考虑调整监听配置,见 PR #1273。 - Docker 镜像已纳入 Gemini optional dependency,并修复了 maturin 路径问题;如果你维护自定义镜像或发布流水线,建议同步检查构建脚本,见 PR #1254 和 PR #1295。
详细变更
OpenClaw 插件、评测与集成
- 默认将 openclaw-plugin 的
recallPreferAbstract设为false,PR #1204 by @wlff123 - 修复 eval 中的 async import 问题,PR #1203 by @yeshion23333
- 默认将 openclaw-plugin 的
ingestReplyAssist设为false,PR #1206 by @wlff123 - 向 OpenAIVLM client 增加 timeout 参数,PR #1208 by @highland0971
- 防止 redo recovery 中阻塞式 VLM 调用导致启动 hang 住,PR #1226 by @mvanhorn
- 为插件 autoRecall 增加
skills搜索范围,PR #1225 by @mvanhorn - 新增 bot channel mention 能力,PR #1272 by @yeshion23333
- 新增 OpenClaw eval shell 脚本,PR #1287 by @yeshion23333
- 新增
add_message的 create time,PR #1288 by @wlff123 - 对 OpenClaw recall query 做清洗并限制长度,PR #1297 by @qin-ctx
- 修复 OpenClaw eval 导入到 OpenViking 时默认 user 的问题,PR #1305 by @yeshion23333
Memory、会话、存储与运行时
- 修复明文文件长度小于 4 字节时 decrypt 抛出
Ciphertext too short的问题,PR #1163 by @yc111233 - 为短明文加密补充单元测试,PR #1217 by @baojun-zhang
- 修复 PID lock 回收、召回阈值绕过与 orphaned compressor refs 等问题,PR #1211 by @JasonOA888
- queuefs 去重 memory semantic parent enqueue,PR #792 by @Protocol-zero-0
- 为 decrypt 短明文场景补充回归测试,PR #1223 by @yc111233
- 为写接口实现 request-scoped wait 机制,PR #1212 by @zhoujh01
- 将 agfs 重组为 Rust 实现的 ragfs,PR #1221 by @MaojiaSheng
- 修复 session
_wait_for_previous_archive_done无限挂起问题,PR #1235 by @yc111233 - 修复
#1238、#1242和#1232涉及的问题,PR #1243 by @MaojiaSheng - Memory 侧继续做性能优化,PR #1159 by @chenjw
- 回滚 session
_wait_for_previous_archive_donetimeout 改动,PR #1265 by @MaojiaSheng - memory v2 compressor 改进锁重试控制,PR #1275 by @heaoxiang-ai
- 降低 embedder 在 session 流程中的 async contention,PR #1301 by @qin-ctx
- 在
_process_memory_directory中批量处理 semantic memory,PR #1304 by @chuanbao666
安全、网络与 Provider 生态
- 加固 HTTP 资源导入,防止私网 SSRF,PR #1133 by @13ernkastel
- Volcengine Vector DB 支持 STS Token,PR #1268 by @baojun-zhang
- server 支持
host none以启用双栈网络,PR #1273 by @zhoujh01 - 无 API key 时将 trusted mode 限制为 localhost,PR #1279 by @zhoujh01
- embedding circuit breaker 与日志抑制支持配置化,PR #1277 by @baojun-zhang
- 新增 MiniMax-M2.7 与 MiniMax-M2.7-highspeed provider 支持,PR #1284 by @octo-patch
- 为 AST 新增 Lua parser 支持,PR #1286 by @Shawn-cf-o
- 为 Lark 集成补充
lark-oapi,PR #1285 by @zhoujh01
文档、打包、Docker 与 CI
- 增加 Claude Code Memory Plugin 示例链接与中文文档,PR #1228 by @Castor6
add-resource处理非 UTF-8 文件名,PR #1224 by @mvanhorn- 发布时更新 main,并增加 Docker Hub push,PR #1229 by @MaojiaSheng
- 更新微信群二维码,PR #1282 by @yuyaoyoyo-svg
- 将 API 测试矩阵从 5 个 channel 优化为 3 个,PR #1281 by @kaisongli
- 增加中英文 prompt guide 文档,PR #1292 by @zhoujh01
- 增加面向 mem0 的 LoCoMo benchmark 脚本,PR #1290 by @yangxinxin-7
- 修复 Docker 中的 maturin 路径问题,PR #1295 by @zhoujh01
- 在 Docker 镜像中纳入 Gemini optional dependency,PR #1254 by @SeeYangZhi
- CI 增加 timeout 与 SMTP 失败通知,PR #1293 by @kaisongli
- 修复 reusable build workflow 的 YAML block 问题,PR #1300 by @zhoujh01
- 新增 ovpack 递归向量化所有导入文档的能力,PR #1294 by @sponge225
- 改进 oc2ov 自动化测试,PR #1280 by @kaisongli
- 移除不允许的 notify-failure action,PR #1302 by @kaisongli
- 修复 CI,PR #1307 by @zhoujh01
新贡献者
- @highland0971 made their first contribution in PR #1208
- @yc111233 made their first contribution in PR #1163
- @octo-patch made their first contribution in PR #1284
- @SeeYangZhi made their first contribution in PR #1254
Full Changelog: v0.3.3...v0.3.4
What's Changed
- fix(openclaw-plugin): default recallPreferAbstract to false by @wlff123 in https://github.com/volcengine/OpenVi...
v0.3.3
OpenViking v0.3.3
本次 v0.3.3 版本主要围绕评测与写入能力、OpenClaw 插件与集成体验、会话与资源导入链路、稳定性与安全性,以及测试与 CI 体系做了集中增强。相较 v0.3.2,这一版本一方面补齐了 benchmark / eval / write 等面向落地使用的能力,另一方面也明显加强了 OpenClaw 插件的可观测性、健康检查、容错和测试覆盖,同时修复了若干会直接影响生产使用的锁处理、任务权限、ZIP 编码、资源导入与 embedder 参数问题。
Highlights
- 评测与写入能力继续扩展:新增 RAG benchmark 评测框架 PR #825,补充 OpenClaw 的 LoCoMo eval 脚本与说明 PR #1152,并新增内容写入接口 PR #1151。
- OpenClaw 插件可用性显著增强:补充架构文档与图示 PR #1145,安装器不再覆盖
gateway.modePR #1149,新增端到端 healthcheck 工具 PR #1180,支持 bypass session patterns PR #1194,并在 OpenViking 故障时避免阻塞 OpenClaw PR #1158。 - 测试与 CI 覆盖大幅补强:OpenClaw 插件新增大规模单测套件 PR #1144,补充 e2e 测试 PR #1154,新增 OpenClaw2OpenViking 集成测试与 CI 流水线 PR #1168。
- 会话、解析与导入链路更稳健:支持创建 session 时指定
session_idPR #1074,CLI 聊天端点优先级与grep --exclude-uri/-x能力得到增强 PR #1143 PR #1174,目录导入 UX / 正确性与扫描 warning 契约也进一步改善 PR #1197 PR #1199。 - 稳定性与安全性继续加固:修复任务 API ownership 泄露问题 PR #1182,统一 stale lock 处理并补充 ownership checks PR #1171,修复 ZIP 乱码 PR #1173、embedder dimensions 透传 PR #1183、语义 DAG 增量更新缺失 summary 场景 PR #1177 等问题。
Upgrade Notes
- OpenClaw 插件安装器不再写入
gateway.mode。如果你之前依赖安装流程自动改写该配置,升级后需要改为显式管理,见 PR #1149。 - 如果你使用
--with-bot进行安装或启动,失败时现在会直接返回错误码;依赖“失败但继续执行”行为的脚本需要同步调整,见 PR #1175。 - 如果你接入 OpenAI Dense Embedder,自定义维度参数现在会正确传入
embed();此前依赖默认维度行为的调用方建议复核配置,见 PR #1183。 ov status现在会展示 embedding 与 rerank 模型使用情况,便于排障与环境核对,见 PR #1191。- 检索侧曾尝试加入基于 tags metadata 的 cross-subtree retrieval PR #1162,但已在本版本窗口内回滚 PR #1200,因此不应将其视为
v0.3.3的最终可用能力。 litellm依赖范围更新为>=1.0.0,<1.83.1,升级时建议同步检查锁文件与兼容性,见 PR #1179。
What's Changed
Benchmark, Eval, CLI, and Writing
- 新增 RAG benchmark 系统评测框架,PR #825 by @sponge225
- 优化 CLI chat endpoint 配置优先级,PR #1143 by @ruansheng8
- 新增 OpenClaw 的 LoCoMo eval 脚本与 README,PR #1152 by @yeshion23333
- 新增内容写入接口,PR #1151 by @zhoujh01
ov cli grep新增--exclude-uri/-x选项,PR #1174 by @heaoxiang-ai- 更新 rerank 配置文档,PR #1138 by @ousugo
OpenClaw Plugin, OpenCode Plugin, Bot, and Console
- 刷新 OpenClaw 插件架构文档并补充图示,PR #1145 by @qin-ctx
- 修复 OpenClaw 插件安装器不应写入
gateway.mode,PR #1149 by @LinQiang391 - 处理 OpenViking 故障时不再阻塞 OpenClaw,PR #1158 by @wlff123
- 新增 OpenClaw 插件端到端 healthcheck 工具,PR #1180 by @wlff123
- 新增 bypass session patterns 支持,PR #1194 by @Mijamind719
- 修复 OpenCode 插件在当前 main 上恢复 stale commit state 的问题,PR #1187 by @13ernkastel
- 新增 Bot 单通道(BotChannel)集成与 Werewolf demo,PR #1196 by @yeshion23333
- console 支持 account user agentid,PR #1198 by @zhoujh01
Sessions, Retrieval, Parsing, and Resource Import
- 支持创建 session 时指定
session_id,PR #1074 by @likzn - 修复 reindex 时 memory
context_type的 URI 匹配逻辑,PR #1155 by @deepakdevp - ZIP 下载在可用时使用
GITHUB_TOKEN,PR #1146 by @jellespijker - 统一异步 commit API 文档与示例,PR #1188 by @qin-ctx
- 目录导入时改善用户体验与正确性,PR #1197 by @yangxinxin-7
- 修复扫描 warning 契约与 Python SDK 默认值,PR #1199 by @yangxinxin-7
- 新增
.inl文件扩展名支持,PR #1176 by @myysy - 修复 semantic DAG 增量更新时 summary 缺失场景,PR #1177 by @myysy
- 引入 tags metadata 的 cross-subtree retrieval 尝试,PR #1162 by @13ernkastel
- 回滚 tags metadata 的 cross-subtree retrieval 变更,PR #1200 by @zhoujh01
Stability, Runtime, and Security
- 新增 OpenClaw 插件大规模单测套件,PR #1144 by @huangxun375-stack
- 新增
tests/ut/e2e端到端测试,PR #1154 by @huangxun375-stack - 新增 OpenClaw2OpenViking 集成测试与 CI 流水线,PR #1168 by @kaisongli
- Windows 上因 FUSE 兼容性问题跳过 filesystem tests,PR #1156 by @kaisongli
- 统一 stale lock 处理并增加 ownership checks,PR #1171 by @qin-ctx
- 修复 ZIP 文件乱码问题,PR #1173 by @zhoujh01
--with-bot失败时改为显式退出并返回错误,PR #1175 by @MaojiaSheng- 修复 OpenAI Dense Embedder 未透传 dimensions 的问题,PR #1183 by @LinQiang391
- 修复 Task API ownership 泄露安全问题,PR #1182 by @13ernkastel
ov status现在展示 embedding 与 rerank 模型使用情况,PR #1191 by @MaojiaSheng
Build and Dependencies
- 更新
litellm依赖范围到>=1.0.0,<1.83.1,PR #1179 by @dependabot[bot] - 升级
actions/cache从 4 到 5,PR #1178 by @dependabot[bot]
New Contributors
- @ruansheng8 made their first contribution in PR #1143
- @jellespijker made their first contribution in PR #1146
- @heaoxiang-ai made their first contribution in PR #1174
- @ousugo made their first contribution in PR #1138
Full Changelog: v0.3.2...v0.3.3
What's Changed
- Feat(benchmark): Add benchmark/RAG : RAG system evaluation framework by @sponge225 in #825
- docs(openclaw-plugin): refresh architecture guides with diagrams by @qin-ctx in #1145
- fix(openclaw-plugin): stop writing gateway.mode from installers by @LinQiang391 in #1149
- test(openclaw-plugin): add comprehensive UT suite under tests/ut/ (27… by @huangxun375-stack in #1144
- feat(cli): improve chat endpoint configuration priority by @ruansheng8 in #1143
- feat(eval): add locomo eval scripts for openclaw and readme by @yeshion23333 in #1152
- add e2e test under tests/ut/e2e by @huangxun375-stack in #1154
- Handle OpenViking outages without blocking OpenClaw by @wlff123 in #1158
- fix(ci): skip filesystem tests on Windows due to FUSE compatibility by @kaisongli in #1156
- feat(write): add content write interface by @zhoujh01 in #1151
- fix(summarizer): use correct URI matching for memory context_type during reindex by @deepakdevp in #1155
- fix(parser): use GITHUB_TOKEN for ZIP downloads if available by @jellespijker in #1146
- feat: Add OpenClaw2OpenViking integration tests with CI pipeline by @kaisongli in #1168
- fix(transaction): unify stale lock handling with ownership checks by @qin-ctx in #1171
- fix(zip): Fix garbled characters by @zhoujh01 in #1173
- fix: exit with error if --with-bot fail by @MaojiaSheng in https://gi...
v0.3.2
What's Changed
- Chore/pr agent ark token billing by @qin-ptr in #1117
- Fix HTTPX recognition issue with SOCKS5 proxy causing OpenViking crash by @wlff123 in #1118
- refactor(model): unify config-driven retry across VLM and embedding by @qin-ctx in #926
- fix(bot): import eval session time by @yeshion23333 in #1121
- docs(examples): retire legacy integration examples by @qin-ctx in #1124
- fix(ci): skip filesystem tests on Windows due to FUSE compatibility by @kaisongli in #1111
- docs(docker): use latest image tag in examples by @qin-ctx in #1125
- upload the new wechat group qrcode by @yuyaoyoyo-svg in #1127
- Unify test directory in openclaw-plugin by @wlff123 in #1128
- docs(guides):Add concise OVPack guide in Chinese and English by @sponge225 in #1126
- docs(guides): reorganize observability documentation by @qin-ctx in #1130
- fix(installer): fall back to official PyPI when mirror lags by @qin-ctx in #1131
- feat(docker) add vikingbot and console by @zhoujh01 in #1134
- fix(vlm): rollback ResponseAPI to Chat Completions, keep tool calls by @chenjw in #1137
- feat(openclaw-plugin): add session-pattern guard for ingest reply assist by @Mijamind719 in #1136
Full Changelog: v0.3.1...v0.3.2
v0.3.1
What's Changed
- feat(ast): add PHP tree-sitter support by @yangxinxin-7 in #1087
- feat(ci): add multi-platform API test support for 5 platforms by @kaisongli in #1093
- fix(ci): refresh uv.lock for docker release build by @zhoujh01 in #1094
- fix(openclaw-plugin): simplify install flow and harden helpers by @qin-ctx in #1095
- fix(openclaw-plugin): preserve existing ov.conf on auto install by @qin-ctx in #1098
- ci: build docker images natively per arch by @zhoujh01 in #1100
- Feature/memory opt by @chenjw in #1099
- feat(storage): add auto language detection for semantic summary generation by @likzn in #1076
- feat(prompt) support configurable prompt template directories by @zhoujh01 in #1096
- feat: unify config-driven retry across VLM and embedding by @snemesh in #1049
- feat(bot): import ov eval script by @yeshion23333 in #1108
- Revert "feat: unify config-driven retry across VLM and embedding" by @qin-ptr in #1113
- fix(storage) Fix parent_uri compatibility with legacy records by @zhoujh01 in #1107
- fix(session): unify archive context abstracts by @qin-ctx in #1104
New Contributors
Full Changelog: v0.2.15...v0.3.1
v0.2.14
OpenViking v0.2.14
本次 v0.2.14 版本主要围绕多租户能力、解析导入链路、OpenClaw 插件体验、Bot/Feishu 集成,以及服务端稳定性与安全性做了集中增强。
Highlights
- 多租户与身份管理进一步完善。CLI 已支持租户身份默认值与覆盖,文档新增多租户使用指南,memory 也支持仅按 agent 维度隔离的
agent-onlyscope。 - 解析与导入链路更完整。图片解析新增 OCR 文本提取,目录导入识别
.cc文件,重复标题导致的文件名冲突得到修复,HTTP 上传链路改为更稳妥的 upload id 流程。 - OpenClaw 插件显著增强。安装器与升级流程统一,默认按最新 Git tag 安装,session API 与 context pipeline 做了统一重构,并补齐了 Windows、compaction、compact result mapping、子进程重拉起等多处兼容性与稳定性问题。
- Bot 与 Feishu 集成可用性继续提升。修复了 bot proxy 未鉴权问题,改进了 Moonshot 请求兼容性,并升级了 Feishu interactive card 的 markdown 展示体验。
- 存储与运行时稳定性持续提升。包括 queuefs embedding tracker 加固、vector store 移除
parent_uri、Docker doctor 检查对齐,以及更细粒度的 eval token 指标。
Upgrade Notes
- Bot proxy 接口
/bot/v1/chat与/bot/v1/chat/stream已补齐鉴权,依赖未鉴权访问的调用方需要同步调整,见 #996。 - 裸 HTTP 导入本地文件/目录时,推荐按
temp_upload -> temp_file_id的方式接入上传链路,见 #1012。 - OpenClaw 插件的 compaction delegation 修复要求
openclaw >= v2026.3.22,见 #1000。 - OpenClaw 插件安装器现在默认跟随仓库最新 Git tag 安装,如需固定版本可显式指定,见 #1050。
What's Changed
Multi-tenant, Memory, and Identity
- 支持 CLI 租户身份默认值与覆盖,#1019 by @zhoujh01
- 支持仅按 agent 隔离的 agent memory scope,#954 by @liberion1994
- 新增多租户使用指南文档,#1029 by @qin-ctx
- 在 quickstart 和 basic usage 中补充
user_key与root_key的区别说明,#1077 by @r266-tech - 示例中支持将 recalled memories 标记为 used,#1079 by @0xble
Parsing and Resource Import
- 新增图片解析 OCR 文本提取能力,#942 by @mvanhorn
- 修复重复标题导致的合并文件名冲突,#1005 by @deepakdevp
- 目录导入时识别
.cc文件,#1008 by @qin-ctx - 增加对非空 S3 目录 marker 的兼容性,#997 by @zhoujh01
- HTTP 上传链路从临时路径切换为 upload id,#1012 by @qin-ctx
- 修复从目录上传时临时归档文件丢失
.zip后缀的问题,#1021 by @Shawn-cf-o
OpenClaw Plugin and Installer
- 回滚 duplicate registration guard 的加固改动,#995 by @qin-ptr
- Windows 下 mapped session ID 做安全清洗,#998 by @qin-ctx
- 使用 plugin-sdk exports 实现 compaction delegation,修复
#833,要求openclaw >= v2026.3.22,#1000 by @jcp0578 - 统一 installer 升级流程,#1020 by @LinQiang391
- 默认按最新 Git tag 安装 OpenClaw 插件,#1050 by @LinQiang391
- 统一 session APIs,并重构 OpenClaw context pipeline 以提升一致性、可维护性和测试覆盖,#1040 by @wlff123
- 将 openclaw-plugin 的
DEFAULT_COMMIT_TOKEN_THRESHOLD调整为20000,#1052 by @wlff123 - 为 OpenViking 子进程增加防御式重拉起机制,#1053 by @huangxun375-stack
- 对齐 agent routing 并降低默认日志噪音,#1054 by @LinQiang391
- 修复 compact result mapping,#1058 by @jcp0578
- 移除
ov_archive_expand中重复声明的const sessionId,#1059 by @evaldass - 新增 Claude Code memory plugin 示例,#903 by @Castor6
Bot, Feishu, and Security
- 修复 Bot Proxy 接口
/bot/v1/chat、/bot/v1/chat/stream的未鉴权访问问题,#996 by @13ernkastel - 调整 tool content role 为
user,并优化 Feishuon_message,#1023 by @yeshion23333 - 修复/增强 Moonshot 请求错误处理,#1026 by @Linsiyuan9
- 进一步修复 Moonshot invalid request 问题,#1028 by @Linsiyuan9
- Feishu 消息升级为支持 markdown 的 interactive card v2,#1015 by @r266-tech
- 根据 review feedback 打磨 interactive card 细节,#1046 by @r266-tech
Storage, Runtime, Examples, and Tooling
- 加固 queuefs embedding tracker 在多 worker loop 下的行为,#1024 by @qin-ctx
- vector store 移除
parent_uri,#1042 by @zhoujh01 - 为 eval 增加 embedding token 统计,并让任务结果返回 token 信息,#1038 by @yeshion23333
- 对齐 Docker doctor 中的 AGFS 检查与内置 pyagfs 版本,#1044 by @zhoujh01
- 新增 werewolf game demo,#1025 by @yuyaoyoyo-svg
Build and Dependencies
- 升级
actions/checkout从 4 到 6,#1002 by @dependabot[bot] - 升级
actions/cache从 4 到 5,#1001 by @dependabot[bot]
New Contributors
- @Linsiyuan9 在 #1026 完成了首次贡献
- @Shawn-cf-o 在 #1021 完成了首次贡献
- @liberion1994 在 #954 完成了首次贡献
- @Castor6 在 #903 完成了首次贡献
- @huangxun375-stack 在 #1053 完成了首次贡献
- @evaldass 在 #1059 完成了首次贡献
- @0xble 在 #1079 完成了首次贡献
Full Changelog: v0.2.13...v0.2.14
What's Changed
- Revert "fix(openclaw-plugin): harden duplicate registration guard" by @qin-ptr in #995
- Add non-empty S3 directory marker compatibility by @zhoujh01 in #997
- fix(openclaw-plugin): sanitize mapped session IDs for Windows by @qin-ctx in #998
- fix(parse): prevent merged filename collision on duplicate headings by @deepakdevp in #1005
- build(deps): bump actions/checkout from 4 to 6 by @dependabot[bot] in #1002
- build(deps): bump actions/cache from 4 to 5 by @dependabot[bot] in #1001
- fix(parse): recognize .cc files during directory import by @qin-ctx in #1008
- fix(openclaw-plugin): use plugin-sdk exports for compaction delegation (fixes #833) openclaw ≥ v2026.3.22 by @jcp0578 in #1000
- feat(cli): support tenant identity defaults and overrides by @zhoujh01 in #1019
- fix(bot): Change tool content role to user, opt feishu on_message by @yeshion23333 in #1023
- feat(bot): Error calling LLM: litellm.BadRequestError: MoonshotExcept… by @Linsiyuan9 in #1026
- feat(bot): use interactive card with markdown for Feishu messages (v2) by @r266-tech in #1015
- werewolf game demo by @yuyaoyoyo-svg in #1025
- fix(queuefs): harden embedding tracker across worker loops by @qin-ctx in #1024
- feat(installer, openclaw-plugin): unified installer upgrade by @LinQiang391 in #1020
- fix(http): replace temp paths with upload ids by @qin-ctx in #1012
- Fix Unauthenticated Access to Bot Proxy Endpoints (/bot/v1/chat, /bot/v1/chat/stream) by @13ernkastel in #996
- Fix/moonshot invalid request by @Linsiyuan9 in #1028
- feat(parse): implement OCR text extraction for image parser by @mvanhorn in #942
- fix(ov-cli): preserve .zip suffix for temp archives uploaded from directories by @Shawn-cf-o in #1021
- feat(memory): support agent-only agent memory scope by @liberion1994 in #954
- docs(concepts): add multi-tenant usage guide by @qin-ctx in #1029
- feat(claude-code-plugin): add Claude Code memory plugin example by @Castor6 in #903
- feat(eval): add emb token, get task add token result by @yeshion23333 in #1038
- fix(docker): align doctor AGFS check with bundled pyagfs by @zhoujh01 in #1044
- feat(openclaw-plugin): default plugin install to latest Git tag by @LinQiang391 in #1050
- refactor(openclaw-plugin): Unified session APIs and refactored the OpenClaw context pipeline for more consistent behavior, better maintainability, and stronger test coverage. by @wlff123 in #1040
- set DEFAULT_COMMIT_TOKEN_THRESHOLD to 20000 for openclaw-plugin by @wlff123 in https://g...
v0.2.13
What's Changed
- test: add comprehensive unit tests for core utilities by @xingzihai in #990
- fix(vlm): scope LiteLLM thinking param to DashScope providers only by @deepakdevp in #958
- Api test:improve API test infrastructure with dual-mode CI by @kaisongli in #950
- docs: Add basic usage example and Chinese documentation for examples by @xingzihai in #979
- Fix Windows engine wheel runtime packaging by @zhoujh01 in #993
- fix(openclaw-plugin): harden duplicate registration guard by @qin-ctx in #974
New Contributors
- @xingzihai made their first contribution in #990
- @kaisongli made their first contribution in #950
Full Changelog: v0.2.12...v0.2.13