Product Launch Coordinator – Team Coordinator Pattern

Demonstrates an LLM agent that delegates to specialized sub-agents. The scenario: a product launch coordinator that routes tasks to marketing, engineering, and legal teams based on the request.

Pipeline topology: launch_coordinator |– marketing |– engineering ‘– legal

Tip

What you’ll learn How to compose agents into a sequential pipeline.

Source: 07_team_coordinator.py

from adk_fluent import Agent

coordinator_fluent = (
    Agent("launch_coordinator")
    .model("gemini-2.5-flash")
    .instruct(
        "You coordinate product launches. Analyze each request and "
        "delegate to the right team: marketing for campaigns and "
        "messaging, engineering for release readiness and deployment, "
        "or legal for compliance and licensing reviews."
    )
    .sub_agent(
        Agent("marketing")
        .model("gemini-2.5-flash")
        .instruct("Draft marketing campaigns, press releases, and social media strategies for the product launch.")
    )
    .sub_agent(
        Agent("engineering")
        .model("gemini-2.5-flash")
        .instruct("Review technical readiness: CI/CD pipelines, load testing results, and deployment checklists.")
    )
    .sub_agent(
        Agent("legal")
        .model("gemini-2.5-flash")
        .instruct(
            "Review licensing terms, privacy compliance (GDPR/CCPA), and terms-of-service updates for the launch."
        )
    )
    .build()
)
from google.adk.agents.llm_agent import LlmAgent

coordinator_native = LlmAgent(
    name="launch_coordinator",
    model="gemini-2.5-flash",
    instruction=(
        "You coordinate product launches. Analyze each request and "
        "delegate to the right team: marketing for campaigns and "
        "messaging, engineering for release readiness and deployment, "
        "or legal for compliance and licensing reviews."
    ),
    sub_agents=[
        LlmAgent(
            name="marketing",
            model="gemini-2.5-flash",
            instruction=(
                "Draft marketing campaigns, press releases, and social media strategies for the product launch."
            ),
        ),
        LlmAgent(
            name="engineering",
            model="gemini-2.5-flash",
            instruction=(
                "Review technical readiness: CI/CD pipelines, load testing results, and deployment checklists."
            ),
        ),
        LlmAgent(
            name="legal",
            model="gemini-2.5-flash",
            instruction=(
                "Review licensing terms, privacy compliance (GDPR/CCPA), and terms-of-service updates for the launch."
            ),
        ),
    ],
)
        graph TD
    n1["launch_coordinator"]
    n2["marketing"]
    n3["engineering"]
    n4["legal"]
    n1 --> n2
    n1 --> n3
    n1 --> n4
    

Equivalence

assert type(coordinator_native) == type(coordinator_fluent)
assert len(coordinator_fluent.sub_agents) == 3
assert coordinator_fluent.sub_agents[0].name == "marketing"
assert coordinator_fluent.sub_agents[1].name == "engineering"
assert coordinator_fluent.sub_agents[2].name == "legal"