> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Where Each Option Belongs

> Which options belong on AgentTeam and which belong on each Agent

`AgentTeam` (also exported as `PraisonAIAgents`) applies `autonomy` at the team level; the feature options belong on each `Agent`.

> [!NOTE]
>
> `execution` follows the same split: pass `MultiAgentExecutionConfig` at the team level and the single-agent `ExecutionConfig` on each `Agent`. Passing the single-agent `ExecutionConfig` to the team now emits a `UserWarning` listing the fields it cannot map. See [`ExecutionConfig` vs `MultiAgentExecutionConfig`](https://praison.ai/docs/features/multi-agent-execution#executionconfig-vs-multiagentexecutionconfig).

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
graph TB
    Q{Which option is this?}
    Q -->|autonomy| Team[Pass to AgentTeam / PraisonAIAgents]
    Q -->|guardrails, web, reflection,<br/>caching, learn, knowledge| Agent[Pass to each Agent]
    Q -->|Anything else| Agent

    classDef question fill:#F59E0B,stroke:#7C90A0,color:#fff
    classDef team fill:#6366F1,stroke:#7C90A0,color:#fff
    classDef agent fill:#10B981,stroke:#7C90A0,color:#fff

    class Q question
    class Team team
    class Agent agent
```

## Quick Start

**1. Put feature options on each Agent**

Give every agent its own `web`, `knowledge`, or other feature options.

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent, AgentTeam

researcher = Agent(
    name="Researcher",
    instructions="Research the topic.",
    web=True,                    # Feature options live on the Agent
    knowledge=["notes.txt"],
)
writer = Agent(
    name="Writer",
    instructions="Write a summary.",
    reflection=True,
)

team = AgentTeam(agents=[researcher, writer])
team.start("Summarise the latest AI safety research")
```

**2. Put autonomy on the team**

`autonomy` is the one option the team applies for you.

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent, AgentTeam

team = AgentTeam(
    agents=[Agent(name="Worker", instructions="Do the task.")],
    autonomy=True,               # Applied at the team level
)
team.start("Plan and execute the task")
```

***

## How It Works

`AgentTeam` accepts six feature options for API symmetry with `Agent`, but does not apply them at the team level. Passing them logs a warning and ignores the value.

| Option | Belongs on | Passing it to the team does… |
| - | - | - |
| `autonomy` | `AgentTeam` | Applies at the team level |
| `guardrails` | Each `Agent` | Warns and is ignored at the team level |
| `web` | Each `Agent` | Warns and is ignored at the team level |
| `reflection` | Each `Agent` | Warns and is ignored at the team level |
| `caching` | Each `Agent` | Warns and is ignored at the team level |
| `learn` | Each `Agent` | Warns and is ignored at the team level |
| `knowledge` | Each `Agent` | Warns and is ignored at the team level |

> [!WARNING]
>
> Passing `guardrails`, `web`, `reflection`, `caching`, `learn`, or `knowledge`
> to `AgentTeam` / `PraisonAIAgents` triggers:
>
> ```text theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
> AgentTeam received ['web'] but does not yet apply them at the team level;
> pass these to individual Agent(...) instances instead.
> ```

***

## Common Patterns

Move the option down from the team onto each agent.

```python Before (warns, ignored) theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent, AgentTeam

team = AgentTeam(
    agents=[
        Agent(name="Researcher", instructions="Research."),
        Agent(name="Writer", instructions="Write."),
    ],
    web=True,          # Warns and is ignored
)
```

```python After (works) theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent, AgentTeam

team = AgentTeam(
    agents=[
        Agent(name="Researcher", instructions="Research.", web=True),
        Agent(name="Writer", instructions="Write.", web=True),
    ],
)
```

***

## Best Practices

> [accordion] Set feature options per role
>
> Each agent has a different job. Give the researcher `web=True` and the writer
> `reflection=True` rather than forcing one option across the whole team.

> [accordion] Reserve the team for autonomy
>
> `autonomy` is the only feature option the team propagates. Keep team-level
> configuration to `autonomy`, `process`, and `manager_llm`.

> [accordion] Watch the logs
>
> A warning on construction means an option landed in the wrong place. Move it
> onto the `Agent(...)` instances it was meant for. Passing the single-agent
> `ExecutionConfig` to the team warns and adapts what it can — use
> `MultiAgentExecutionConfig` instead. See
> [`ExecutionConfig` vs `MultiAgentExecutionConfig`](https://praison.ai/docs/features/multi-agent-execution#executionconfig-vs-multiagentexecutionconfig).

***

## Related

> [card] [Knowledge Quick Start](https://praison.ai/docs/knowledge/quickstart.md)
>
> Give each agent its own documents

> [card] [Multi-Agent Pipelines](https://praison.ai/docs/features/multi-agent-pipelines.md)
>
> Coordinate multiple agents


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.