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.
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()Quick Start
- Team-level params work
python 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. - Feature params belong on each Agent
python 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, andlearnon theAgent(...)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. See AgentTeam Task Validation. |
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. 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. |
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.
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),
)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])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
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.
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.
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
Validate agent output per agent.
Knowledge SourcesWhat Agent(knowledge=...) accepts.
Enable web search and fetch per agent.
ReflectionSelf-reflection per agent.
CachingResponse and prompt caching per agent.
LearnContinuous learning per agent.
Container Default LLMHow llm= fills in members that didn’t pick a model.