Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

DELEGATE TO BOT

Delegates a task or message to another bot in a multi-agent system. This enables agent-to-agent communication using the A2A (Agent-to-Agent) protocol.

Syntax

DELEGATE "message" TO BOT "botname"
DELEGATE "message" TO BOT "botname" TIMEOUT seconds
result = DELEGATE "message" TO BOT "botname"

Parameters

ParameterTypeDescription
messageStringThe task or message to send to the target bot
botnameStringName of the target bot to delegate to
secondsNumberOptional timeout in seconds (default: 30)

Description

DELEGATE TO BOT sends a message or task to another bot and optionally waits for a response. This is the core keyword for multi-agent orchestration, enabling:

  • Task specialization - Route tasks to specialized bots
  • Agent collaboration - Multiple bots working together
  • Workload distribution - Spread tasks across agents
  • Expert consultation - Query domain-specific bots

The delegation uses the A2A (Agent-to-Agent) protocol which handles:

  • Message routing between agents
  • Correlation IDs for request/response matching
  • Timeout handling
  • Error propagation

Examples

Basic Delegation

' Delegate a translation task to a specialized bot
DELEGATE "Translate 'Hello World' to Portuguese" TO BOT "translator-bot"
TALK "Translation request sent!"

Get Response from Delegated Bot

' Ask the finance bot for a calculation
result = DELEGATE "Calculate ROI for investment of $10000 with 12% annual return over 5 years" TO BOT "finance-bot"
TALK "The finance expert says: " + result

Delegation with Timeout

' Long-running task with extended timeout
result = DELEGATE "Analyze this quarterly report and provide insights" TO BOT "analyst-bot" TIMEOUT 120
TALK result

Multi-Bot Workflow

' Customer support escalation workflow
issue = "Customer reports billing discrepancy"

' First, check with billing bot
billingInfo = DELEGATE "Check account status for customer " + customerid TO BOT "billing-bot" TIMEOUT 30

IF INSTR(billingInfo, "discrepancy") > 0 THEN
    ' Escalate to senior support
    resolution = DELEGATE "Priority: " + issue + " Details: " + billingInfo TO BOT "senior-support-bot" TIMEOUT 60
    TALK "A senior agent is handling your case: " + resolution
ELSE
    TALK "Your account looks fine: " + billingInfo
END IF

Parallel Expert Consultation

' Get opinions from multiple specialized bots
question = "What's the best approach for this investment portfolio?"

' Delegate to multiple experts
stockAnalysis = DELEGATE question TO BOT "stock-analyst"
bondAnalysis = DELEGATE question TO BOT "bond-analyst"
riskAssessment = DELEGATE question TO BOT "risk-assessor"

' Combine insights
BEGIN TALK
**Investment Analysis Summary**

📈 **Stock Analysis:** {stockAnalysis}

📊 **Bond Analysis:** {bondAnalysis}

⚠️ **Risk Assessment:** {riskAssessment}
END TALK

Conditional Routing

' Route to appropriate specialist based on query type
HEAR userquery

' Use LLM to classify the query
category = LLM "Classify this query into one of: billing, technical, sales, general. Query: " + userquery

SWITCH category
    CASE "billing"
        response = DELEGATE userquery TO BOT "billing-bot"
    CASE "technical"
        response = DELEGATE userquery TO BOT "tech-support-bot"
    CASE "sales"
        response = DELEGATE userquery TO BOT "sales-bot"
    CASE ELSE
        response = DELEGATE userquery TO BOT "general-assistant"
END SWITCH

TALK response

Chain of Delegation

' Research assistant that coordinates multiple bots
topic = "renewable energy trends 2025"

' Step 1: Gather data
rawData = DELEGATE "Search for recent data on " + topic TO BOT "research-bot" TIMEOUT 60

' Step 2: Analyze data
analysis = DELEGATE "Analyze this data and identify key trends: " + rawData TO BOT "analyst-bot" TIMEOUT 45

' Step 3: Generate report
report = DELEGATE "Create an executive summary from this analysis: " + analysis TO BOT "writer-bot" TIMEOUT 30

TALK report

A2A Protocol Details

When you use DELEGATE TO BOT, the system creates an A2A message with:

FieldDescription
from_agentThe current bot’s identifier
to_agentThe target bot name
message_typeDelegate for task delegation
payloadThe message content
correlation_idUnique ID to match response
timestampWhen the message was sent

Error Handling

' Handle delegation failures gracefully
ON ERROR RESUME NEXT

result = DELEGATE "Process payment" TO BOT "payment-bot" TIMEOUT 30

IF ERROR THEN
    TALK "I'm having trouble reaching our payment system. Please try again in a moment."
    ' Log the error
    PRINT "Delegation failed: " + ERROR_MESSAGE
ELSE
    TALK result
END IF
KeywordDescription
ADD BOTAdd a bot to the current session
BROADCAST TO BOTSSend message to all bots
TRANSFER CONVERSATIONHand off conversation to another bot

Config.csv Options

name,value
a2a-enabled,true
a2a-timeout,30
a2a-max-hops,5
a2a-retry-count,3
OptionDefaultDescription
a2a-enabledtrueEnable agent-to-agent communication
a2a-timeout30Default timeout in seconds
a2a-max-hops5Maximum delegation chain depth
a2a-retry-count3Number of retry attempts on failure

Best Practices

  1. Set appropriate timeouts - Long tasks need longer timeouts
  2. Handle failures gracefully - Always have a fallback
  3. Avoid circular delegation - Bot A → Bot B → Bot A
  4. Keep delegation chains short - Max 3-4 hops recommended
  5. Log delegations - Helps with debugging multi-agent flows
  6. Use descriptive bot names - billing-bot not bot2

Limitations

  • Maximum message size: 1MB
  • Maximum timeout: 300 seconds (5 minutes)
  • Maximum concurrent delegations: 10 per session
  • Target bot must be registered and active

See Also