Skip to content

Releases: agno-agi/agno

v3.0.0a3

v3.0.0a3 Pre-release
Pre-release

Choose a tag to compare

@ashpreetbedi ashpreetbedi released this 21 Aug 23:27
dbce06e

What's Changed

  • fix: keep a workflow session's runs to its own runs by @harshsinha03 in #9634
  • fix: point invalid-schema table errors at the migration path by @ysolanky in #9631
  • fix: cache resolved tables in SQL adapters to avoid per-query existence checks by @kausmeows in #9623
  • fix: install a usable Postgres driver with the postgres and dev extras by @ashpreetbedi in #9635
  • fix: workflow event serialization survives cyclic object graphs by @ysolanky in #9641
  • fix: file-generation import warnings fire only when PDF/DOCX is requested by @ashpreetbedi in #9640
  • fix: AgentOSTools reports failed schedules, windows and refreshes correctly by @ashpreetbedi in #9242
  • test: assert the archive race by what landed, not by which call raised by @ashpreetbedi in #9654
  • fix: match a learnings record owner against the caller by value, not by type by @ashpreetbedi in #9655
  • fix: isolate entity memory rows per user under namespace="user" by @ashpreetbedi in #9322
  • feat: SuperGrok OAuth device-code auth for the xAI model by @Himanshu040604 in #9616
  • fix: accept every reasoning effort and service tier the OpenAI API takes by @ashpreetbedi in #9658
  • chore: update gemini defaults to use 3.7 flash by @markmcd in #9666
  • fix: docs clarify human-readable ID collision guarantees by @daleselaji-dev in #9665
  • fix: typos in code comments and docstrings by @feizhuzheng in #9597
  • [cookbook] Align Team HITL examples with cookbook standards by @Math1987 in #9671
  • cookbook: add emem entry to MCP cookbook README index by @kumari-jaya in #9636
  • fix: repair four imports that do not resolve in cookbooks by @tonydzi in #9498
  • feat: add MigrationRequiredError for stale database schemas by @ysolanky in #9669
  • feat: CodeMode and result offloading for agents and teams (3.0 S1) by @ashpreetbedi in #9436
  • feat: registry workflows, zero-config Studio, and six verified 3.0 regression fixes by @ashpreetbedi in #9639
  • feat: CodeMode result_store handle, kernel fixes, and bounds by @ashpreetbedi in #9684
  • feat: offload media from the database to local, S3, or GCS storage by @kausmeows in #9340
  • fix: give the remaining-integration CI job a Postgres server by @ashpreetbedi in #9685
  • fix: make the Claude models work with anthropic 1.0.0 by @ashpreetbedi in #9686
  • refactor: import agno.agent in 147 ms instead of 233 ms by @ashpreetbedi in #9678
  • refactor: drop the per-AgentOS Studio catalog binding, and keep stale-schema errors actionable by @ashpreetbedi in #9692
  • refactor: cut avoidable per-run and per-chunk overhead on the hot paths by @ashpreetbedi in #9689
  • fix: O(1) session lookups in InMemoryDb by keying storage on session_id by @ashpreetbedi in #9693
  • chore: fix import sorting by @ashpreetbedi in #9697
  • fix: make agno.workflow importable without fastapi installed by @ashpreetbedi in #9696
  • feat: make LearningMachine the only Studio memory surface by @ashpreetbedi in #9695
  • fix: invalidate the cached session when db is reassigned by @ashpreetbedi in #9699
  • test: isolate global run-cancellation state between unit tests by @ashpreetbedi in #9702
  • fix: expire cancel-before-start intents in the in-memory cancellation manager by @ashpreetbedi in #9701
  • fix: cut per-turn history and session-save cost in long conversations by @ashpreetbedi in #9700
  • cookbook: add the canonical performance benchmark suite with cross-framework comparisons by @ashpreetbedi in #9694
  • chore: bump agno to 3.0.0a3 by @ashpreetbedi in #9704
  • cookbook: refresh performance reference results after the long-conversation fixes by @ashpreetbedi in #9705

New Contributors

Full Changelog: v3.0.0a2...v3.0.0a3

v3.0.0a2

v3.0.0a2 Pre-release
Pre-release

Choose a tag to compare

@kausmeows kausmeows released this 20 Aug 10:42

