Architecture Patterns Overview
Patterns are reusable answers to recurring design questions. This page is the map; each pattern links to a full lesson with working code.
Single agent with tools
The simplest useful shape: one agent, a focused instruction set, and a handful of function tools. Reach for this when a task fits in one reasoning loop.
flowchart LR
U[User] --> A[Agent]
A -->|calls| T1[get_inventory]
A -->|calls| T2[create_order]
T1 --> A
T2 --> A
A --> U
Supervisor / orchestrator
When work spans multiple specialities, a supervisor routes to specialist agents and aggregates their results. This keeps each agent's context small and its instructions sharp.
flowchart TD
U[User] --> S[Supervisor Agent]
S --> A[Billing Agent]
S --> B[Logistics Agent]
S --> C[Support Agent]
A --> S
B --> S
C --> S
S --> U
classDef hi fill:#6366f1,stroke:#4f46e5,color:#fff;
class S hi;
Remote tools via MCP
Expose capabilities as MCP servers so any agent can discover and call them over a network boundary — hosted on Function Apps, Logic Apps, or a FastMCP service, and secured behind a gateway with OAuth.
flowchart LR
A1[Agent A] --> G["Agent Gateway
OAuth · rate limit"]
A2[Agent B] --> G
G --> R[(Agent Registry)]
G --> M1[MCP · Function App]
G --> M2[MCP · Logic App]
G --> M3[FastMCP Service]
classDef hi fill:#6366f1,stroke:#4f46e5,color:#fff;
class G hi;
Each pattern above has a dedicated lesson with runnable code, deployment steps, and the trade-offs that matter in production.