Article

Systèmes multi-agents avec ADK

Coordinateur, agents spécialisés et agents de workflow dans Google ADK.

Intermediate 1 min read

This content is not translated yet. Showing the original version.

Un agent unique avec vingt outils finit par mal choisir. ADK permet de composer plusieurs agents spécialisés sous un coordinateur.

Les briques d'ADK

mindmap
  root((ADK))
    Agents LLM
      Agent
      Délégation via sub_agents
      AgentTool
    Agents de workflow
      SequentialAgent
      ParallelAgent
      LoopAgent
    Outils
      Fonctions Python
      MCPToolset
      Outils intégrés
    Exécution
      Runner
      Sessions
      State partagé

L'architecture testée

flowchart TD
    U["Utilisateur"] --> C{"Coordinateur"}
    C -->|question documentaire| R["Agent RAG"]
    C -->|données chiffrées| S["Agent Sheets (MCP)"]
    C -->|rapport complet| P["SequentialAgent"]
    P --> P1["Collecte (ParallelAgent)"]
    P1 --> R
    P1 --> S
    P --> P2["Rédacteur"]
    P2 --> V["Relecteur (LoopAgent, 3 tours max)"]
    V --> U

Le code

from google.adk.agents import Agent, ParallelAgent, SequentialAgent

rag_agent = Agent(name="rag", model="gemini-2.5-flash",
                  description="Répond à partir de la documentation interne.",
                  output_key="doc")
sheets_agent = Agent(name="sheets", model="gemini-2.5-flash",
                     description="Lit les données de coûts dans Google Sheets.",
                     output_key="chiffres")

collecte = ParallelAgent(name="collecte", sub_agents=[rag_agent, sheets_agent])
redacteur = Agent(name="redacteur", model="gemini-2.5-pro",
                  instruction="Rédige un rapport à partir de {doc} et {chiffres}.")
rapport = SequentialAgent(name="rapport", sub_agents=[collecte, redacteur])

root_agent = Agent(
    name="coordinateur",
    model="gemini-2.5-flash",
    instruction="Délègue à l'agent le plus adapté. Pour un rapport, utilise 'rapport'.",
    sub_agents=[rapport],
)

Observations

  • Les output_key qui écrivent dans le state de session sont le moyen le plus simple de faire circuler les résultats.
  • Les descriptions des sous-agents pèsent plus que les instructions du coordinateur dans la décision de délégation.
  • Le ParallelAgent divise la latence de collecte par deux sur ce cas.

Resources

    Download all (.zip)