What's Changed

  • chore: remove deprecated enable_user_memories, search_session_history, num_history_sessions and num_past_session_runs params by @sannya-singal in #7834
  • feat: evals user-isolation by @harshsinha03 in #8262
  • chore: remove v3.0.0 evals migration by @harshsinha03 in #8448
  • refactor: drop flat HITL kwargs in favor of human_review=HumanReview(...) by @sannya-singal in #8354
  • feat: consolidate AgentOS metadata routes by @ysolanky in #7647
  • feat: add id to Toolkit by @ysolanky in #8724
  • feat: denormalize sessions table in db by @kausmeows in #8350
  • fix: derive runs table name from session_table to prevent silent run … by @kausmeows in #9388
  • feat: reliable background execution for AgentOS - bounded, observable, durable by @ysolanky in #9079
  • cookbook: make the at-most-once default discoverable where testers hit it by @ysolanky in #9492
  • fix: forward-port unified-continue gate removal to the agents door by @ysolanky in #9392
  • fix: fail-closed continue gate and reconciling sweep - the two P1 review findings by @ysolanky in #9404
  • fix: RBAC filtering covers DB-loaded teams and workflows on list endpoints by @ysolanky in #9505
  • fix: inline continue terminal sync survives client disconnect by @ysolanky in #9499
  • fix: Wave 2 reliability smalls - thirteen review findings, one commit each by @ysolanky in #9508
  • fix: thread-based heartbeats - lease renewal survives a starved event loop by @ysolanky in #9512
  • fix: Wave 3 reliability polish - fourteen review findings, one commit each by @ysolanky in #9527
  • feat: make Team and Workflow constructors keyword-only by @ysolanky in #9554
  • fix: external agents crash the background streaming route with raw ev… by @kausmeows in #9585
  • fix: sorting and pagination in queue by @mishramonalisha76 in #9504
  • feat: schedules, metrics, knowledge, vdb user-isolation by @kausmeows in #8245
  • Update Cerebras defaults and cookbook models by @ryanl-cerebras in #9244
  • [fix] Repair stale cookbook links by @CRDong233 in #9590
  • refactor: remove culture feature (experimental, v3.0 cleanup) by @Mustafa-Esoofally in #9515
  • refactor: remove reasoning=True shortcut, require explicit reasoning_model by @Mustafa-Esoofally in #8940
  • feat: improve agno create onboarding by @ashpreetbedi in #9600
  • fix: replace the deprecated Groq llama-3.3-70b-versatile with openai/gpt-oss-120b by @sannya-singal in #9588
  • refactor: remove deprecated API surface for v3.0 by @ysolanky in #9560
  • refactor: remove compat surface that never shipped a runtime deprecation notice by @ysolanky in #9593
  • refactor: remove mistralai v1 compatibility layer by @harshsinha03 in #9613
  • fix: repair garbled scheduler log messages by @ashpreetbedi in #9619
  • fix: case-sensitive knowledge test assertions fail on lowercase model output by @ashpreetbedi in #9618
  • feat: FinanceTools - one finance toolkit, swappable data providers by @ashpreetbedi in #9606
  • fix: gate stream param by stream_sub_agent_events flag by @Mustafa-Esoofally in #9115
  • [cookbook] Add OpenUI client example for AgentOS AG-UI by @vishxrad in #9605
  • feat: add RampRouter model for Ramp Router (router.com) by @ashpreetbedi in #9626
  • feat: add emem cookbook example by @kumari-jaya in #9624
  • feat: Studio 3.0 - the governed control plane for agents that build agents by @ashpreetbedi in #9604

New Contributors

Full Changelog: v2.9.0...v3.0.0a2

v2.9.0

Choose a tag to compare

@kausmeows kausmeows released this 13 Aug 12:08
b889441

Changelog

New Features

  • StudioRunnerTools: New identity-aware dispatch toolkit (agno.tools.studio_runner.StudioRunnerTools) that splits execution out of StudioTools. Any component (team lead, router) can mount it to discover and run Studio-built agents/teams/workflows without getting the Studio's create/edit/delete surface. run_* tools thread the caller's user_id into the sub-run so per-user state lands on the right person.
  • list_components name filter: Added a name filter to list_components.

Bug Fixes

  • A2A: Fixed the A2A stream client dropping Task-level metadata by breaking on status-update.
  • Workflow (WebSocket): Honor the selected workflow version over WebSocket.
  • Team HITL: Persist paused member runs so team HITL resume survives a session reload.
  • Rehydration: Preserve toolkit instructions on rehydration.
  • Framework annotations: Guard framework return annotations.

