Releases: agno-agi/agno
Releases · agno-agi/agno
Release list
v3.0.0a3
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
- @daleselaji-dev made their first contribution in #9665
- @feizhuzheng made their first contribution in #9597
- @Math1987 made their first contribution in #9671
- @tonydzi made their first contribution in #9498
Full Changelog: v3.0.0a2...v3.0.0a3
v3.0.0a2
What's Changed
- chore: remove deprecated
enable_user_memories,search_session_history,num_history_sessionsandnum_past_session_runsparams 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-versatilewithopenai/gpt-oss-120bby @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
- @ryanl-cerebras made their first contribution in #9244
- @CRDong233 made their first contribution in #9590
- @vishxrad made their first contribution in #9605
- @kumari-jaya made their first contribution in #9624
Full Changelog: v2.9.0...v3.0.0a2
v2.9.0
Changelog
New Features
- StudioRunnerTools: New identity-aware dispatch toolkit (
agno.tools.studio_runner.StudioRunnerTools) that splits execution out ofStudioTools. 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'suser_idinto the sub-run so per-user state lands on the right person. list_componentsname filter: Added anamefilter tolist_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_nameoverride blocked (Security): MCP tool entrypoints no longer allow a call-timetool_nameoverride. Previously a model could passtool_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 fromtool.name. Model-suppliedtool_nameargs are forwarded as ordinary arguments (not used to pick the tool), so tools that legitimately declare atool_nameparameter 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_id,session_id), fixing a cross-user cache leak where a cached tool takingrun_context(e.g. MemoryTools) served one user's result to another.run_idstays 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 raiseComponentRehydrationError(anAgnoError,status_code=422) on strict paths. Strictness is a caller property: publicfrom_dict/loaddefaultstrict=False(round-trips keep working), but AgentOS lookups and every dispatch path (RESTPOST /runs, continue, MCP run tools, StudioRunner) defaultstrict=Trueand 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
v2.8.7
Changelog
New Features
- AdvisorTools: Added
AdvisorToolsfor asking advisor models for feedback. - OpenRouteService Toolkit: Added
OpenRouteServicetoolkit for accurate routing. - StudioTools: Added component-aware schedule tools and history parameters.
- FileSystemTools: Allow overriding the
FileSystemToolstoolkit 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_executionon 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 theunstructuredimport chain.
What's Changed
- fix: exclude nltk 3.10.1, which breaks the unstructured import chain by @sannya-singal in #9320
- fix: robust audio tool-result handling, switch Smallest AI cookbook to Gemini by @harshitajain165 in #9331
- fix: Team.load crashes on SQLite with unexpected keyword argument 'label' by @Himanshu040604 in #9337
- feat: add OpenRouteService toolkit for accurate routing by @ysolanky in #9287
- feat: allow overriding the FileSystemTools toolkit name by @ashpreetbedi in #9363
- fix: propagate top-level confirmation to tool_execution on requirement deserialization by @ashpreetbedi in #9351
- feat: component-aware schedule tools and history parameters in StudioTools by @ashpreetbedi in #9352
- chore: add scheduler extras to dev so CI exercises the schedule tests by @ashpreetbedi in #9366
- feat: add AdvisorTools for asking advisor models for feedback by @ysolanky in #7196
- fix: toolkit-qualified tool rehydration for persisted components by @ashpreetbedi in #9358
- [fix] Cohere: stop dropping zero-valued sampling params by @bharadwaj-pendyala in #9300
- fix: run sync scheduler DB calls off the event loop by @ashpreetbedi in #9370
- chore: Release v2.8.7 by @kausmeows in #9369
New Contributors
- @bharadwaj-pendyala made their first contribution in #9300
Full Changelog: v2.8.6...v2.8.7
v2.8.6
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
v2.8.5
New Features
- AgentOS Tools: Added
AgentOSToolsto 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
PostgresDbandSqliteDb. - Moonshot:
- Default changed to
kimi-k3. - Added
use_thinkingto toggle thinking mode. - Added file and video input support.
- Default changed to
Bug Fixes
- ClickHouse: Bind metadata keys and values as query parameters in
delete_by_metadata. - Moonshot: Preserve
reasoning_contentacross turns.
What's Changed
- fix: eliminate SQL injection in ClickHouse delete_by_metadata by @VANDRANKI in #7883
- fix: Update Moonshot for kimi k3 Add Moonshot thinking controls and examples by @RayST3 in #9057
- feat: AgentOSTools read-only platform ops toolkit by @ashpreetbedi in #9185
- chore: Release v2.8.5 by @harshsinha03 in #9187
Full Changelog: v2.8.4...v2.8.5
v2.8.4
What's Changed
- fix: serialize nested executor requirements by @pratikm778 in #9162
- fix: accept null path args in skill script/reference tools by @alec-drw in #9096
- feat: add TrustedRouter as an OpenAILike model class by @jperla in #9100
- feat: revamp entity memory for the second brain by @ashpreetbedi in #9177
- chore: Release v2.8.4 by @ashpreetbedi in #9184
New Contributors
Full Changelog: v2.8.3...v2.8.4
v2.8.3
What's Changed
- cookbook: number the filesystem cookbook as 13_filesystem by @ashpreetbedi in #9156
- fix: FileSystem tools carry no instructions; the developer composes them by @ashpreetbedi in #9172
- cookbook: add examples - three agents you run and serve by @ashpreetbedi in #9170
- chore: Release v2.8.3 by @ashpreetbedi in #9173
Full Changelog: v2.8.2...v2.8.3
v2.8.2
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
- cookbook: overhaul agent quickstart for Gemini 3.6 Flash by @ashpreetbedi in #9136
- cookbook: rewrite the AgentOS cookbook (284 files -> 132, 24 lessons) by @ashpreetbedi in #9153
- feat: FileSystem — durable agent filesystem by @ashpreetbedi in #9142
- chore: Release v2.8.2 by @kausmeows in #9154
Full Changelog: v2.8.1...v2.8.2