> ## Documentation Index
> Fetch the complete documentation index at: https://phidatainc-agui.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Build agents, teams, and workflows in pure python.

Agno is a python SDK for building multi-agent systems. It gives you three primitives (agents, teams and workflows) and a large set of capabilities you attach to them.

<CodeGroup>
  ```python Agent theme={null}
  from agno.agent import Agent
  from agno.db.sqlite import SqliteDb
  from agno.tools.workspace import Workspace

  workbench = Agent(
      name="Workbench",
      model="openai:gpt-5.5",
      db=SqliteDb(db_file="workbench.db"),
      tools=[Workspace(".")],
      enable_agentic_memory=True,
      add_history_to_context=True,
      num_history_runs=3,
      markdown=True,
  )

  workbench.print_response("Inventory this folder.")
  ```

  ```python Team theme={null}
  from agno.agent import Agent
  from agno.team import Team
  from agno.tools.yfinance import YFinanceTools

  bull = Agent(
      name="Bull",
      model="openai:gpt-5.4",
      role="Make the case FOR investing.",
      tools=[YFinanceTools()],
  )
  bear = Agent(
      name="Bear",
      model="openai:gpt-5.4",
      role="Make the case AGAINST investing.",
      tools=[YFinanceTools()],
  )

  team = Team(
      name="Investment Committee",
      members=[bull, bear],
      instructions="Hear both sides, then synthesize a balanced recommendation.",
  )

  team.print_response("Should I invest in NVIDIA?")
  ```

  ```python Workflow theme={null}
  from agno.agent import Agent
  from agno.team import Team
  from agno.tools.yfinance import YFinanceTools
  from agno.workflow import Step, Workflow

  researcher = Agent(
      model="openai:gpt-5.4",
      tools=[YFinanceTools()],
      instructions="Gather raw market data.",
  )

  bull = Agent(model="openai:gpt-5.4", role="Make the case FOR investing.")
  bear = Agent(model="openai:gpt-5.4", role="Make the case AGAINST investing.")
  committee = Team(
      name="Investment Committee",
      members=[bull, bear],
      instructions="Debate the position.",
  )

  writer = Agent(
      model="openai:gpt-5.4",
      instructions="Write a 200-word investment brief.",
  )

  workflow = Workflow(
      name="Stock Research",
      steps=[
          Step(name="Research", agent=researcher),
          Step(name="Debate", team=committee),
          Step(name="Report", agent=writer),
      ],
  )

  workflow.print_response("Analyze NVIDIA for investment.")
  ```
</CodeGroup>

## Three primitives

| Primitive                       | Use it to                                                 |
| ------------------------------- | --------------------------------------------------------- |
| [Agent](/agents/overview)       | Autonomous programs with a model, tools, and instructions |
| [Team](/teams/overview)         | Coordinate multiple agents on a single task               |
| [Workflow](/workflows/overview) | Deterministic, step-based pipelines over agents and teams |

## Capabilities

### Model and tools

| Capability                               | What it adds                                        |
| ---------------------------------------- | --------------------------------------------------- |
| [Models](/models/overview)               | 30+ providers behind one API                        |
| [Tools](/tools/overview)                 | 100+ integrations and the ability to write your own |
| [Skills](/skills/overview)               | Composable abilities you attach to agents and teams |
| [Multimodal](/multimodal/overview)       | Image, audio, and video input and output            |
| [Structured I/O](/input-output/overview) | Type-safe input and output with Pydantic schemas    |

### Memory and context

| Capability                                       | What it adds                                                     |
| ------------------------------------------------ | ---------------------------------------------------------------- |
| [Storage](/database/overview)                    | Durability and persistence on any database                       |
| [Sessions](/sessions/overview)                   | Multi-turn sessions with summaries, history, and metrics         |
| [State](/state/overview)                         | State your agents can read and update mid-run                    |
| [Memory](/memory/overview)                       | Per-user and per-session memory                                  |
| [Knowledge](/knowledge/overview)                 | Search over documents, URLs, and databases                       |
| [Learning](/learning/overview)                   | Agents that improve over time from feedback and outcomes         |
| [Compression](/compression/overview)             | Keep long sessions inside the model's context window             |
| [Context Providers](/context-providers/overview) | Inject live data from Calendar, Gmail, Drive, GitHub, Slack, MCP |
| [Dependencies](/dependencies/overview)           | Inject runtime values into prompts                               |

### Control and safety

| Capability                          | What it adds                                          |
| ----------------------------------- | ----------------------------------------------------- |
| [Guardrails](/guardrails/overview)  | Validate input and output                             |
| [Hooks](/hooks/overview)            | Pre-run and post-run callbacks                        |
| [Human-in-the-Loop](/hitl/overview) | Pause runs for approval, input, or external execution |

### Operations

| Capability                                             | What it adds                                     |
| ------------------------------------------------------ | ------------------------------------------------ |
| [Background execution](/background-execution/overview) | Long-running runs that don't block your API      |
| [Evals](/evals/overview)                               | Measure accuracy, performance, and reliability   |
| [Observability](/observability/overview)               | OpenTelemetry tracing into your own database     |
| [Scheduler](/scheduler/overview)                       | Run agents and workflows on a recurring schedule |

## From SDK to platform

Agents built using the SDK need to run in a python process: a script, a notebook, a job.

When you're ready to go live, wrap your agents in **AgentOS** and you get an API server, persistence, auth, tracing, scheduling, and interfaces.

## Where to start

<CardGroup cols={2}>
  <Card title="Install & Setup" icon="rocket" iconType="duotone" href="/sdk/setup">
    Install Agno and run your first agent.
  </Card>

  <Card title="Run on AgentOS" icon="server" iconType="duotone" href="/agent-os/introduction">
    Run your agent as a service.
  </Card>
</CardGroup>
