Scenario A: Multi-Agent Coordination Supervisor Orchestration
User asks a complex question requiring multiple specialist agents. The Supervisor coordinates Travel, Weather, and Calendar agents to provide a comprehensive response.
You
I'm flying to Rome next week - what should I pack and when should I leave for the airport?
💬
User Message
Natural language
🧠
Supervisor
Orchestrate agents
Travel Agent
Flight details
🌦
Weather Agent
Rome forecast
📅
Calendar Agent
Your schedule
🎯
Intent Detection
Multi-domain request identified
MULTI_AGENT
Intent Type
coordination
Category
travel, weather, calendar
Domains Detected
0.97
Confidence
Coordination Confidence 97%
🔀
Coordinating Specialists
Travel Agent
0.95
Relevance
🌦
Weather Agent
0.92
Relevance
📅
Calendar Agent
0.89
Relevance
Umber
Great question! I checked with a few specialists to give you a complete answer:

🌦 Weather in Rome (next week): Expect mild temperatures around 15-18°C (59-64°F) with occasional clouds. Pack layers - light jacket, comfortable walking shoes, and a compact umbrella.

✈ Your Flight: Your flight departs Tuesday at 2:15 PM from Terminal B. I'd recommend leaving home by 11:00 AM to allow time for traffic and security.

📅 Calendar Note: You have a morning meeting at 9 AM Tuesday - you'll have time to finish before heading to the airport.

Want me to set a reminder to start packing, or create a pre-flight checklist?
Side Effects
Travel Agent: Retrieved flight FCO-123 from calendar
Complete
🌦
Weather Agent: Fetched 7-day Rome forecast
Complete
📅
Calendar Agent: Checked Tuesday schedule for conflicts
Complete
🧠
Memory: Trip to Rome noted for future context
Queued
💡 Pattern: Multi-Agent Coordination
Complex requests spanning multiple domains trigger the Supervisor to coordinate specialist agents. Each agent contributes its expertise (Travel for flight info, Weather for forecast, Calendar for schedule), and the Supervisor synthesizes their responses into one cohesive answer. This "Ask the Expert" pattern ensures accurate, domain-specific information.
Scenario B: Card Action Response Sidecar Action
User taps an action button on a sidecar card. The action is dispatched to the appropriate handler without going through full intent classification.
Amazon Order Confirmation
orders@amazon.com • 2 hours ago
Your order #112-4567890 has shipped and will arrive Thursday...
👆
Tap Action
"Archive" button
ActionDispatcher
Route by action type
📥
archive_email
Execute handler
Direct Action Dispatch
No intent classification needed
CARD_ACTION
Dispatch Type
archive_email
Handler
email-triage
Source Card
direct
Route Method
// HeyUmberActionDispatcher.ts
async dispatchAction(action: CardAction): Promise<void> {
  const handler = this.handlers.get(action.type);

  // No LLM call - direct handler execution
  await handler.execute({
    actionType: 'archive_email',
    payload: {
      emailId: 'msg-12345',
      cardId: 'card-triage-001'
    }
  });
}
Umber
Done! I've archived the Amazon order email. You can find it in your archive if you need it later.
Actions Taken
📥
Email moved to archive
Complete
🗑
Card dismissed from sidecar
Complete
📊
Triage feedback recorded for learning
Complete
💡 Pattern: Direct Dispatch
Card actions bypass intent classification entirely. The action type maps directly to a handler function, making the response instant. This is how the system achieves sub-100ms response times for button taps.
45ms
Response Time
0
LLM Calls
$0
Token Cost
Scenario C: Decomposition Chat Task Intake
User expresses a goal. The system detects decomposition intent and routes through the task intake pipeline, potentially asking clarifying questions.
You
I want to learn piano
💬
User Message
Goal expression
🧠
DecompositionDetector
Identify goal intent
🔍
TaskScopeClassifier
Determine scope
📝
MediumTaskHandler
Create epic
🎯
Decomposition Detection
Goal identified for task intake
DECOMPOSE
Intent
MEDIUM
Scope
learning
Domain
0.89
Confidence
Umber
That's a great goal! To help you get started with piano, I have a few questions:

