v2.8.6
siddharthvaddem/openscreenv2.8.6Jul 30, 2026by ysolanky
AI Summary
This release introduces a text-to-speech toolkit for Smallest AI, OpenSearch vector database support, and performance optimizations for AgentOS metrics.
Key Highlights
- Added SmallestTools text-to-speech toolkit with lightning_v3.1 models
- Added OpenSearch vector database support with vector, keyword, and hybrid search
- Optimized tool wrapping performance by caching Pydantic version lookups
- Fixed AgentOS metrics refresh to prevent blocking uvicorn workers
New Features
- text_to_speech and get_voices tools in SmallestTools
- GET /metrics/refresh/status API endpoint
- OpenSearch vector, keyword, and hybrid search database support
Full Release Notes
# Changelog
## New Features
- **Smallest AI**: Added `SmallestTools`, a text-to-speech toolkit for Smallest AI with `text_to_speech` (returns audio as a `ToolResult` artifact, optionally saved to disk) and `get_voices`. Supports the `lightning_v3.1` and `lightning_v3.1_pro` models.
- **AgentOS**: Added `GET /metrics/refresh/status` to observe background metrics refreshes:
- Reports `idle`, `running`, `completed` or `failed` with `started_at`, `finished_at` and `error`, so clients can poll for completion instead of timing out silently. The state updates even when a refresh finishes without writing new data.
- Available on the client as `AgentOSClient.get_metrics_refresh_status()`
- **OpenSearch**: Added `OpenSearch` vector database support (`agno.vectordb.opensearch`) with vector, keyword and hybrid search in both sync and async variants, installable via the `agno[opensearch]` extra. Includes cookbook examples and a `run_opensearch.sh` script for local setup.
## Improvements
- **Tools**: Cached the Pydantic version lookup during tool wrapping. The package metadata was re-read on every wrap, which made repeated tool wrapping a hot path (100-wrap benchmark: 65.9 ms to 11.0 ms).
## Bug Fixes
- **AgentOS**: `POST /metrics/refresh` no longer blocks uvicorn workers on large datasets:
- The sync `calculate_metrics()` call now runs in the threadpool, so other requests keep flowing during a refresh. Same 200 + metrics list response as before.
- New opt-in `?background=true` query param returns 202 immediately and runs the refresh as a background task. Background refreshes are single-flight per database.
- `GET /metrics` with a sync `BaseDb` also moves its lazy refresh to the threadpool.
- **Encoding**: Text-mode `open()` calls now pass explicit `encoding="utf-8"`, so JSON cache and config files written on one platform stay readable on another (Windows defaults to `cp1252`).
## What's Changed
* feat: add Smallest AI text-to-speech toolkit by @harshitajain165 in https://github.com/agno-agi/agno/pull/9015
* docs: fix broken links in cookbook READMEs and CONTRIBUTING.md by @devdattatalele in https://github.com/agno-agi/agno/pull/9195
* [fix] Cache Pydantic version lookup during tool wrapping by @basnijholt in https://github.com/agno-agi/agno/pull/9210
* fix: add explicit encoding="utf-8" to text-mode open() calls by @Ghraven in https://github.com/agno-agi/agno/pull/7984
* fix: run metrics refresh in background to avoid blocking workers by @Mustafa-Esoofally in https://github.com/agno-agi/agno/pull/9263
* feat: support opensearch db by @anhphong22 in https://github.com/agno-agi/agno/pull/3611
* chore: release 2.8.6 by @ysolanky in https://github.com/agno-agi/agno/pull/9271
## New Contributors
* @harshitajain165 made their first contribution in https://github.com/agno-agi/agno/pull/9015
* @devdattatalele made their first contribution in https://github.com/agno-agi/agno/pull/9195
* @anhphong22 made their first contribution in https://github.com/agno-agi/agno/pull/3611
**Full Changelog**: https://github.com/agno-agi/agno/compare/v2.8.5...v2.8.6