Multiple Advisors

Give the agent several advisors, each with a description of what it is good at.

Give the agent several advisors, each with a description of what it is good at. The agent can pick the right advisor for the question with ask_advisor, or poll all of them at once with ask_all_advisors.

multi_advisor.py
"""
Multiple Advisors
=================
Give the agent several advisors, each with a description of what it is good
at. The agent can pick the right advisor for the question with `ask_advisor`,
or poll all of them at once with `ask_all_advisors`.

This is useful when you want diverse perspectives:
- Different models have different strengths and biases
- Consensus across advisors increases confidence
- Disagreements highlight areas that need attention
"""

from agno.agent import Agent
from agno.models.anthropic import Claude
from agno.models.google import Gemini
from agno.models.openai import OpenAIResponses
from agno.tools.advisor import AdvisorTools

# ---------------------------------------------------------------------------
# Create Agent with multiple advisors
# ---------------------------------------------------------------------------

agent = Agent(
    model=OpenAIResponses(id="gpt-5.5"),
    tools=[
        AdvisorTools(
            advisors=[
                Claude(id="claude-sonnet-4-6"),
                Gemini(id="gemini-3.5-flash"),
            ],
            descriptions={
                "claude-sonnet-4-6": "Strong at code review and careful reasoning",
                "gemini-3.5-flash": "Fast, strong at long-context analysis and research",
            },
        )
    ],
    instructions=[
        "After drafting a response, use ask_all_advisors to get opinions from all advisors.",
        "Where the advisors agree, the feedback is likely valid.",
        "Where they disagree, use your best judgment.",
        "Provide your final answer incorporating the strongest suggestions.",
    ],
    markdown=True,
)

# ---------------------------------------------------------------------------
# Run
# ---------------------------------------------------------------------------

if __name__ == "__main__":
    agent.print_response(
        "What are the pros and cons of microservices vs monolithic architecture?",
        stream=True,
    )

Sync and async consultation

This example uses the synchronous run path. ask_all_advisors calls the advisors sequentially and returns a JSON object keyed by model ID. Use the async example for concurrent consultation. Advisors receive the supplied prompt and context, without the primary agent's full conversation history.

Run the Example

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate

Install dependencies

uv pip install -U agno anthropic google-genai openai

Export your API keys

export ANTHROPIC_API_KEY="your_anthropic_api_key_here"
export GOOGLE_API_KEY="your_google_api_key_here"
export OPENAI_API_KEY="your_openai_api_key_here"

Run the example

Save the code above as multi_advisor.py, then run:

python multi_advisor.py

Full source: cookbook/91_tools/advisor_tools/02_multi_advisor.py