Behaviour & Breaking Changes

  • MCP tool tool_name override blocked (Security): MCP tool entrypoints no longer allow a call-time tool_name override. Previously a model could pass tool_name="delete_repo" to any MCP tool and the server would execute that tool while allow-lists, requires_confirmation, HITL approval, and logging all resolved from the declared name — bypassing any HITL/approval gate. The executed tool name is now closed over from tool.name. Model-supplied tool_name args are forwarded as ordinary arguments (not used to pick the tool), so tools that legitimately declare a tool_name parameter keep working.
  • Tool result caching now uses per-user keys (Security / behaviour change): With cache_results=True, the cache key now includes stable run-context identity (user_idsession_id), fixing a cross-user cache leak where a cached tool taking run_context (e.g. MemoryTools) served one user's result to another. run_id stays out of the key so caching remains useful across a user's runs. Existing cache behaviour changes — keys are composed differently, so prior cache hits won't line up the same way.
  • Rehydration now fails loudly (behaviour change): Deserializing a persisted component with unresolvable references used to silently degrade (an agent's tools became [], a team lost members, schemas/knowledge dropped) and then run. Unresolvable references now raise ComponentRehydrationError (an AgnoErrorstatus_code=422) on strict paths. Strictness is a caller property: public from_dict/load default strict=False (round-trips keep working), but AgentOS lookups and every dispatch path (REST POST /runs, continue, MCP run tools, StudioRunner) default strict=True and now return a 422 naming the unresolvable piece instead of running a degraded component. Pinned member versions are also honored.

What's Changed

  • fix: MCP tool entrypoints must not allow call-time tool_name override by @ashpreetbedi in #9379
  • fix: preserve toolkit instructions on rehydration by @ashpreetbedi in #9395
  • fix: persist paused member runs so team HITL resume survives a session reload by @ashpreetbedi in #9396
  • feat: StudioRunnerTools - identity-aware dispatch toolkit for Studio components by @ashpreetbedi in #9371
  • fix: fail loudly on unresolvable rehydration references; honor pinned member versions by @ashpreetbedi in #9381
  • fix: guard framework return annotations; add name filter to list_components by @ashpreetbedi in #9382
  • fix: tool result caching - per-user keys, ToolResult round-trip, hooks on cache hits by @ashpreetbedi in #9380
  • fix: honor selected workflow version over WebSocket by @Ayush0054 in #9514
  • fix: A2A stream client drops Task-level metadata by breaking on status-update by @psinojiya in #9224
  • feat: Release 2.9.0 by @kausmeows in #9545

Full Changelog: v2.8.7...v2.9.0

v3.0.0a1

v3.0.0a1 Pre-release
Pre-release

Choose a tag to compare

@ysolanky ysolanky released this 06 Aug 13:55
chore: alpha 1

v2.8.7

Choose a tag to compare

@kausmeows kausmeows released this 05 Aug 14:44
03d2bf0

Changelog

New Features

  • AdvisorTools: Added AdvisorTools for asking advisor models for feedback.
  • OpenRouteService Toolkit: Added OpenRouteService toolkit for accurate routing.
  • StudioTools: Added component-aware schedule tools and history parameters.
  • FileSystemTools: Allow overriding the FileSystemTools toolkit name.

Bug Fixes

  • Persisted Components: Fixed toolkit-qualified tool rehydration for persisted components.
  • Cohere: Stop dropping zero-valued sampling params (temperature, top_k, seed, frequency_penalty, presence_penalty now respect an explicit 0).
  • HITL: Propagate top-level confirmation to tool_execution on requirement deserialization.
  • Team.load: Fixed crash on SQLite with unexpected keyword argument label.
  • Audio Tools: More robust audio tool-result handling (and switched the Smallest AI cookbook to Gemini).
  • Dependencies: Exclude nltk 3.10.1, which breaks the unstructured import chain.

What's Changed

New Contributors

Full Changelog: v2.8.6...v2.8.7

v2.8.6

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

v2.8.5

Choose a tag to compare

@ysolanky ysolanky released this 27 Jul 08:52
52fa83b

New Features

  • AgentOS Tools: Added AgentOSTools to report on AgentOS usage, latency, failures, schedules, evals, components, and pending approvals.

Improvements

  • Traces: Added latency and error stats grouped by agent, team, workflow, or endpoint, plus tool and model call stats. Implemented for PostgresDb and SqliteDb.
  • Moonshot:
    • Default changed to kimi-k3.
    • Added use_thinking to toggle thinking mode.
    • Added file and video input support.

Bug Fixes

  • ClickHouse: Bind metadata keys and values as query parameters in delete_by_metadata.
  • Moonshot: Preserve reasoning_content across turns.

What's Changed

Full Changelog: v2.8.4...v2.8.5

v2.8.4

Choose a tag to compare

@ashpreetbedi ashpreetbedi released this 26 Jul 17:21
f2fdcee

What's Changed

New Contributors

Full Changelog: v2.8.3...v2.8.4

v2.8.3

Choose a tag to compare

@ashpreetbedi ashpreetbedi released this 25 Jul 17:48
e24ce01

What's Changed

Full Changelog: v2.8.2...v2.8.3

v2.8.2

Choose a tag to compare

@kausmeows kausmeows released this 24 Jul 14:10
b4e3cf6

New Features

  • FileSystem (durable agent filesystem): A net-new state primitive — agents get a private, persistent filesystem with pluggable DB/local backends and fail-closed per-user namespace isolation. See cookbooks.

Improvements

  • Cookbooks: Rewrote the AgentOS cookbook (284 → 132 files, 24 lessons) and overhauled the agent quickstart for Gemini 3.6 Flash.

What's Changed

Full Changelog: v2.8.1...v2.8.2