github agno-agi/agno v2.1.4

one day ago

Changelog

New Features:

  • Workflow History: Support to add workflow history to all or individual steps for a better continuous conversational experience
  • Google Drive Toolkit: Added the GoogleDriveTools class, to provide your Agents with read and write access to Google Drive.

Improvements:

  • Update parallel and custom function step events streaming logic in workflows:
    • Inspect all events that are yielded during the workflow run, and set the workflow context variables on them before yielding upwards.
    • Update parallel step event streaming logic to immediately yield events as they come so that FE can catch and display in real time.
      • Old approach - collect all, yield at end
      • New approach - stream immediately (used queues as we cant yield directly from async running tasks)
  • Custom events with AG-UI: The AG-UI integration now support custom events. Your Agno custom events will now be delivered in the AG-UI interface in the conventional AG-UI custom event format.
  • Tool post-hooks in case of tool failure: Our tool post-hooks now also run when the tool run fails. This enables you to easily add logic to run in case of tool failures!

Bug Fixes:

  • Order of persisted streaming events: Fix a bug where the created_at of some Memory events would be larger than the created_at of the final RunCompleted event.
  • Handle Team sessions with no runs: When cancelling a Team run early enough, you can end with a session that contains no run objects. Some functionality was failing in this edge case.
  • Dynamo Table definitions: Fixed a bug where some DynamoDB schemas incorrectly defined non key attributes
  • Dictionary Key Order Causing Redundant Cache Files: The current caching in agno/tools/function.py used str() to serialize dictionary arguments for cache key generation. Since str() preserves dictionary key order, identical data with different key orders produced different cache keys. Replaced str() with json.dumps(sort_keys=True) to ensure serialization regardless of dictionary key order
  • Change dimensions type to Optional[int] in FastEmbedEmbedder : Fixed an issue where FastEmbedEmbedder didn’t allow optional dimensions.

What's Changed

New Contributors

Full Changelog: v2.1.3...v2.1.4

Don't miss a new agno release

NewReleases is sending notifications on new releases.