v2.8.6

moorcheh-ai/memantov2.8.6Jul 30, 2026by ysolanky

AI Summary

This release introduces a text-to-speech toolkit for Smallest AI, adds an endpoint to monitor background metrics refreshes, and brings vector database support for OpenSearch. It also includes performance optimizations for tool wrapping and bug fixes regarding metrics blocking and file encoding.

Key Highlights

  • Added SmallestTools for text-to-speech using lightning_v3.1 models.
  • Added GET /metrics/refresh/status to observe background metrics refreshes.
  • Added OpenSearch vector database support with hybrid search.
  • Background metrics refresh to prevent blocking uvicorn workers.

New Features

  • text_to_speech and get_voices tools for Smallest AI.
  • AgentOS metrics refresh status endpoint.
  • OpenSearch vector database support (agno.vectordb.opensearch).

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