Changelog
New Features
- Smallest AI: Added
SmallestTools, a text-to-speech toolkit for Smallest AI withtext_to_speech(returns audio as aToolResultartifact, optionally saved to disk) andget_voices. Supports thelightning_v3.1andlightning_v3.1_promodels. - AgentOS: Added
GET /metrics/refresh/statusto observe background metrics refreshes:- Reports
idle,running,completedorfailedwithstarted_at,finished_atanderror, 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()
- Reports
- OpenSearch: Added
OpenSearchvector database support (agno.vectordb.opensearch) with vector, keyword and hybrid search in both sync and async variants, installable via theagno[opensearch]extra. Includes cookbook examples and arun_opensearch.shscript 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/refreshno 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=truequery param returns 202 immediately and runs the refresh as a background task. Background refreshes are single-flight per database. GET /metricswith a syncBaseDbalso moves its lazy refresh to the threadpool.
- The sync
- Encoding: Text-mode
open()calls now pass explicitencoding="utf-8", so JSON cache and config files written on one platform stay readable on another (Windows defaults tocp1252).
What's Changed
- feat: add Smallest AI text-to-speech toolkit by @harshitajain165 in #9015
- docs: fix broken links in cookbook READMEs and CONTRIBUTING.md by @devdattatalele in #9195
- [fix] Cache Pydantic version lookup during tool wrapping by @basnijholt in #9210
- fix: add explicit encoding="utf-8" to text-mode open() calls by @Ghraven in #7984
- fix: run metrics refresh in background to avoid blocking workers by @Mustafa-Esoofally in #9263
- feat: support opensearch db by @anhphong22 in #3611
- chore: release 2.8.6 by @ysolanky in #9271
New Contributors
- @harshitajain165 made their first contribution in #9015
- @devdattatalele made their first contribution in #9195
- @anhphong22 made their first contribution in #3611
Full Changelog: v2.8.5...v2.8.6