> ## 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.

# AgentTeam Supported Params

> Which AgentTeam params apply at the team level, and which warn and belong on individual agents

`AgentTeam` applies orchestration params at the team level, but six feature params only work when set on individual `Agent(...)` instances.

> [!NOTE]
>
> The TypeScript `AgentTeam` mirrors this — `knowledge`, `guardrails`, `web`, `reflection`, `caching`, and `learn` all emit the same "does not yet apply at the team level" notice and belong on individual `Agent(...)` instances. See [TypeScript AgentTeam](https://praison.ai/docs/docs/js/agent-team) for the JS equivalents.

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

researcher = Agent(name="Researcher", instructions="Research the topic.")
writer = Agent(name="Writer", instructions="Write a summary.")

team = PraisonAIAgents(agents=[researcher, writer])
team.start()
```

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
graph TB
    subgraph Applied["✅ Applied at team level"]
        A1[agents / tasks / process]
        A2[manager_llm / llm / name]
        A3[memory / planning / context]
        A4[output / execution / hooks]
        A5[autonomy / run_on / variables]
    end

    subgraph PerAgent["⚠️ Accepted but per-agent only — WARNS"]
        P1[guardrails]
        P2[web]
        P3[reflection]
        P4[caching]
        P5[learn]
        P6[knowledge]
    end

    classDef applied fill:#10B981,stroke:#7C90A0,color:#fff
    classDef warn fill:#F59E0B,stroke:#7C90A0,color:#fff

    class A1,A2,A3,A4,A5 applied
    class P1,P2,P3,P4,P5,P6 warn
```

## Quick Start

**1. Team-level params work**

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

researcher = Agent(name="Researcher", instructions="Research the topic.")
writer = Agent(name="Writer", instructions="Write a summary.")

team = PraisonAIAgents(
    agents=[researcher, writer],
    process="sequential",
    memory=True,
    planning=True,
)
team.start()
```

`agents`, `process`, `memory`, `planning`, and the other orchestration params take effect for the whole team.

**2. Feature params belong on each Agent**

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

researcher = Agent(
    name="Researcher",
    instructions="Research the topic.",
    knowledge=["notes.pdf"],
    guardrails=lambda o: (True, o),
)
writer = Agent(name="Writer", instructions="Write a summary.")

team = PraisonAIAgents(agents=[researcher, writer])
team.start()
```

Set `knowledge`, `guardrails`, `web`, `reflection`, `caching`, and `learn` on the `Agent(...)` that needs them.

***

## What Applies Where

`AgentTeam` accepts the six feature params for API symmetry with `Agent`, but only stores them — it never enforces them at the team level. Only orchestration params and `autonomy` fan out.

| Param | Scope | Notes |
| - | - | - |
| `agents` | Team | Team roster |
| `tasks` | Team | `None` (auto-generated) or a list / tuple of `Task` instances. `str`, `bytes`, non-sequences, or non-`Task` items raise `TypeError` since PR [#5738](https://github.com/MervinPraison/PraisonAI/pull/5738). See [AgentTeam Task Validation](https://praison.ai/docs/features/agentteam-task-validation.md). |
| `process` | Team | `"sequential"`, `"workflow"`, `"hierarchical"` |
| `manager_llm` | Team | Hierarchical manager's model. Never propagated to member agents. |
| `model` | Team | Canonical name for the default model for members that never named one. `AgentTeam(model="gpt-4o-mini")` is now accepted. `llm=` is a deprecated alias — see [Model Parameter](https://praison.ai/docs/features/model-parameter.md). Not related to `manager_llm`. |
| `llm` | Team | Deprecated alias for `model=`. Default LLM for members that never named one; an agent constructed with its own `model=` / `llm=` / `auth=` keeps it. Passing both `llm=` and `model=` raises `TypeError`. Not related to `manager_llm`. See [Container Default LLM](https://praison.ai/docs/features/container-default-llm.md). |
| `name` | Team | Team name |
| `variables` | Team | Global variables for substitution |
| `memory` | Team | Multi-agent memory |
| `planning` | Team | Multi-agent planning |
| `context` | Team | Context management |
| `output` | Team | Output/verbosity config |
| `execution` | Team | Iteration/retry limits |
| `hooks` | Team | Multi-agent hooks |
| `autonomy` | Team | Propagated per agent via `_init_autonomy` |
| `run_on` | Team | Shared sandbox for all agents |
| `guardrails` | **Per-agent only** | **Warns** if passed to the team |
| `web` | **Per-agent only** | **Warns** if passed to the team |
| `reflection` | **Per-agent only** | **Warns** if passed to the team |
| `caching` | **Per-agent only** | **Warns** if passed to the team |
| `learn` | **Per-agent only** | **Warns** if passed to the team |
| `knowledge` | **Per-agent only** | **Warns** if passed to the team |

***

## Wrong vs Right

Passing feature params to the team compiles fine — no `TypeError` — but silently does nothing. Move them onto the agents that need them.

> [!NOTE]
>
> `execution` is now louder than "silently does nothing". If you pass the single-agent `ExecutionConfig` to `AgentTeam(execution=...)`, the adapter carries over `max_iter` (and `max_retry_limit` when you changed it) and emits a `UserWarning` listing every field with no team-level counterpart — so you see exactly what was dropped rather than losing it silently. Pass `MultiAgentExecutionConfig` to stay silent. See [`ExecutionConfig` vs `MultiAgentExecutionConfig`](https://praison.ai/docs/features/multi-agent-execution#executionconfig-vs-multiagentexecutionconfig).

```python Warns — no team-level effect theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent, PraisonAIAgents

researcher = Agent(name="Researcher", instructions="Research.")
writer = Agent(name="Writer", instructions="Write.")

# knowledge/guardrails/etc. are NOT applied at the team level
team = PraisonAIAgents(
    agents=[researcher, writer],
    knowledge=["notes.pdf"],
    guardrails=lambda o: (True, o),
)
```

```python Correct — configure per Agent theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents import Agent, PraisonAIAgents

researcher = Agent(
    name="Researcher",
    instructions="Research.",
    knowledge=["notes.pdf"],
    guardrails=lambda o: (True, o),
)
writer = Agent(name="Writer", instructions="Write.")

team = PraisonAIAgents(agents=[researcher, writer])
```

> [!WARNING]
>
> Passing any of `guardrails`, `web`, `reflection`, `caching`, `learn`, or `knowledge` to `AgentTeam` logs:
>
> ```
> AgentTeam received ['knowledge', 'guardrails'] but does not yet apply them at the team level; pass these to individual Agent(...) instances instead.
> ```
>
> The team still runs — those settings are simply ignored at the team level.

***

## Why It's This Way

These six params exist on `AgentTeam` for **parity with the `Agent` API surface**, so the same call shape works in both places. There is no team-level orchestrator for guardrails, web, reflection, caching, learn, or knowledge yet, so the team stores the values but cannot enforce them. Each `Agent` already enforces them individually, which is where they belong.

***

## Best Practices

> [accordion] Put feature params on the Agent that needs them
>
> A researcher needs `knowledge`; a validator needs `guardrails`. Configure each `Agent(...)` for its own job instead of hoping the team fans settings out.

> [accordion] Watch the logs when a feature seems inactive
>
> If knowledge or guardrails appear to do nothing on a team, check for the "does not yet apply them at the team level" warning — it means the param landed on the team, not an agent.

> [accordion] Use team params for orchestration only
>
> Reserve `AgentTeam(...)` for `process`, `memory`, `planning`, `context`, `output`, `execution`, `hooks`, and `autonomy` — the params that actually fan out.

***

## Related

> [card] [Guardrails](https://praison.ai/docs/features/guardrails.md)
>
> Validate agent output per agent.

> [card] [Knowledge Sources](https://praison.ai/docs/features/knowledge-source-types.md)
>
> What `Agent(knowledge=...)` accepts.

> [card] [Web](https://praison.ai/docs/features/web.md)
>
> Enable web search and fetch per agent.

> [card] [Reflection](https://praison.ai/docs/features/reflection.md)
>
> Self-reflection per agent.

> [card] [Caching](https://praison.ai/docs/features/caching.md)
>
> Response and prompt caching per agent.

> [card] [Learn](https://praison.ai/docs/features/learn.md)
>
> Continuous learning per agent.

> [card] [Container Default LLM](https://praison.ai/docs/features/container-default-llm.md)
>
> How `llm=` fills in members that didn't pick a model.


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