Repo Updates
/libs/agno
has been restructured to fit the new concepts in Agno and for better organization.agno-infra
. This is a combination of the previous agno-aws
and agno-docker
packages, as well as the CLI and other tools.agno-aws
and agno-docker
packages have been deprecated and will no-longer be maintained.ag
) has been moved to this new agno-infra
package.AgentOS
to agno
as a comprehensive API solution for building multi-agent systems. This also replaces Playground
and other Apps. See details below.AgentOS
AgentOS
, a system for hosting agents, teams and workflows as a production-ready API. See full details in the AgentOS section.Apps Deprecations
Playground
. Its functionality has been replaced by AgentOS
.AGUIApp
and replace with AGUI
interface on AgentOS
.SlackApi
and replace with Slack
interface on AgentOS
.WhatsappApi
and replace with Slack
interface on AgentOS
.FastAPIApp
. Its functionality has been replaced by AgentOS
.DiscordClient
has been moved to /integrations/discord
.Agent
, Team
and Workflow
to make them completely stateless.agent_session
, session_metrics
, session_state
, etc. should not be seen as stateful variables that would be updated during the course of a run, but rather as “defaults” for the agent if they can be set on initialisation.CustomEvent
is now supported and you can inherit from it to create your own custom events that can be yielded from your own tools. See the documentation for more details.Updates to Run Objects
RunResponse
-> RunOutput
RunResponseStartedEvent
-> RunStartedEvent
RunResponseContentEvent
-> RunContentEvent
RunResponseCompletedEvent
-> RunCompletedEvent
IntermediateRunResponseContentEvent
-> IntermediateRunContentEvent
RunResponseErrorEvent
-> RunErrorEvent
RunResponseCancelledEvent
-> RunCancelledEvent
TeamRunResponse
-> TeamRunOutput
RunResponseStartedEvent
-> RunStartedEvent
RunResponseContentEvent
-> RunContentEvent
RunResponseCompletedEvent
-> RunCompletedEvent
IntermediateRunResponseContentEvent
-> IntermediateRunContentEvent
RunResponseErrorEvent
-> RunErrorEvent
RunResponseCancelledEvent
-> RunCancelledEvent
WorkflowRunResponse
-> WorkflowRunOutput
WorkflowRunResponseStartedEvent
-> WorkflowRunStartedEvent
WorkflowRunResponseContentEvent
-> WorkflowRunContentEvent
WorkflowRunResponseCompletedEvent
-> WorkflowRunCompletedEvent
WorkflowRunResponseErrorEvent
-> WorkflowRunErrorEvent
WorkflowRunResponseCancelledEvent
-> WorkflowRunCancelledEvent
RunOutput
(and events) has been moved to agno.run.agent
.
RunOutput
, TeamRunOutput
and WorkflowRunOutput
the extra_data
attribute has been removed and the internal attributes are now top-level. This is references
, additional_input
, reasoning_steps
, and reasoning_messages
.
metadata
added to RunOutput
, TeamRunOutput
and WorkflowRunOutput
. This represents all the set metadata for the run.
Updates to Session Objects
AgentSession
, TeamSession
and WorkflowSession
with new schemas. See full details in the Session section.runs
directly on it.get_run
-> Get a specific run by ID.get_session_summary
-> Get the session summary.get_chat_history
-> Get an aggregated view of all messages for all runs in the session.Cancelling Runs
cancel_run
on the Agent
, Team
or Workflow
.RunCancelledEvent
during streaming, or set the RunOutput.status
to "cancelled"
.Agent
, Team
, Workflow
and the various evals now all support a single db
parameter. This is to enable storage for the instance of that class. This is required for persistence of sessions, memories, metrics, etc.storage
and memory
have been removed from Agent
, Team
and Workflow
.Updates to Storage Classes
PostgresStorage
-> PostgresDb
SqliteStorage
-> SqliteDb
MysqlStorage
-> MysqlDb
RedisStorage
-> RedisDb
MongoStorage
-> MongoDb
DynamoDBStorage
-> DynamoDb
SingleStoreStorage
-> SingleStoreDb
InMemoryStorage
-> InMemoryDb
JsonStorage
-> JsonDb
GCSJsonStorage
-> GCSJsonDb
memory
has been removed from Agent
and Team
. Instead memory is enabled with enable_user_memories: bool
(like before) and persisted in the db
instance.MemoryManager
class on Agent
or Team
. E.g. Agent(memory_manager=MyMemoryManager())
.AgentMemory
and TeamMemory
have been removed.Knowledge
instance for all types of content. Files (PDF, CSV, etc.), URLs, and other.async
support for embedding models and vector DBs. This has a significant impact on performance and is a major speed improvement when adding content to the knowledge base using knowledge.add_content_async(...)
.AgentKnowledge
and all other knowledge base classes have been removed.embedder
, document
, chunking
, reranker
and reader
have been moved to agno.knowledge
. See examples for more details.agent.session_state
should not be used, instead session_state
can now be directly accessed and would have the “current” state of the session.FunctionExecutionResult
object and this will ensure these artifacts are made available to the model and agent as needed.RunOutput
, but also make it available for subsequent model calls.show_results
is now True
by default for all tools. If you just set stop_after_tool_call=True
then show_results
will be automatically set to True
.images
, videos
, audio
and files
are now available as parameters to tools. See the documentation for more details.ImageArtifact
, VideoArtifact
, AudioArtifact
, and AudioResponse
classes have been completely removed in favor of unified media classes.Image
class: Now serves all use cases (input, output, artifacts) with standardized content: Optional[bytes]
field for raw image dataAudio
class: Replaces both AudioArtifact
and AudioResponse
with consistent byte-based content storage and additional fields like transcript
, expires_at
, sample_rate
, and channels
Video
class: Updated to handle all video use cases with standardized content handling and metadata fieldsFile
class: Updated to work seamlessly across agent, team, workflow, and toolkit contextsfrom_base64()
class method: Added to Image
, Audio
, and Video
classes for creating instances from base64-encoded content (automatically converts to raw bytes)get_content_bytes()
method: Retrieves content as raw bytes, handling loading from URLs or file pathsto_base64()
method: Converts content to base64 string for transmission/storageto_dict()
method: Enhanced serialization with optional base64 content inclusionOptional[bytes]
) instead of mixed string/bytes formatsurl
, filepath
, or content
) is providedUpdates to Agent Class
agent_id
-> id
-> If id
is not set, it is autogenerated using the name
of the agent, or a random UUID if the name
is not set.search_previous_sessions_history
-> search_session_history
context
-> dependencies
add_context
-> add_dependencies_to_context
add_history_to_messages
-> add_history_to_context
add_name_to_instructions
-> add_name_to_context
add_datetime_to_instructions
-> add_datetime_to_context
add_location_to_instructions
-> add_location_to_context
add_messages
-> additional_input
extra_data
-> metadata
create_default_system_message
-> build_context
create_default_user_message
-> build_user_context
send_media_to_model
-> True
by default. Set to False if you don’t want to send media (image, audio, video, files) to the model. This is useful if you only want media for tools.store_media
-> True
by default. Set to False if you don’t want to store any media in the RunOutput
that is persisted with sessions.num_history_responses
-> num_history_runs
success_criteria
and goal
team_session_id
and workflow_session_id
.introduction
show_tool_calls
-> This is now just always enabled.team
and team_data
respond_directly
, add_transfer_instructions
, team_response_separator
and team_session_id
(since team has been removed from Agent
)team
functionality from inside Agent
(i.e. the deprecated teams implementation has been removed)monitoring
from Agent
. With the new AgentOS platform, monitoring is done using your own data. Go to os.agno.com to get started.Updates to Input & Output
response_model
-> output_schema
input_schema
(a pydantic model) to validate the input to the agent.message
to input
(which also replaces messages
). input
can be of type str
, list
, dict
, Message
, BaseModel
, or list[Message]
.dict
and input_schema
is provided, the dict will be validated against the schema.BaseModel
and input_schema
is provided, the model will be validated against the schema.arun
and acontinue_run
with stream=True
now return an async iterator of RunOutputEvent
directly and is not a coroutine anymore.debug_mode: bool
added to run
, arun
, print_response
and aprint_response
to enable debug mode for a specific run.add_history_to_context
added to run
, arun
, print_response
and aprint_response
to add the chat history to the context for the current run.dependencies
added to run
, arun
, print_response
and aprint_response
to add dependencies to the context for the current run.metadata
added to run
, arun
, print_response
and aprint_response
to set the metadata for the current run. This is merged with the metadata set on the Team
object.get_run_output
and get_last_run_output
to Agent
to retrieve a run output by ID.Updates to Metrics
Message.metrics
-> Metrics for each message (assistant, tool, etc.).RunOutput.metrics
-> Aggregated metrics for the whole run.AgentSession.metrics
-> Aggregated metrics for the whole session.Updates to Knowledge
knowledge
is now an instance of Knowledge
instead of AgentKnowledge
.retriever
-> knowledge_retriever
-> For a custom retriever.add_references
-> add_knowledge_to_context
-> To enable traditional RAG.Updates to Memory
add_memory_references
-> add_memories_to_context
memory_manager
to use when creating memories.get_user_memories
to retrieve the user memories.Updates to Sessions
add_session_summary_references
-> add_session_summary_to_context
session_summary_manager
to use when creating session summaries.session_name
and replace with functions get_session_name
and rename_session
.get_session
to retrieve a session by ID.get_chat_history
to retrieve the chat history from a session.get_session_metrics
to retrieve the metrics for a session.get_session_state
to retrieve the session state from a session.get_session_summary
to retrieve the session summary from a session.Agent
is now stateless, agent_session
, session_metrics
, run_id
, run_input
, run_messages
and run_response
as “sticky” agent attributes have been removed.Agent
is now stateless, images
, videos
, audio
are no longer available as agent attributes. Instead these can be accessed on the RunOutput
for a particular run.team_session_state
and workflow_session_state
. Only session_state
is used.enable_agentic_state
to Agent
and Team
to allow the agent to update the session state with a tool call.Updates to Team Class
mode
from Team
. Instead there are attributes that can be used to control the behavior of the team:
respond_directly
-> If True, the team leader won’t process responses from the members and instead will return them directlydelegate_task_to_all_members
-> If True, the team leader will delegate tasks to all members simultaneously, instead of one by one. When running async (using arun
) members will run concurrently.determine_input_for_members
-> True
by default. Set to False if you want to send the run input directly to the member agents without the team leader synthesizing its own input.team_id
-> id
-> If id
is not set, it is autogenerated using the name
of the team, or a random UUID if the name
is not set.search_previous_sessions_history
-> search_session_history
context
-> dependencies
add_context
-> add_dependencies_to_context
add_history_to_messages
-> add_history_to_context
add_name_to_instructions
-> add_name_to_context
add_datetime_to_instructions
-> add_datetime_to_context
add_location_to_instructions
-> add_location_to_context
add_member_tools_to_system_message
-> add_member_tools_to_context
extra_data
-> metadata
additional_input
(works the same as for Agent
)store_member_responses: bool
to optionally store the member responses on the team run output object.acli_app
to Team
to enable the CLI app for the team in async mode.send_media_to_model
-> True
by default. Set to False if you don’t want to send media (image, audio, video, files) to the model. This is useful if you only want media for tools.store_media
-> True
by default. Set to False if you don’t want to store any media in the RunOutput
that is persisted with sessions.num_history_responses
-> num_history_runs
success_criteria
team_session_id
and workflow_session_id
.enable_team_history
num_of_interactions_from_history
show_tool_calls
-> This is now just always enabled.enable_agentic_context
. session_state
and enable_agentic_state
should rather be used to manage state shared between the team and the members.monitoring
from Team
. With the new AgentOS platform, monitoring is done using your own data. Go to os.agno.com to get started.Updates to Input & Output
response_model
-> output_schema
input_schema
(a pydantic model) to validate the input to the agent.message
to input
(which also replaces messages
). input
can be of type str
, list
, dict
, Message
, BaseModel
, or list[Message]
.dict
and input_schema
is provided, the dict will be validated against the schema.BaseModel
and input_schema
is provided, the model will be validated against the schema.arun
with stream=True
now return an async iterator of TeamRunOutputEvent
directly and is not a coroutine anymore.debug_mode: bool
added to run
, arun
, print_response
and aprint_response
to enable debug mode for a specific run.add_history_to_context
added to run
, arun
, print_response
and aprint_response
to add the chat history to the context for the current run.dependencies
added to run
, arun
, print_response
and aprint_response
to add dependencies to the context for the current run.metadata
added to run
, arun
, print_response
and aprint_response
to set the metadata for the current run. This is merged with the metadata set on the Team
object.get_run_output
and get_last_run_output
to Team
to retrieve a run output by ID.Updates to Metrics
Message.metrics
-> Metrics for each message (assistant, tool, etc.).RunOutput.metrics
-> Aggregated metrics for the whole run.TeamSession.metrics
-> Aggregated metrics for the whole session.Updates to Knowledge
knowledge
is now an instance of Knowledge
instead of AgentKnowledge
.retriever
-> knowledge_retriever
-> For a custom retriever.add_references
-> add_knowledge_to_context
-> To enable traditional RAG.update_knowledge
tool to update the knowledge base. Works the same as for Agent
.Updates to Memory
add_memory_references
-> add_memories_to_context
memory_manager
to use when creating memories.get_user_memories
to retrieve the user memories.Updates to Sessions
add_session_summary_references
-> add_session_summary_to_context
session_summary_manager
to use when creating session summaries.session_name
and replace with functions get_session_name
and rename_session
.get_session
to retrieve a session by ID.get_chat_history
to retrieve the chat history from a session.get_session_metrics
to retrieve the metrics for a session.get_session_state
to retrieve the session state from a session.get_session_summary
to retrieve the session summary from a session.Team
is now stateless, team_session
, session_metrics
, run_id
, run_input
, run_messages
and run_response
as “sticky” team attributes have been removed.Team
is now stateless, images
, videos
, audio
are no longer available as team attributes. Instead these can be accessed on the TeamRunOutput
for a particular run.team_session_state
and workflow_session_state
. Only session_state
is used.enable_agentic_state
to Team
to allow the agent to update the session state with a tool call.Updates to Workflow Class
workflow_id
-> id
-> If id
is not set, it is autogenerated using the name
of the workflow, or a random UUID if the name
is not set.Workflows v2
. See full details in the Workflows section.agno.workflows
.extra_data
-> metadata
store_events
to Workflow
to optionally store the events on the workflow run output object. Also added events_to_skip
to skip certain events from being stored. This works the same as for Agent
and Team
.store_executor_outputs
to Workflow
to optionally store the agent/team responses on the workflow run output object.input_schema
to Workflow
to validate the input to the workflow.arun
.monitoring
from Workflow
. With the new AgentOS platform, monitoring is done using your own data. Go to os.agno.com to get started.Updates to Input & Output
message
to input
(which also replaces messages
). input
can be of type str
, list
, dict
, or BaseModel
.dict
and input_schema
is provided, the dict will be validated against the schema.BaseModel
and input_schema
is provided, the model will be validated against the schema.arun
with stream=True
now return an async iterator of WorkflowRunOutputEvent
directly and is not a coroutine anymore.debug_mode: bool
added to run
, arun
, print_response
and aprint_response
to enable debug mode for a specific run.get_run_output
and get_last_run_output
to Workflow
to retrieve a run output by ID.Updates to Sessions
session_name
and replace with functions get_session_name
and rename_session
.Workflow
is now stateless, workflow_session
, session_metrics
, run_id
, run_input
, run_messages
and run_response
as “sticky” workflow attributes have been removed.Workflow
is now stateless, images
, videos
, audio
are no longer available as workflow attributes. Instead these can be accessed on the WorkflowRunOutput
for a particular run.get_session
to retrieve a session by ID.get_session_metrics
to retrieve the metrics for a session.get_session_state
to retrieve the session state from a session.get_session_summary
to retrieve the session summary from a session.