Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions docs/en/about/02-changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,45 @@
All notable changes to OpenViking will be documented in this file.
This changelog is automatically generated from [GitHub Releases](https://github.com/volcengine/OpenViking/releases).

## v0.3.21 (2026-05-27)

### Highlights

- **More retrievable trajectory memory**: The trajectory schema now has `retrieval_anchor` and an `embedding_template`, so vector indexing uses `trajectory_name + retrieval_anchor` instead of the full operation contract. Experiences and trajectories are connected with system-managed `derived_from` `StoredLink` records (forward `links` + reverse `backlinks`), replacing fragile `source_trajectories` metadata.
- **Batch session message ingestion**: Added `POST /api/v1/sessions/{session_id}/messages/batch` and `ov session add-messages` to add multiple messages in one call (useful for history import and memory extraction); `ov add-memory` now uses the same stricter JSON message parser.
- **OpenClaw search is now `ov_search`**: The OpenViking OpenClaw plugin no longer registers `memory_search`, avoiding collisions with OpenClaw built-ins. Use `ov_search` or `/ov-search` after importing resources or skills.
- **Stronger URL and document parsing**: HTTP import detection now recognizes image, audio, video, Office, EPUB, and zip downloads, and re-checks headers after `GET` when `HEAD` is unreliable. Local Word/PowerPoint/Excel/EPUB/legacy-doc conversions now run in worker threads so they no longer block the event loop.
- **Web Studio ships with Python installs**: `setup`/`build` now builds and bundles the Web Studio static assets, so `/studio` works from pip/pipx installs without Docker.
- **NVIDIA NIM through LiteLLM VLM**: Model names containing `nvidia_nim` or `nemotron` now route through the NVIDIA NIM LiteLLM prefix and `NVIDIA_NIM_API_KEY`.
- **tau2/VikingBot benchmark runner**: Added `benchmark/tau2/vikingbot` for cold start, train trajectory commits, repeated test averaging, and cross-epoch self-improvement; the previous tau2 LLM harness moved to `benchmark/tau2/llm`.

### Upgrade Notes

- OpenClaw users should migrate `/memory-search` and `memory_search` calls to `/ov-search` and `ov_search`.
- pip/pipx and Docker builds now produce the Web Studio bundle through the Python build path; set `OV_SKIP_STUDIO_BUILD=1` to skip the Studio build during local development.
- `content.read` adds a `raw=true` parameter; default reads still hide memory internals for compatibility.

[Full Changelog](https://github.com/volcengine/OpenViking/compare/v0.3.20...v0.3.21)

## v0.3.20 (2026-05-25)

### Highlights

- **Request-scoped HTTP profiling**: Servers can enable `server.profile_enabled`; requests with `profile=1` then run `cProfile` for only that HTTP request and append `profile` lines to JSON responses. The `ov` CLI can enable and display this with `--profile`.
- **Batch Session message ingestion**: Added `POST /api/v1/sessions/{session_id}/messages/batch` plus Python HTTP client and Session wrapper support via `batch_add_messages` (up to 100 messages per request), reducing HTTP round trips for LangChain/LangGraph-style integrations.
- **Memory embedding templates**: Memory schemas now support a top-level `embedding_template`, replacing field-level `searchable` flags. The built-in `entities`, `events`, and `preferences` templates include key fields plus final content in embedding input.
- **Semantic indexing reliability**: Resource processing now syncs temp source trees into the target before running the semantic DAG (diff results use target URIs); stale semantic lock handoffs can be recovered by reacquiring tree locks, and lock acquisition failures requeue work instead of tripping the API circuit breaker.
- **Embedding input guardrails**: Embedding queue input is truncated according to `embedding.max_input_tokens`, and oversized-input errors are classified as `input_too_large` to avoid repeated retries for unrecoverable payloads.

### Upgrade Notes

- If a custom memory schema still uses field-level `searchable: true`, migrate it to top-level `embedding_template`; field-level `searchable` no longer contributes to embedding text generation.
- Rename `memory.enable_role_id_memory_isolate` to `memory.role_id_memory_isolation_enabled` in custom `ov.conf` files.
- Treat `profile=1` as a debugging tool, not a high-traffic production default. Profile output is capped at about 16 KiB.
- The batch message endpoint accepts up to 100 messages per request.

[Full Changelog](https://github.com/volcengine/OpenViking/compare/v0.3.19...v0.3.20)

## v0.3.19 (2026-05-22)

### Highlights
Expand Down
39 changes: 39 additions & 0 deletions docs/zh/about/02-changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,45 @@
OpenViking 的所有重要变更都将记录在此文件中。
此更新日志从 [GitHub Releases](https://github.com/volcengine/OpenViking/releases) 自动生成。

## v0.3.21 (2026-05-27)

### 重点更新

- **Trajectory 记忆更适合检索与复盘**:trajectory schema 新增 `retrieval_anchor` 和 `embedding_template`,索引文本从完整内容收敛为 `trajectory_name + retrieval_anchor`;experience 与 trajectory 之间改为系统维护的 `derived_from` `StoredLink`,写入正向 `links` 与反向 `backlinks`,替代易丢失的 `source_trajectories` 元数据。
- **会话消息支持批量写入**:REST API 新增 `POST /api/v1/sessions/{session_id}/messages/batch`,CLI 新增 `ov session add-messages`,适合导入历史对话或一次写入多轮消息;`ov add-memory` 也复用同一套严格 JSON 消息解析。
- **OpenClaw 搜索工具改名为 `ov_search`**:OpenViking OpenClaw 插件不再注册 `memory_search`,避免与 OpenClaw 内置工具冲突;导入 resource/skill 后统一使用 `ov_search` 和 `/ov-search`。
- **资源解析与二进制 URL 判断增强**:HTTP accessor 扩展图片、音频、视频和 Office/EPUB/zip 文档类型识别;当 `HEAD` 不可靠时会在 `GET` 后用响应头重新判断。Word、PowerPoint、Excel、EPUB、legacy doc 等本地转换路径改为线程中执行,不再阻塞事件循环。
- **Web Studio 随 Python 安装包分发**:`setup`/`build` 会构建并打包 Web Studio 静态资源,pip/pipx 安装后 `/studio` 可直接使用,无需 Docker。
- **LiteLLM VLM 增加 NVIDIA NIM 路由**:模型名中包含 `nvidia_nim` 或 `nemotron` 时可自动走 NVIDIA NIM 的 LiteLLM 前缀和 `NVIDIA_NIM_API_KEY` 环境变量。
- **tau2/VikingBot 评测升级**:新增 `benchmark/tau2/vikingbot` 端到端 runner,支持 cold start、train trajectory commit、test 多次平均和跨 epoch 自改进评测;原 tau2 LLM harness 移到 `benchmark/tau2/llm`。

### 升级说明

- OpenClaw 用户需要把旧的 `/memory-search` 和 `memory_search` 调用迁移到 `/ov-search` 与 `ov_search`。
- pip/pipx 和 Docker 构建链路现在统一通过 Python build 流程产出 Web Studio bundle;本地开发若不希望构建 Studio,可使用 `OV_SKIP_STUDIO_BUILD=1` 跳过。
- `content.read` 新增 `raw=true` 参数;默认行为仍会隐藏 memory 内部字段,兼容已有调用方。

[完整变更记录](https://github.com/volcengine/OpenViking/compare/v0.3.20...v0.3.21)

## v0.3.20 (2026-05-25)

### 重点更新

- **请求级 HTTP profiling**:服务端新增 `server.profile_enabled` 开关。开启后,请求带 `profile=1` 时会对当前 HTTP 请求启用 `cProfile`,并在 JSON 响应中追加 `profile` 行数组。`ov` CLI 新增 `--profile` 入口并能保留、展示 profile 输出。
- **批量 Session 消息写入**:新增 `POST /api/v1/sessions/{session_id}/messages/batch` 和 Python HTTP client / Session wrapper 的 `batch_add_messages`,一次请求最多写入 100 条消息,减少 LangChain/LangGraph 等集成连续写消息时的 HTTP 往返。
- **记忆向量化输入模板**:记忆 schema 新增顶层 `embedding_template`,替代字段级 `searchable` 标记。默认的 `entities`、`events`、`preferences` 模板现在会把关键字段和正文一起用于 embedding,提高语义召回命中。
- **语义索引与锁稳定性**:resource 处理会先把 temp source 同步到 target 后再执行语义 DAG,diff 结果使用 target URI;语义锁 handoff 失效时会尝试重新获取 tree lock,锁冲突类错误会重排队而不是误触发 API circuit breaker。
- **Embedding 输入保护**:embedding 队列会按 `embedding.max_input_tokens` 截断输入,并把过大输入错误分类为 `input_too_large`,避免对不可恢复的大输入反复重试。

### 升级说明

- 自定义 memory schema 如果还在字段上使用 `searchable: true`,应迁移到顶层 `embedding_template`。字段级 `searchable` 已不再参与 embedding 文本生成。
- 配置项 `memory.enable_role_id_memory_isolate` 已统一为 `memory.role_id_memory_isolation_enabled`,请更新自定义 `ov.conf`。
- `profile=1` 是调试能力,不建议在高流量生产路径默认开启;返回内容最多保留约 16 KiB profile 文本。
- 批量消息 API 单次最多接受 100 条消息。

[完整变更记录](https://github.com/volcengine/OpenViking/compare/v0.3.19...v0.3.20)

## v0.3.19 (2026-05-22)

### 重点更新
Expand Down