Skip to content

v2.8.6

Latest

Choose a tag to compare

@ysolanky ysolanky released this 30 Jul 13:51
7c68873

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

New Contributors

Full Changelog: v2.8.5...v2.8.6