1. Have you played any instrument before?
2. Do you have access to a piano or keyboard?
3. Are you interested in classical, jazz, or popular music?
You
I played guitar in high school. I just bought a digital keyboard. I want to play pop songs mostly.
🎹
Generated Learning Plan
Epic Learn Piano Fundamentals ~20h
Feature Basic Technique
Story Learn proper hand position 1h
Story Practice C major scale 2h
Story Learn basic finger exercises 2h
Feature First Pop Song
Story Learn C-G-Am-F chord progression 3h
Story Practice "Someone Like You" intro 4h
Umber
Perfect! Since you have music experience, you'll pick this up quickly. I've created a learning plan with ~20 hours of practice.

I've scheduled your first practice session: "Learn proper hand position" for tomorrow at 7:00 PM. Want me to adjust the timing?
💡 Pattern: Conversational Decomposition
The DecompositionChatHandler identifies goal expressions and gathers context through conversation before creating a structured task hierarchy. This produces better plans than single-shot decomposition.
Scenario D: Memory Recall Preference Storage
User explicitly shares a preference. The system stores it in memory for future personalization without breaking conversational flow.
You
Remember that I don't eat seafood - I'm allergic.
💬
User Message
Explicit memory
🧠
RecallIntentDetector
Identify storage cue
💾
MemoryAgent
Extract & store
🧠
Memory Intent Detection
Explicit storage request identified
REMEMBER
Intent
explicit
Trigger Type
health/food
Category
0.98
Confidence
💾
Memory Extracted
Stored for personalization
Preference User does not eat seafood High
Fact User has seafood allergy High
Umber
Got it! I've noted that you have a seafood allergy. I'll make sure to exclude seafood from any recipe suggestions or restaurant recommendations.
Later that week...
You
What should I make for dinner?
Umber
How about a Chicken Stir-Fry? It's quick, healthy, and I know you enjoy Asian flavors.

(Note: I'm suggesting chicken instead of shrimp since you mentioned your seafood allergy)
💡 Pattern: Memory-Aware Responses
Stored memories are injected into agent context automatically. When GeneralAgent processes the dinner question, it sees the seafood allergy fact and adjusts recommendations without the user needing to repeat themselves.
2
Facts Stored
forever
Retention
100%
Recall Rate
Scenario E: Domain Expert Route Ask the Expert
User asks about a specific domain. The primary agent recognizes it needs expert knowledge and delegates to a specialist agent.
You
What's the weather going to be like for my Rome trip next week?
💬
User Message
Multi-domain query
🧠
AgentRouter
Primary: Travel
TravelAgent
Trip context
Ask the Expert Chain
Travel Agent
Primary handler
"I have trip context for Rome (Mar 15-18). Requesting weather assessment from Weather Agent..."
🌤
Weather Agent
Domain expert
"Rome forecast Mar 15-18: Partly cloudy, highs 15-18°C (59-64°F), 20% rain chance on day 2. Recommend layers and light jacket."
Travel Agent
Response synthesis
Combines weather data with trip itinerary to provide contextual packing advice and activity recommendations
🔀
Agents Involved
Travel Agent
Primary
Handler
🌤
Weather Agent
Expert
Consultant
📅
Calendar Agent
N/A
Not needed
Umber
Great news for your Rome trip (March 15-18)! The weather looks lovely:

Forecast: Partly cloudy with highs of 15-18°C (59-64°F). There's a slight chance of rain on your second day (March 16), so pack a compact umbrella.

Packing suggestion: Layers work best - a light jacket and comfortable walking shoes. You'll be comfortable exploring the Colosseum and Vatican without getting too warm.

Shall I add a packing checklist to your trip plan?
💡 Pattern: Ask the Expert
TravelAgent doesn't call weather APIs directly. Instead, it asks WeatherAgent for an assessment. WeatherAgent has domain knowledge about what weather means for activities and packing. This separation keeps each agent focused on their expertise.
// TravelAgent.ts - Ask the Expert pattern
const weatherAssessment = await this.requestFromAgent(
  'weather-agent',
  {
    type: 'TRIP_WEATHER_ASSESSMENT',
    payload: {
      destination: 'Rome, Italy',
      dates: ['2024-03-15', '2024-03-18'],
      activities: ['sightseeing', 'walking tours']
    }
  }
);

// Weather Agent returns interpreted data, not raw forecast
// { packingAdvice, activityImpact, alerts }
2
Agents Used
1
Expert Calls
~800ms
Total Time