# Agno: SDK

## SDK

- [SDK / Basics (961 pages)](https://docs.agno.com/_llms/sdk/basics.md): Documentation for SDK / Basics.
- [SDK / Providers (594 pages)](https://docs.agno.com/_llms/sdk/providers.md): Documentation for SDK / Providers.

### Get Started

- [Agno SDK](https://docs.agno.com/sdk/introduction.md): Build your agent platform using the Agno SDK.
- [Install & Setup](https://docs.agno.com/sdk/setup.md): Set up your dev environment. Install, configure, and run your first agent.

### Advanced

#### Session Management

- [Sessions](https://docs.agno.com/sessions/overview.md): Group related runs under a stable session ID, with database-backed history and state.
- [Session Management](https://docs.agno.com/sessions/session-management.md): Manage session identifiers, names, and performance optimization
- [History Management](https://docs.agno.com/sessions/history-management.md): Control how conversation history is accessed and used
- [Session Summaries](https://docs.agno.com/sessions/session-summaries.md): Automatically condense long conversations into concise summaries
- [Workflow Sessions](https://docs.agno.com/sessions/workflow-sessions.md): Track multi-step workflow executions with session history.

##### Persisting Sessions

- [Persisting Sessions](https://docs.agno.com/sessions/persisting-sessions/overview.md): Store session data in a database for multi-turn conversations
- [Storage Control](https://docs.agno.com/sessions/persisting-sessions/storage-control.md): Control what session data gets persisted to your database

###### Media Storage

- [Media Storage](https://docs.agno.com/sessions/persisting-sessions/media-storage/overview.md): Offload agent media to object storage and keep only a reference in the database.
- [Local Media Storage](https://docs.agno.com/sessions/persisting-sessions/media-storage/local.md): Store agent media on the local filesystem with LocalMediaStorage.
- [S3 Media Storage](https://docs.agno.com/sessions/persisting-sessions/media-storage/s3.md): Store agent media in an S3 bucket with S3MediaStorage.
- [GCS Media Storage](https://docs.agno.com/sessions/persisting-sessions/media-storage/gcs.md): Store agent media in a Google Cloud Storage bucket with GCSMediaStorage.

##### Metrics

- [Metrics](https://docs.agno.com/sessions/metrics/overview.md): Token usage, cost, timing, and per-model breakdowns for agents, teams, and workflows.

###### Agent Metrics

- [Agent Metrics](https://docs.agno.com/sessions/metrics/agent.md): Access RunMetrics, MessageMetrics, and SessionMetrics from agent runs.

###### Usage

- [Agent Extra Metrics](https://docs.agno.com/sessions/metrics/usage/agent-extra-metrics.md): Read audio, cache, and reasoning token counts from RunMetrics.
- [Tool Call Metrics](https://docs.agno.com/sessions/metrics/usage/agent-metrics.md): Time tool executions with ToolCallMetrics on each ToolExecution.

###### Team Metrics

- [Team Metrics](https://docs.agno.com/sessions/metrics/team.md): Access RunMetrics, MessageMetrics, and SessionMetrics from team runs.

###### Usage

- [Team Tool Call Metrics](https://docs.agno.com/sessions/metrics/usage/team-metrics.md): Time member tool executions with ToolCallMetrics alongside team leader and member run metrics.

###### Workflow Metrics

- [Workflow Metrics](https://docs.agno.com/sessions/metrics/workflow.md): Workflow, step, and session metrics for token usage and performance.

#### Context Management

- [Context Engineering](https://docs.agno.com/context/overview.md): Control the instructions, data, history, and tools sent to a model for each run.

##### For Agents

- [Context Engineering](https://docs.agno.com/context/agent/overview.md): Configure system messages, instructions, and context for agents.
- [Basic Instructions](https://docs.agno.com/context/agent/instructions.md): Set the instructions parameter on an Agent to control its response style and tone.
- [Dynamic Instructions](https://docs.agno.com/context/agent/dynamic-instructions.md): Generate agent instructions from a function that reads session state, so behavior changes per user.
- [Instructions via Function](https://docs.agno.com/context/agent/instructions-via-function.md): Generate agent instructions from a function that reads the agent's own properties, such as its name.
- [Few-Shot Learning](https://docs.agno.com/context/agent/few-shot-learning.md): Teach a customer support agent response patterns by passing few-shot example messages through additional_input.
- [Providing Datetime](https://docs.agno.com/context/agent/datetime-instructions.md): Add the current date and time to an agent's context with add_datetime_to_context and a timezone_identifier.
- [Providing Location](https://docs.agno.com/context/agent/location-instructions.md): Add location context to an agent with add_location_to_context so it can identify the user's city and search local news.
- [Managing Tool Calls](https://docs.agno.com/context/agent/filter-tool-calls-from-history.md): Limit tool calls kept in an agent's context with max_tool_calls_from_history while the full history stays in the database.

##### For Teams

- [Context Engineering](https://docs.agno.com/context/team/overview.md): Configure system messages, instructions, and context for teams.
- [Managing Tool Calls](https://docs.agno.com/context/team/filter-tool-calls-from-history.md): Limit tool calls carried in team context with max_tool_calls_from_history across multiple research queries.

#### State Management

- [State Management](https://docs.agno.com/state/overview.md): Persist and share data across agent runs, team coordination, and workflow execution

##### For Agents

- [Agent Session State](https://docs.agno.com/state/agent/overview.md): Manage persistent state in agents across multiple runs within a session
- [Basic State](https://docs.agno.com/state/agent/session-state-basic.md): Store and update a shopping list in agent session state backed by SQLite.
- [State in Instructions](https://docs.agno.com/state/agent/session-state-in-instructions.md): Reference session state variables directly inside an agent's instruction templates.
- [State in Context](https://docs.agno.com/state/agent/session-state-in-context.md): Persist each user's name and age across runs in separate session state.
- [Advanced State](https://docs.agno.com/state/agent/session-state-advanced.md): Manage a shopping list in agent session state with add, remove, and list tools.
- [Multiple Users](https://docs.agno.com/state/agent/session-state-multiple-users.md): Track separate shopping lists per user and session ID using session state in a multi-user agent.
- [Agentic State](https://docs.agno.com/state/agent/agentic-session-state.md): Let an agent update its own shopping list in session state based on the conversation.
- [Dynamic State](https://docs.agno.com/state/agent/dynamic-session-state.md): Update customer profiles in session state through a tool hook instead of direct modification.
- [Change State on Run](https://docs.agno.com/state/agent/change-state-on-run.md): Pass a user's name and age into session state at run time and keep the values isolated per session and user.
- [Limit Past Session Search](https://docs.agno.com/state/agent/last-n-session-messages.md): Limit the number of prior session previews returned by search_past_sessions.

##### For Teams

- [Team Session State](https://docs.agno.com/state/team/overview.md): Share and coordinate state across multiple agents in a team
- [Agentic State](https://docs.agno.com/state/team/agentic-session-state.md): Enable agentic session state so a team and its member agent update shared state autonomously during a conversation.
- [Change State on Run](https://docs.agno.com/state/team/change-state-on-run.md): Pass session_state per run to set and persist separate state for different users and sessions.
- [State in Instructions](https://docs.agno.com/state/team/session-state-in-instructions.md): Inject session state variables into team instructions using template syntax.
- [Share Member Interactions](https://docs.agno.com/state/team/share-member-interactions.md): Set share_member_interactions to True so team members see and build on each other's responses.

##### For Workflows

- [Workflow Session State](https://docs.agno.com/state/workflows/overview.md): Coordinate state across workflow steps, agents, teams, and custom functions
- [State in Custom Function](https://docs.agno.com/state/workflows/access-session-state-in-custom-python-function-step.md): Access the run context in a custom Python function step
- [State in Condition](https://docs.agno.com/state/workflows/access-session-state-in-condition-evaluator-function.md): Access session state in the evaluator function of a condition step
- [State in Router](https://docs.agno.com/state/workflows/access-session-state-in-router-selector-function.md): Access session state in the selector function of a router step.

#### Chat History

- [Chat History](https://docs.agno.com/history/overview.md): Persist and access conversation history for multi-turn interactions.

##### For Agents

- [Chat History in Agents](https://docs.agno.com/history/agent/overview.md): Configure and access agent conversation history.
- [Chat History](https://docs.agno.com/history/agent/chat-history.md): Retrieve an agent's stored conversation messages with get_chat_history().
- [Persistent Session with History Context](https://docs.agno.com/history/agent/persistent-session-history.md): Store agent conversation history in PostgreSQL and limit how many past runs are added to the context with num_history_runs.

##### For Teams

- [Chat History in Teams](https://docs.agno.com/history/team/overview.md): Manage team session history and conversation context.
- [Direct Response with Team History](https://docs.agno.com/history/team/respond-directly-with-history.md): Combine respond_directly with add_history_to_context so a team member answering the user directly still sees prior conversation turns.
- [Team History](https://docs.agno.com/history/team/team-history.md): Share conversation history across team members with add_team_history_to_members so one agent can recall context another agent received.
- [Member History](https://docs.agno.com/history/team/history-of-members.md): Give each team member its own isolated conversation history with add_history_to_context set on the individual agents.
- [Share Member Interactions](https://docs.agno.com/history/team/share-member-interactions.md): Let team members see each other's interactions during the same run with share_member_interactions.

##### For Workflows

- [Workflow History & Continuous Execution](https://docs.agno.com/history/workflow/overview.md): Build workflows that reference previous runs across multiple executions using workflow history.
- [Single Step Workflow](https://docs.agno.com/history/workflow/single-step-continuous-execution-workflow.md): A single-step workflow that runs continuously with access to workflow history.
- [Multi-Step Workflow](https://docs.agno.com/history/workflow/workflow-with-history-enabled-for-steps.md): A multi-step workflow that supplies prior-run history to agent and custom function steps.
- [Per-Step History](https://docs.agno.com/history/workflow/enable-history-for-step.md): Enable workflow history for a specific step with the `add_workflow_history` flag.
- [History in Functions](https://docs.agno.com/history/workflow/get-history-in-function.md): Access workflow history inside a custom function through `step_input`.
- [Multi-Purpose CLI](https://docs.agno.com/history/workflow/multi-purpose-cli.md): Add workflow history to the steps of a multi-purpose CLI workflow.
- [Intent Routing](https://docs.agno.com/history/workflow/intent-routing-with-history.md): Route requests to specialist agents that share the same conversation history.

#### Context Compression

- [Context Compression](https://docs.agno.com/compression/overview.md): Compress tool call results to save context space while preserving critical information.
- [Token Counting](https://docs.agno.com/compression/token-counting.md): Token estimation for context planning and compression.

#### Dependency Injection

- [Dependencies](https://docs.agno.com/dependencies/overview.md): Inject variables into agent and team context with dependencies.

##### For Agents

- [Dependencies with Agents](https://docs.agno.com/dependencies/agent/overview.md): Inject variables into agent context with dependencies.

###### Usage

- [Add Dependencies to Agent Run](https://docs.agno.com/dependencies/agent/add-dependencies-run.md): Inject dependencies into an agent run so the agent can use dynamic context like user profiles and the current time.
- [Add Dependencies to Agent Context](https://docs.agno.com/dependencies/agent/add-dependencies-to-context.md): Build a context-aware agent that pulls real-time HackerNews data through dependency injection.
- [Access Dependencies in Tool](https://docs.agno.com/dependencies/agent/access-dependencies-in-tool.md): Access dependencies passed to the agent from inside a tool, giving tools dynamic context like user profiles and the current time.

##### For Teams

- [Dependencies with Teams](https://docs.agno.com/dependencies/team/overview.md): Inject variables into team context with dependencies.

###### Usage

- [Adding Dependencies to Team Run](https://docs.agno.com/dependencies/team/add-dependencies-run.md): Add dependencies to a specific team run. Dependencies are functions that provide contextual information, like user profiles, to the team during execution.
- [Adding Dependencies to Team Context](https://docs.agno.com/dependencies/team/add-dependencies-to-context.md): Define dependencies on the team itself so they are available to every run by default, rather than passing them per run.
- [Using Reference Dependencies in Team Instructions](https://docs.agno.com/dependencies/team/reference-dependencies.md): Define dependencies in the team constructor and reference them as template variables in team instructions. The values are resolved and injected automatically.
- [Access Dependencies in Team Tool](https://docs.agno.com/dependencies/team/access-dependencies-in-tool.md): Access dependencies passed to the team from inside a tool, giving team members shared dynamic context like team metrics and the current time.

#### Hooks

- [Pre-hooks and Post-hooks](https://docs.agno.com/hooks/overview.md): Execute custom logic before and after agent runs with hooks.

##### Agent

- [Input Validation Pre-Hook](https://docs.agno.com/hooks/usage/agent/input-validation-pre-hook.md): Run a validator agent in a pre-hook to reject off-topic, vague, or unsafe requests before the main agent responds.
- [Input Transformation Pre-Hook](https://docs.agno.com/hooks/usage/agent/input-transformation-pre-hook.md): Rewrite a user's raw input into a more focused request with a transformer agent in a pre-hook before the main agent runs.
- [Output Validation Post-Hook](https://docs.agno.com/hooks/usage/agent/output-validation-post-hook.md): Validate agent response completeness, tone, safety, and length in a post-hook, raising OutputCheckError when checks fail.
- [Output Transformation Post-Hook](https://docs.agno.com/hooks/usage/agent/output-transformation-post-hook.md): Use post-hooks to reformat an Agent's RunOutput.content with markdown, disclaimers, or an AI-structured layout before returning it.

##### Team

- [Input Validation Pre-Hook](https://docs.agno.com/hooks/usage/team/input-validation-pre-hook.md): Use a pre-hook with an AI validator agent to check a Team's input for relevance, safety, and team suitability before raising InputCheckError.
- [Input Transformation Pre-Hook](https://docs.agno.com/hooks/usage/team/input-transformation-pre-hook.md): Use a pre-hook with an AI transformer agent to rewrite a Team's input to match the team's purpose before it reaches the LLM.
- [Output Validation Post-Hook](https://docs.agno.com/hooks/usage/team/output-validation-post-hook.md): Use post-hooks to validate a Team's output for comprehensiveness, collaboration, consistency, and safety, raising OutputCheckError on failure.
- [Output Transformation Post-Hook](https://docs.agno.com/hooks/usage/team/output-transformation-post-hook.md): Use post-hooks to reformat a Team's TeamRunOutput.content with member metadata, a collaboration summary, or an AI-structured layout before returning it.

#### Run Cancellation

- [Cancelling a Run](https://docs.agno.com/run-cancellation/overview.md): Cancel running agent, team, or workflow executions.
- [Agent Run Cancellation](https://docs.agno.com/run-cancellation/agent-cancel-run.md): Cancel a running agent execution from another thread.
- [Team Run Cancellation](https://docs.agno.com/run-cancellation/team-cancel-run.md): Cancel a running team execution from another thread.
- [Workflow Run Cancellation](https://docs.agno.com/run-cancellation/workflow-cancel-run.md): Cancel a running workflow execution from another thread.

#### Background Execution

- [Background Execution](https://docs.agno.com/background-execution/overview.md): Run agents in the background. Reconnect to in-progress streams via SSE.

#### Skills

- [Introduction to Skills](https://docs.agno.com/skills/overview.md): Skills provide agents with structured domain expertise through instructions, scripts, and reference documentation.
- [Creating Skills](https://docs.agno.com/skills/creating-skills.md): Create skills with instructions, scripts, and reference documentation.
- [Loading Skills](https://docs.agno.com/skills/loading-skills.md): Load skills into agents using LocalSkills and the Skills orchestrator.
- [Team Skills](https://docs.agno.com/skills/team-skills.md): Give the team leader direct access to skills without delegating to a member agent.

#### Reasoning

- [What is Reasoning?](https://docs.agno.com/reasoning/overview.md): Reasoning gives Agents the ability to "think" before responding and "analyze" the results of their actions (i.e. tool calls), greatly improving the Agents' ability to solve problems that require sequential tool calls.

##### Reasoning Models

- [Reasoning Models](https://docs.agno.com/reasoning/reasoning-models.md): Reasoning models are a class of large language models pre-trained to think before they answer. They produce a long internal chain of thought before responding.

###### Usage

###### Azure AI Foundry

- [Azure AI Foundry](https://docs.agno.com/reasoning/usage/models/azure-ai-foundry/azure-ai-foundry.md): Configure an Agno agent to use Azure AI Foundry's DeepSeek-R1 as the reasoning model alongside gpt-5.2 as the primary model.

###### Azure OpenAI

- [Azure OpenAI o1](https://docs.agno.com/reasoning/usage/models/azure-openai/o1.md): Configure an Agno agent to use Azure OpenAI's o1 model for reasoning tasks.
- [Azure OpenAI o3](https://docs.agno.com/reasoning/usage/models/azure-openai/o3.md): Configure an Agno agent with Azure OpenAI's o3 model and YFinance tools to compare stock data in tables.
- [Azure OpenAI GPT 4.1](https://docs.agno.com/reasoning/usage/models/azure-openai/reasoning-model-gpt4-1.md): Pair Azure OpenAI's GPT-4.1 as a reasoning model with GPT-5.2 to solve the trolley problem and render an ASCII diagram.

###### DeepSeek

- [DeepSeek Reasoner](https://docs.agno.com/reasoning/usage/models/deepseek/deepseek-reasoner.md): Pair OpenAI's GPT-5.2 with DeepSeek's deepseek-reasoner as a reasoning model to analyze the trolley problem across ethical frameworks.

###### Groq

- [Groq Qwen3 32B](https://docs.agno.com/reasoning/usage/models/groq/groq.md): Enable reasoning on Groq's Qwen3 32B model to compare 9.11 and 9.9 with full reasoning output.
- [Claude + Groq Qwen3](https://docs.agno.com/reasoning/usage/models/groq/groq-plus-claude.md): Pair Claude Sonnet 4.5 with Groq's Qwen3 32B as a reasoning model to compare 9.11 and 9.9.

###### Ollama

- [Ollama DeepSeek R1](https://docs.agno.com/reasoning/usage/models/ollama/ollama.md): Pair a local Ollama Llama 3.2 model with DeepSeek R1 as a reasoning model to solve the trolley problem.

###### OpenAI

- [OpenAI o1-pro](https://docs.agno.com/reasoning/usage/models/openai/o1-pro.md): Run OpenAI o1-pro through the Responses API to reason step by step over an ethics prompt.
- [OpenAI GPT-5-mini](https://docs.agno.com/reasoning/usage/models/openai/gpt5-mini.md): Use OpenAI GPT-5-mini through the Responses API to write a report comparing NVDA to TSLA.
- [OpenAI GPT-5 mini with Tools](https://docs.agno.com/reasoning/usage/models/openai/gpt5-mini-tools.md): Use GPT-5 mini with HackerNewsTools to retrieve and summarize top stories.
- [OpenAI o4-mini](https://docs.agno.com/reasoning/usage/models/openai/o4-mini.md): Run OpenAI o4-mini through the Responses API to reason step by step over an ethics prompt.
- [OpenAI GPT-4.1](https://docs.agno.com/reasoning/usage/models/openai/reasoning-model-gpt4-1.md): Pair gpt-4o-mini with a GPT-4.1 reasoning_model to solve the trolley problem.
- [OpenAI o4-mini with reasoning summary](https://docs.agno.com/reasoning/usage/models/openai/reasoning-summary.md): Set reasoning_summary to auto on o4-mini to surface its reasoning summary while comparing NVDA to TSLA.
- [OpenAI gpt-5-mini with reasoning effort](https://docs.agno.com/reasoning/usage/models/openai/reasoning-effort.md): Set reasoning_effort to "high" on OpenAIResponses so gpt-5-mini reasons more before answering.

###### xAI

- [xAI Grok 3 Mini](https://docs.agno.com/reasoning/usage/models/xai/reasoning-effort.md): Set reasoning_effort to "high" on xAI's grok-3-mini-fast model for deeper reasoning before it answers.

##### Reasoning Tools

- [Reasoning Tools](https://docs.agno.com/reasoning/reasoning-tools.md): Give any model explicit tools for structured thinking, transforming regular models into careful problem-solvers through deliberate reasoning steps.

###### Usage

- [Reasoning Tools](https://docs.agno.com/reasoning/usage/tools/reasoning-tools.md): Give an OpenAIResponses agent ReasoningTools so it calls think() and analyze() while solving a logic puzzle.
- [Azure OpenAI with Reasoning Tools](https://docs.agno.com/reasoning/usage/tools/azure-openai-reasoning-tools.md): Pair ReasoningTools with WebSearchTools on an AzureOpenAI gpt-4o-mini agent to research and reason through a report.
- [Ollama with Reasoning Tools](https://docs.agno.com/reasoning/usage/tools/ollama-reasoning-tools.md): Give a local Ollama llama3.2 agent ReasoningTools and HackerNewsTools so it reasons before comparing NVDA to TSLA.
- [OpenAI with Reasoning Tools](https://docs.agno.com/reasoning/usage/tools/openai-reasoning-tools.md): Give an OpenAIChat agent ReasoningTools and WebSearchTools to research and write a report comparing NVDA to TSLA.
- [Vercel with Reasoning Tools](https://docs.agno.com/reasoning/usage/tools/vercel-reasoning-tools.md): Pair Vercel's V0 model with ReasoningTools and WebSearchTools to research and write a report on TSLA.
- [Cerebras with Reasoning Tools](https://docs.agno.com/reasoning/usage/tools/cerebras-llama-reasoning-tools.md): Use ReasoningTools with a Cerebras agent to solve a step-by-step logic puzzle.
- [Claude with Reasoning Tools](https://docs.agno.com/reasoning/usage/tools/claude-reasoning-tools.md): Combine Claude with ReasoningTools and WebSearchTools to analyze the semiconductor market.
- [Gemini with Reasoning Tools](https://docs.agno.com/reasoning/usage/tools/gemini-reasoning-tools.md): Use Gemini 2.5 Pro with ReasoningTools and YFinanceTools to compare NVDA and TSLA.
- [Groq with Reasoning Tools](https://docs.agno.com/reasoning/usage/tools/groq-reasoning-tools.md): Run Llama 4 Scout on Groq with ReasoningTools and WebSearchTools to compare NVDA and TSLA.
- [Capture Reasoning Content with Reasoning Tools](https://docs.agno.com/reasoning/usage/tools/capture-reasoning-content-reasoning-tools.md): Verify reasoning_content is populated on RunOutput in both streaming and non-streaming runs with ReasoningTools.
- [Agent with Knowledge Tools](https://docs.agno.com/reasoning/usage/tools/knowledge-tools.md): Give an agent KnowledgeTools backed by a LanceDB hybrid-search knowledge base to think, search, and analyze before answering.
- [Capture Reasoning Content with Knowledge Tools](https://docs.agno.com/reasoning/usage/tools/capture-reasoning-content-knowledge-tools.md): Verify reasoning_content is populated on RunOutput in both streaming and non-streaming runs with KnowledgeTools.
- [Team with Reasoning Tools](https://docs.agno.com/reasoning/usage/tools/reasoning-tool-team.md): Give a Team leader ReasoningTools to optimize delegation across a web-search agent and a finance agent.
- [Team with Knowledge Tools](https://docs.agno.com/reasoning/usage/tools/knowledge-tool-team.md): Give a Team leader KnowledgeTools backed by a LanceDB knowledge base to search and reason before delegating.

##### Reasoning Agents

- [Reasoning Agents](https://docs.agno.com/reasoning/reasoning-agents.md): Transform any model into a reasoning system through structured chain-of-thought processing for problems that require multiple steps, tool use, and self-validation.

###### Usage

- [Basic Reasoning Agent](https://docs.agno.com/reasoning/usage/agents/basic-cot.md): Equip agents with chain-of-thought reasoning capabilities.
- [Capture Reasoning Content](https://docs.agno.com/reasoning/usage/agents/capture-reasoning-content-cot.md): Read `reasoning_content` from an agent's run response and from the final streaming event, using both `reasoning=True` and a dedicated `reasoning_model`.
- [Non-Reasoning Model Agent](https://docs.agno.com/reasoning/usage/agents/non-reasoning-model-cot.md): Use a non-reasoning model like `gpt-4.1` as an agent's `reasoning_model` for Chain-of-Thought reasoning.
- [Team with Chain of Thought](https://docs.agno.com/reasoning/usage/agents/team-cot.md): Enable Chain-of-Thought reasoning on a Team of agents with `reasoning=True` and `show_full_reasoning=True`.

#### Multimodal

- [Overview](https://docs.agno.com/multimodal/overview.md): Process and generate images, audio, video, and files with agents and teams.

##### Agents

- [Multimodal Agents](https://docs.agno.com/multimodal/agent/overview.md): Build agents that process and generate images, audio, video, and files.

###### Image

- [Image As Input](https://docs.agno.com/multimodal/agent/usage/image-input.md): Pass images to agents for analysis and description.
- [Image Model Output](https://docs.agno.com/multimodal/agent/usage/image-output.md): Return generated images from model responses.
- [Image to Text Analysis](https://docs.agno.com/multimodal/agent/usage/image-to-text.md): Analyze a local image file and write a short fictional story about it with `OpenAIResponses`.
- [Image to Structured Output](https://docs.agno.com/multimodal/agent/usage/image-to-structured-output.md): Analyze an image and stream a structured `MovieScript` response with `output_schema`.
- [High Fidelity Image Input](https://docs.agno.com/multimodal/agent/usage/image-input-high-fidelity.md): Set `Image(detail="high")` for higher-fidelity image analysis.
- [Image to Image Generation Agent](https://docs.agno.com/multimodal/agent/usage/image-to-image-agent.md): Transform an existing image into a new one with `FalTools(enable_image_to_image=True)`.
- [Image Input for Tools](https://docs.agno.com/multimodal/agent/usage/image-input-for-tool.md): Legacy example that passes uploaded and DALL-E-generated images into tool functions.
- [Image to Audio Story Generation](https://docs.agno.com/multimodal/agent/usage/image-to-audio.md): Analyze an image with `OpenAIChat(id="gpt-4o")` to write a story, then narrate it with `OpenAIChat(id="gpt-audio")`.
- [Image Generation Tools](https://docs.agno.com/multimodal/agent/usage/image-generation.md): Generate images using OpenAI tools.
- [Generate output image using DALL-E](https://docs.agno.com/multimodal/agent/usage/generate-image.md): Legacy DalleTools example that downloads a generated image to a local file.
- [Generate output image using DALL-E with intermediate steps](https://docs.agno.com/multimodal/agent/usage/generate-image-with-intermediate-steps.md): Legacy DalleTools example that streams intermediate events while an image generates.
- [Agent Using Multimodal Tool Response in Runs](https://docs.agno.com/multimodal/agent/usage/agent-using-multimodal-tool-response-in-runs.md): Legacy DalleTools example that references a generated image in a follow-up run.

###### Audio

- [Audio As Input](https://docs.agno.com/multimodal/agent/usage/audio_input.md): Process audio as input with Agno agents.
- [Audio Model Output](https://docs.agno.com/multimodal/agent/usage/audio_output.md): Get audio output from model responses in Agno agents.
- [Audio Input Output](https://docs.agno.com/multimodal/agent/usage/audio-input-output.md): Send an audio recording to OpenAI's gpt-audio model and receive both a text and audio response.
- [Audio to Text Transcription](https://docs.agno.com/multimodal/agent/usage/audio-to-text.md): Transcribe a multi-speaker audio recording into a speaker-labeled conversation using Gemini.
- [Agent Same Run Image Analysis](https://docs.agno.com/multimodal/agent/usage/agent-same-run-image-analysis.md): Legacy DalleTools example that generates and analyzes an image in one agent run.
- [Blog to Podcast Agent](https://docs.agno.com/multimodal/agent/usage/blog-to-podcast.md): Scrape a blog post with Firecrawl, summarize it, and convert the summary to audio with ElevenLabs.
- [File Generation Tools](https://docs.agno.com/multimodal/agent/usage/file_generation.md): Generate files in different formats with Agno agents.
- [File Input](https://docs.agno.com/multimodal/agent/usage/file_input.md): Process files as input with Agno agents.
- [Speech-to-Text](https://docs.agno.com/multimodal/agent/usage/speech-to-text.md): Transcribe audio files with Agno agents.
- [Audio Generation Tools](https://docs.agno.com/multimodal/agent/usage/audio_generation.md): Generate audio with text-to-speech tools in Agno agents.
- [Generate Music using Models Lab](https://docs.agno.com/multimodal/agent/usage/generate-music-agent.md): Generate a music clip with ModelsLabTools and save the MP3 to disk.
- [Audio Multi Turn](https://docs.agno.com/multimodal/agent/usage/audio-multi-turn.md): Keep audio conversation context across turns with OpenAIChat's gpt-audio model and add_history_to_context.
- [Audio Sentiment Analysis](https://docs.agno.com/multimodal/agent/usage/audio-sentiment-analysis.md): Analyze sentiment and identify speakers in an audio conversation with Gemini, and persist the session history in SQLite.
- [Audio Streaming](https://docs.agno.com/multimodal/agent/usage/audio-streaming.md): Stream PCM16 audio events from OpenAI's gpt-audio model and write the decoded chunks to a WAV file in real time.

###### Video

- [Video Input](https://docs.agno.com/multimodal/agent/usage/video_input.md): Process video as input with Agno agents.
- [Video Output](https://docs.agno.com/multimodal/agent/usage/video_generation.md): Generate videos with AI tools in Agno agents.
- [Video Caption Agent](https://docs.agno.com/multimodal/agent/usage/video-caption.md): Extract audio, transcribe it to timed SRT captions with OpenAI, and embed captions with MoviePyVideoTools.
- [Shorts from Video](https://docs.agno.com/multimodal/agent/usage/video-to-shorts.md): Analyze a video with Gemini and use ffmpeg to cut the highest-scoring 15-60 second segments into short-form clips.
- [Generate Video (ReplicateTools)](https://docs.agno.com/multimodal/agent/usage/generate-video-using-replicate.md): Generate a video from a text prompt with ReplicateTools and the tencent/hunyuan-video model.
- [Generate Video (ModelsLabTools)](https://docs.agno.com/multimodal/agent/usage/generate-video-using-models-lab.md): Generate a video from a text prompt with ModelsLabTools and read the result from response.videos.

###### Files

- [File Input for Tools](https://docs.agno.com/multimodal/agent/usage/file-input-for-tool.md): Give a custom tool access to a File passed to the agent and simulate OCR extraction on its content.

##### Teams

- [Multimodal Teams](https://docs.agno.com/multimodal/team/overview.md): Create teams that process text, images, audio, video, and files.

###### Images

- [Image to Text Team](https://docs.agno.com/multimodal/team/usage/image-to-text.md): Analyze an image with one team member and turn the analysis into a short story with another.
- [Image Generation Team](https://docs.agno.com/multimodal/team/usage/generate-image-with-team.md): Legacy team example that refines a prompt and generates an image with DalleTools.
- [Image to Structured Movie Script Team](https://docs.agno.com/multimodal/team/usage/image-to-structured-output.md): Use a two-agent team to analyze an image and return a Pydantic MovieScript object via output_schema.
- [Image Transformation Team](https://docs.agno.com/multimodal/team/usage/image-to-image-transformation.md): Pair a style-advisor agent with an image-transformer agent that uses FalTools to restyle an image via image_to_image.

###### Audio

- [Audio Transcription Team](https://docs.agno.com/multimodal/team/usage/audio-to-text.md): Use a two-agent team to transcribe an MP3 with Gemini and analyze the transcript for themes and insights.
- [Audio Sentiment Analysis Team](https://docs.agno.com/multimodal/team/usage/audio-sentiment-analysis.md): Run a team that transcribes a WAV conversation and scores per-speaker sentiment, keeping session history in SqliteDb for follow-up questions.

###### Video

- [Video Captioning Team](https://docs.agno.com/multimodal/team/usage/video-caption-generation.md): Use a two-agent team with MoviePyVideoTools and OpenAITools to extract audio, generate SRT captions, and embed them into a video.

### Production

- [Scheduler](https://docs.agno.com/scheduler/overview.md): Create and manage cron schedules with the Scheduler SDK and AgentOS.

#### Guardrails

- [Guardrails](https://docs.agno.com/guardrails/overview.md): Built-in safeguards for input validation, PII detection, and prompt injection defense.

##### Included Guardrails

- [Prompt Injection Guardrail](https://docs.agno.com/guardrails/included/prompt-injection.md): Detect prompt injection attempts in agent inputs.
- [PII Detection Guardrail](https://docs.agno.com/guardrails/included/pii.md): Detect personally identifiable information in agent inputs.
- [OpenAI Moderation Guardrail](https://docs.agno.com/guardrails/included/openai-moderation.md): Detect content policy violations using OpenAI's moderation API.

##### Agent

- [PII Detection Guardrail](https://docs.agno.com/guardrails/usage/agent/pii-detection.md): Protect sensitive data like SSNs, credit cards, emails, and phone numbers with Agno's built-in PII detection guardrail.
- [Prompt Injection Guardrail](https://docs.agno.com/guardrails/usage/agent/prompt-injection.md): Detect and stop prompt injection and jailbreak attempts with Agno's built-in prompt injection guardrail.
- [OpenAI Moderation Guardrail](https://docs.agno.com/guardrails/usage/agent/openai-moderation.md): Detect and block content that violates OpenAI's content policy with Agno's built-in OpenAI moderation guardrail.

##### Team

- [PII Detection Guardrail for Teams](https://docs.agno.com/guardrails/usage/team/pii-detection.md): Protect sensitive data in Team input with Agno's built-in PII detection guardrail.
- [Prompt Injection Guardrail for Teams](https://docs.agno.com/guardrails/usage/team/prompt-injection.md): Stop prompt injection and jailbreak attempts against a Team with Agno's built-in prompt injection guardrail.
- [OpenAI Moderation Guardrail for Teams](https://docs.agno.com/guardrails/usage/team/openai-moderation.md): Detect and block content policy violations in Team input with Agno's built-in OpenAI moderation guardrail.

#### Human-in-the-Loop

- [Human-in-the-Loop (HITL)](https://docs.agno.com/hitl/overview.md): Control agent execution flow with human oversight and input.
- [User Confirmation](https://docs.agno.com/hitl/user-confirmation.md): Require explicit user approval before executing tool calls in your agents.
- [User Input](https://docs.agno.com/hitl/user-input.md): Gather specific information from users during agent execution.
- [Dynamic User Input](https://docs.agno.com/hitl/dynamic-user-input.md): Let agents request user input dynamically as needed during execution.
- [External Tool Execution](https://docs.agno.com/hitl/external-execution.md): Execute tools outside of the agent's control for enhanced security and flexibility.
- [Approval](https://docs.agno.com/hitl/approval.md): Admin-mediated HITL workflows with persistent records and audit trails.

##### Usage

- [Agentic User Input with Control Flow](https://docs.agno.com/hitl/usage/agentic-user-input.md): Use UserControlFlowTools so the agent can request user input when it needs more information to complete a task.

###### Confirmation Required

- [Tool Confirmation Required](https://docs.agno.com/hitl/usage/confirmation-required.md): Require user confirmation before the agent executes sensitive tool operations.
- [Async Tool Confirmation Required](https://docs.agno.com/hitl/usage/confirmation-required-async.md): Require user confirmation before an async agent executes a tool, using `arun()` and `acontinue_run()`.
- [Confirmation Required with Mixed Tools](https://docs.agno.com/hitl/usage/confirmation-required-mixed-tools.md): Require confirmation for some tools only. The agent runs unconfirmed tools automatically and pauses for the ones that need approval.
- [Confirmation Required with Multiple Tools](https://docs.agno.com/hitl/usage/confirmation-required-multiple-tools.md): Require confirmation for multiple tools in one run, and cancel individual tool calls based on the user's choice.
- [Confirmation Required with Streaming](https://docs.agno.com/hitl/usage/confirmation-required-stream.md): Require user confirmation during tool execution while streaming the agent's response.
- [Confirmation Required with Async Streaming](https://docs.agno.com/hitl/usage/confirmation-required-stream-async.md): Require user confirmation during tool execution while streaming responses from an async agent.
- [Confirmation Required with Toolkit](https://docs.agno.com/hitl/usage/confirmation-required-toolkit.md): Require confirmation for tools from a pre-built toolkit like YFinanceTools, using `requires_confirmation_tools`.
- [Confirmation Required with History](https://docs.agno.com/hitl/usage/confirmation-required-with-history.md): Require user confirmation for tool calls while the agent keeps previous conversation history in context.
- [Confirmation Required with Run ID](https://docs.agno.com/hitl/usage/confirmation-required-with-run-id.md): Pause an agent run for tool confirmation, then continue it by run ID with the resolved requirements.

###### User Input Required

- [User Input Required for Tool Execution](https://docs.agno.com/hitl/usage/user-input-required.md): Create tools that require user input before execution, so the agent collects data from the user during the run.
- [Require User Input for All Tool Fields](https://docs.agno.com/hitl/usage/user-input-required-all-fields.md): Collect user input for every tool field by naming each field in user_input_fields.
- [User Input Required Async](https://docs.agno.com/hitl/usage/user-input-required-async.md): Collect specific user input fields with the requires_user_input parameter in an async environment.
- [User Input Required Stream Async](https://docs.agno.com/hitl/usage/user-input-required-stream-async.md): Collect user input fields with the requires_user_input parameter while streaming responses asynchronously.

###### External Tool Execution

- [External Tool Execution](https://docs.agno.com/hitl/usage/external-tool-execution.md): Execute tools outside the agent. You control tool execution externally while the agent handles the rest of the run.
- [External Tool Execution Async](https://docs.agno.com/hitl/usage/external-tool-execution-async.md): Execute tools outside the agent in an async environment. You control tool execution externally while the agent handles the rest of the run.
- [External Tool Execution Stream Async](https://docs.agno.com/hitl/usage/external-tool-execution-stream-async.md): Execute tools outside the agent while streaming responses asynchronously.
- [External Tool Execution Toolkit](https://docs.agno.com/hitl/usage/external-tool-execution-toolkit.md): Create a custom toolkit with tools that require external execution, then run those tools outside the agent.

#### Evals

- [What are Evals?](https://docs.agno.com/evals/overview.md): Measure agent and team quality across expected answers, custom criteria, tool behavior, and performance.

##### Accuracy

- [Accuracy Evals](https://docs.agno.com/evals/accuracy/overview.md): Accuracy evals measure how well your Agents and Teams perform against a gold-standard answer using LLM-as-a-judge methodology.

###### Usage

- [Basic Accuracy](https://docs.agno.com/evals/accuracy/usage/basic.md): Score an Agent's response for completeness, correctness, and accuracy with AccuracyEval.
- [Async Accuracy Evaluation](https://docs.agno.com/evals/accuracy/usage/accuracy-async.md): Example showing how to run accuracy evaluations asynchronously with AccuracyEval.arun().
- [Comparison Accuracy Evaluation](https://docs.agno.com/evals/accuracy/usage/accuracy-comparison.md): Example showing how to evaluate agent accuracy on comparison tasks.
- [Accuracy with Database Logging](https://docs.agno.com/evals/accuracy/usage/accuracy-db-logging.md): Example showing how to store evaluation results in the database for tracking and analysis.
- [Accuracy with Given Answer](https://docs.agno.com/evals/accuracy/usage/accuracy-with-given-answer.md): Example showing how to evaluate a precomputed answer directly with AccuracyEval.run_with_output(), without running an Agent.
- [Accuracy with Tools](https://docs.agno.com/evals/accuracy/usage/accuracy-with-tools.md): Example showing an evaluation that runs the provided agent with the provided input and then evaluates the answer that the agent gives.
- [Accuracy with Teams](https://docs.agno.com/evals/accuracy/usage/accuracy-with-teams.md): Example showing how to evaluate the accuracy of an Agno Team.

##### Performance

- [Performance Evals](https://docs.agno.com/evals/performance/overview.md): Performance evals measure the latency and memory footprint of an Agent or Team.

###### Usage

- [Performance on Agent Response](https://docs.agno.com/evals/performance/usage/performance-simple-response.md): Example showing how to analyze the runtime and memory usage of an Agent's run, given its response.
- [Async Performance Evaluation](https://docs.agno.com/evals/performance/usage/performance-async.md): Example showing how to run performance evaluations on async functions.
- [Performance on Agent Instantiation](https://docs.agno.com/evals/performance/usage/performance-agent-instantiation.md): Example showing how to analyze the runtime and memory usage of an Agent.
- [Performance on Agent Instantiation with Tool](https://docs.agno.com/evals/performance/usage/performance-instantiation-with-tool.md): Example showing how to analyze the runtime and memory usage of an Agent that is using tools.
- [Performance on Agent with Storage](https://docs.agno.com/evals/performance/usage/performance-with-storage.md): Example showing how to analyze the runtime and memory usage of an Agent that is using storage.
- [Performance with Memory Updates](https://docs.agno.com/evals/performance/usage/performance-with-memory.md): Example showing how to evaluate performance when memory updates are involved.
- [Performance with Teams](https://docs.agno.com/evals/performance/usage/performance-team-instantiation.md): Example showing how to analyze the runtime and memory usage of an Agno Team.
- [Team Performance with Memory](https://docs.agno.com/evals/performance/usage/performance-team-with-memory.md): Example showing how to evaluate team performance with memory tracking and growth monitoring.
- [Performance with Database Logging](https://docs.agno.com/evals/performance/usage/performance-db-logging.md): Example showing how to store performance evaluation results in the database.

##### Reliability

- [Reliability Evals](https://docs.agno.com/evals/reliability/overview.md): Reliability evals assert that your Agents and Teams make the expected tool calls.

###### Usage

- [Reliability with Single Tool](https://docs.agno.com/evals/reliability/usage/basic.md): Example showing how to assert an Agent is making the expected tool calls.
- [Async Reliability Evaluation](https://docs.agno.com/evals/reliability/usage/reliability-async.md): Example showing how to run reliability evaluations asynchronously.
- [Reliability with Database Logging](https://docs.agno.com/evals/reliability/usage/reliability-db-logging.md): Example showing how to store reliability evaluation results in the database.
- [Single Tool Reliability](https://docs.agno.com/evals/reliability/usage/reliability-single-tool.md): Example showing how to evaluate reliability of single tool calls.
- [Reliability with Multiple Tools](https://docs.agno.com/evals/reliability/usage/reliability-with-multiple-tools.md): Example showing how to assert an Agno Agent is making multiple expected tool calls.
- [Reliability with Teams](https://docs.agno.com/evals/reliability/usage/reliability-with-teams.md): Example showing how to assert an Agno Team is making the expected tool calls.
- [Team Reliability with Stock Tools](https://docs.agno.com/evals/reliability/usage/reliability-team-advanced.md): Evaluate whether a team calls its delegation and stock-price tools with the expected arguments.

##### Agent as Judge

- [Agent as Judge Evals](https://docs.agno.com/evals/agent-as-judge/overview.md): Agent as Judge evals measure custom quality criteria for your Agents and Teams using LLM-as-a-judge methodology.

###### Usage

- [Basic Agent as Judge](https://docs.agno.com/evals/agent-as-judge/usage/agent-as-judge-basic.md): Basic usage of Agent as Judge evaluation with numeric scoring and failure callbacks
- [Async Agent as Judge](https://docs.agno.com/evals/agent-as-judge/usage/agent-as-judge-async.md): Asynchronous evaluation with Agent as Judge
- [Binary Agent as Judge](https://docs.agno.com/evals/agent-as-judge/usage/agent-as-judge-binary.md): Binary pass/fail evaluation without numeric scoring
- [Batch Agent as Judge](https://docs.agno.com/evals/agent-as-judge/usage/agent-as-judge-batch.md): Evaluate multiple input/output pairs in a single batch
- [Agent as Judge with Custom Evaluator](https://docs.agno.com/evals/agent-as-judge/usage/agent-as-judge-custom-evaluator.md): Using a custom evaluator agent with specific instructions
- [Agent as Judge with Guidelines](https://docs.agno.com/evals/agent-as-judge/usage/agent-as-judge-with-guidelines.md): Using additional guidelines for more detailed evaluation criteria
- [Agent as Judge as Post-Hook](https://docs.agno.com/evals/agent-as-judge/usage/agent-as-judge-post-hook.md): Using Agent as Judge evaluation as a post-hook for automatic evaluation
- [Agent as Judge with Teams](https://docs.agno.com/evals/agent-as-judge/usage/agent-as-judge-team.md): Evaluating team outputs with Agent as Judge
- [Async Team Post-Hook Agent as Judge](https://docs.agno.com/evals/agent-as-judge/usage/agent-as-judge-team-post-hook-async.md): Automatic async evaluation of team outputs using post-hooks

##### Suite

- [Eval Suites](https://docs.agno.com/evals/suite/overview.md): Declare eval Cases and run them as one suite with tag selection, per-case timeouts, a JSON report, and CI exit codes.

#### Tracing

- [Tracing](https://docs.agno.com/tracing/overview.md): Trace agent, team, and workflow runs with OpenTelemetry and store spans in a configured database or observability backend.
- [Basic Setup](https://docs.agno.com/tracing/basic-setup.md): Configure and enable tracing for your Agno agents
- [Accessing your Traces](https://docs.agno.com/tracing/db-functions.md): Database convenience functions for querying traces and spans

##### Usage

- [Basic Agent Tracing](https://docs.agno.com/tracing/usage/basic-agent-tracing.md): Enable tracing and observability for agents.
- [Basic Team Tracing](https://docs.agno.com/tracing/usage/basic-team-tracing.md): Enable tracing and observability for teams.
- [Basic Workflow Tracing](https://docs.agno.com/tracing/usage/basic-workflow-tracing.md): Enable tracing and observability for workflows.

### Other

- [Custom Logging](https://docs.agno.com/custom-logging.md): Configure custom loggers and formatters for your Agno setup.

#### Culture

- [Culture](https://docs.agno.com/culture/overview.md): Migrate v2 Culture configurations after the Culture feature was removed in Agno v3.

### Additional Resources

- [Getting Help](https://docs.agno.com/get-help.md): Connect with the Agno community, reach out to the team, build and share.
- [Install & Setup](https://docs.agno.com/other/install.md): Install the Agno SDK with uv or pip in a supported Python virtual environment.
- [Cursor Rules for Building Agents](https://docs.agno.com/other/cursor-rules.md): Use .cursorrules to improve AI coding assistant suggestions when building agents with Agno
- [Contributing to Agno](https://docs.agno.com/other/contribute.md): Contribute to Agno through the fork and pull request workflow.
- [AgentUI](https://docs.agno.com/other/agent-ui.md): An open-source AgentUI for your AgentOS
- [Agno Telemetry](https://docs.agno.com/telemetry.md): Control what usage data Agno collects

#### Observability

- [OpenTelemetry](https://docs.agno.com/observability/overview.md): Agno emits OpenTelemetry traces that integrate with popular tracing and monitoring platforms.
- [AgentOps](https://docs.agno.com/observability/agentops.md): Integrate Agno with AgentOps to send traces and logs to a centralized observability platform.
- [Arize Phoenix](https://docs.agno.com/observability/arize.md): Integrate Agno with Arize Phoenix to send traces and evaluate your agent's performance.
- [Atla](https://docs.agno.com/observability/atla.md): Integrate Atla with Agno for real-time monitoring, automated evaluation, and performance analytics of your AI agents.
- [LangDB](https://docs.agno.com/observability/langdb.md): Send Agno agent runs, team runs, and tool-call traces to LangDB.
- [Langfuse](https://docs.agno.com/observability/langfuse.md): Integrate Agno with Langfuse to send traces and gain insights into your agent's performance.
- [LangSmith](https://docs.agno.com/observability/langsmith.md): Send Agno traces to a LangSmith project with OpenInference and OpenTelemetry.
- [Langtrace](https://docs.agno.com/observability/langtrace.md): Send Agno model-call traces to Langtrace.
- [LangWatch](https://docs.agno.com/observability/langwatch.md): Integrate Agno with LangWatch to send traces and gain insights into your agent's performance.
- [Latitude](https://docs.agno.com/observability/latitude.md): Integrate Agno with Latitude to send traces and gain insights into your agent's performance.
- [Logfire](https://docs.agno.com/observability/logfire.md): Integrate Agno with Logfire to send traces and gain insights into your agent's performance.
- [Maxim](https://docs.agno.com/observability/maxim.md): Connect Agno with Maxim to monitor, trace, and evaluate your agent's activity and performance.
- [MLflow](https://docs.agno.com/observability/mlflow.md): Integrate Agno with MLflow to automatically capture OpenTelemetry-native traces from your agents with a single line of code.
- [OpenLIT](https://docs.agno.com/observability/openlit.md): Integrate Agno with OpenLIT for OpenTelemetry-native observability, tracing, and monitoring of your AI agents.
- [The Context Company](https://docs.agno.com/observability/the-context-company.md): Send Agno traces to The Context Company for agent observability and production interaction analysis.
- [Traceloop](https://docs.agno.com/observability/traceloop.md): Integrate Agno with Traceloop to send traces and gain insights into your agent's performance.
- [Weave](https://docs.agno.com/observability/weave.md): Integrate Agno with Weave by WandB to send traces and gain insights into your agent's performance.

#### Integrations

##### Memory

- [Memori](https://docs.agno.com/integrations/memory/memori.md): Integrate Agno with Memori to give agents persistent, searchable conversation memory.

##### Discord Bot

- [Discord Bot](https://docs.agno.com/integrations/discord/overview.md): Host agents as Discord Bots.

###### Usage

- [Basic](https://docs.agno.com/integrations/discord/usage/basic.md): Run a basic Agno agent as a Discord bot with conversation history.
- [Agent with Media](https://docs.agno.com/integrations/discord/usage/agent-with-media.md): Run a Discord bot that analyzes images, audio, and video using Gemini.
- [Agent with User Memory](https://docs.agno.com/integrations/discord/usage/agent-with-user-memory.md): Discord agent with agentic memory and web search using SqliteDb.

##### Scenario Testing

- [Scenario Testing](https://docs.agno.com/integrations/testing/overview.md): Simulate conversations and evaluate agent behavior with the Scenario testing framework.

###### Usage

- [Basic](https://docs.agno.com/integrations/testing/usage/basic.md): Test a vegetarian recipe agent with Scenario's user simulator and judge agents in a pytest suite.

##### Governance

- [AgentSystems Notary](https://docs.agno.com/integrations/governance/agentsystems-notary.md): Cryptographically verifiable audit trails for Agno applications.

#### Migrations

- [Database Migrations](https://docs.agno.com/other/database-migrations.md): Migrate Agno database tables between versions.
- [Migrating to Workflows 2.0](https://docs.agno.com/other/workflows-migration.md): Migrate your Workflows from 1.0 to 2.0.

##### Agno v3 Migration

- [Migrating to Agno v3.0](https://docs.agno.com/other/v3-migration.md): Guide to migrate your Agno applications from v2 to v3.
- [Agno v3.0 Changelog](https://docs.agno.com/other/v3-changelog.md): Full list of storage, parameter, and behavior changes introduced in Agno v3.0.

##### Agno v2 Migration

- [Migrating to Agno v2.0](https://docs.agno.com/other/v2-migration.md): Guide to migrate your Agno applications from v1 to v2.
- [Agno v2.0 Changelog](https://docs.agno.com/other/v2-changelog.md): Full list of class, parameter, and behavior changes introduced in Agno v2.0.
