Skip to content

Every 2.x user needs to read this before upgrading, and the database migration is mandatory. This is the condensed reference; the v3.0 changelog has the complete list and the migration guide has step-by-step instructions.

Storage

  • Runs moved out of the sessions table into agno_runs. Run the migration before serving traffic.
  • page without a limit, or page < 1, now raises ValueError instead of returning unbounded results.

AgentOS

  • JWTMiddleware and authorization_config dropped secret_key in favor of verification_keys (a list).
  • GET /models is removed; model data now lives in GET /config under available_models, and GET /info is the single unauthenticated metadata endpoint.
  • enable_mcp_server and mcp_config collapsed into a single mcp_server=.
  • Background execution now requires a db on the component and returns a 400 without one.

Agents

  • Renamed params: enable_user_memoriesupdate_memory_on_run, search_session_historysearch_past_sessions, num_history_sessionsnum_past_sessions_to_search, num_past_session_runsnum_past_session_runs_in_search.
  • reasoning=True is removed; set reasoning_model= explicitly.
  • continue_run dropped updated_tools in favor of requirements.
  • The Culture feature is removed entirely; use Knowledge for shared cross-user info.

Teams and Workflows

  • The Workflow constructor is keyword-only: Workflow(name=..., steps=[...]).
  • Flat HITL kwargs on Step, Steps, Loop, Condition, and Router are removed. Use human_review=HumanReview(...) from agno.workflow.types, where hitl_max_retriesmax_retries and hitl_timeouttimeout.

Tools

  • MultiMCPTools is deleted; use one MCPTools per server.
  • Flat Google tool modules (agno.tools.gmail, agno.tools.googlesheets, and the rest) are removed; import from agno.tools.google.*.
  • DuckDuckGoTools.duckduckgo_searchweb_search, and duckduckgo_newssearch_news.
  • SQLTools and Google Sheets read, describe, and run flags became bare method names.
  • The StudioTool alias is removed; use StudioTools.

Knowledge and vector DBs

  • Knowledge.add_content and its variants → insert(), ainsert(), and ainsert_many().
  • GDriveContextProviderGoogleDriveContextProvider.
  • Searching a pre-v3 vector table with a user_id now raises ValueError pointing at the vector-DB migration.

Scheduler

  • update_schedule is now allow-listed and rejects unknown keys with ValueError; ownership and lock state can no longer be written through it.
  • The schedules unique key changes from name to (user_id, name). Deduplicate schedule names per user before migrating, or the migration aborts.

Evals

  • eval_idrun_id throughout. The {eval_id} placeholder in result-path templates is no longer accepted (use {run_id}), and re-runs no longer overwrite each other.

Models and learning

  • Mistral requires mistralai>=2.0.0; the v1 compat layer is removed.
  • agno.models.metrics and the Metrics alias moved to agno.metrics (RunMetrics).
  • Model.classify_errorModelProviderError.classify(error).
  • Entity memory under namespace="user" is now per-user isolated and re-keyed by the migration.

Deprecated but still working

  • knowledge_retriever(dependencies=...) → prefer run_context.
  • Scopes system:read and system:writeconfig:read and config:write; the old names still work.
  • RedisDB (vector) → RedisDb.

Shipped around the same time