Multi-Agent Keywords
This section covers keywords for building multi-agent systems where multiple specialized bots collaborate to handle complex tasks.
Overview
Multi-agent orchestration enables:
- Task specialization - Each bot focuses on what it does best
- Collaborative problem-solving - Bots work together on complex tasks
- Scalable architectures - Add new specialists without modifying existing bots
- Resilient systems - Failures are isolated and handled gracefully
Keyword Summary
| Keyword | Syntax | Description |
|---|---|---|
ADD BOT | ADD BOT "name" TRIGGER ON "keywords" | Add bot to session with triggers |
DELEGATE TO BOT | result = DELEGATE "msg" TO BOT "name" | Send task to another bot |
BROADCAST TO BOTS | BROADCAST "message" TO BOTS | Send message to all bots |
TRANSFER CONVERSATION | TRANSFER CONVERSATION TO "botname" | Hand off conversation |
BOT REFLECTION | BOT REFLECTION true | Enable agent self-analysis |
BOT REFLECTION INSIGHTS | insights = BOT REFLECTION INSIGHTS() | Get reflection results |
ADD BOT
Adds a bot to the current session with optional triggers, tools, and schedules.
' Add bot with keyword triggers
ADD BOT "billing-bot" TRIGGER ON "billing,invoice,payment"
' Add bot with tool access
ADD BOT "analyst-bot" TOOLS "calculate,forecast,report"
' Add bot with scheduled execution
ADD BOT "monitor-bot" SCHEDULE "0 */1 * * *"
' Add bot with multiple configurations
ADD BOT "support-bot" TRIGGER ON "help,support" TOOLS "ticket,escalate"
Trigger Types
| Type | Description | Example |
|---|---|---|
TRIGGER ON | Keyword-based activation | TRIGGER ON "billing,payment" |
TOOLS | Tool-based activation | TOOLS "calculate,search" |
SCHEDULE | Cron-based activation | SCHEDULE "0 9 * * *" |
DELEGATE TO BOT
Sends a task to another bot and optionally waits for a response.
' Fire-and-forget delegation
DELEGATE "Process this order" TO BOT "order-processor"
' Get response from delegation
result = DELEGATE "Calculate ROI" TO BOT "finance-bot"
TALK "Result: " + result
' Delegation with timeout
result = DELEGATE "Analyze report" TO BOT "analyst-bot" TIMEOUT 60
Parameters
| Parameter | Type | Description |
|---|---|---|
message | String | Task or message to send |
botname | String | Target bot name |
TIMEOUT | Number | Optional timeout in seconds (default: 30) |
BROADCAST TO BOTS
Sends a message to all bots in the current session.
' Notify all bots of an event
BROADCAST "New customer signup: " + customerid TO BOTS
' Emergency signal
BROADCAST "MAINTENANCE_MODE" TO BOTS
' Data update notification
BROADCAST "PRICE_UPDATE:" + JSON(prices) TO BOTS
TRANSFER CONVERSATION
Hands off the entire conversation to another bot. The current bot exits.
' Simple transfer
TALK "Let me connect you with our billing specialist."
TRANSFER CONVERSATION TO "billing-bot"
' Transfer with context
SET CONTEXT "issue" AS "refund request"
SET CONTEXT "amount" AS "$150"
TRANSFER CONVERSATION TO "refunds-bot"
' Conditional transfer
IF issueType = "technical" THEN
TRANSFER CONVERSATION TO "tech-support-bot"
ELSE
TRANSFER CONVERSATION TO "general-support-bot"
END IF
BOT REFLECTION
Enables agent self-analysis for continuous improvement.
' Enable reflection
BOT REFLECTION true
' Disable reflection
BOT REFLECTION false
' Monitor specific metric
BOT REFLECTION ON "conversation_quality"
BOT REFLECTION ON "response_accuracy"
BOT REFLECTION ON "user_satisfaction"
Reflection Metrics
| Metric | Description |
|---|---|
conversation_quality | Overall conversation effectiveness |
response_accuracy | Correctness of responses |
user_satisfaction | Estimated user satisfaction |
tone_appropriateness | Whether tone matches context |
resolution_rate | Whether issues were resolved |
BOT REFLECTION INSIGHTS
Retrieves the results of reflection analysis.
' Get insights
insights = BOT REFLECTION INSIGHTS()
' Access properties
PRINT "Quality Score: " + insights.qualityScore
PRINT "Issues: " + insights.issuesCount
' Iterate suggestions
FOR EACH suggestion IN insights.suggestions
PRINT "Suggestion: " + suggestion
NEXT suggestion
' Use for alerting
IF insights.qualityScore < 0.5 THEN
SEND MAIL admin, "Low Quality Alert", insights.summary
END IF
Insights Object
| Property | Type | Description |
|---|---|---|
qualityScore | Number | Overall quality (0-1) |
summary | String | Text summary |
issues | Array | Identified issues |
issuesCount | Number | Count of issues |
suggestions | Array | Improvement suggestions |
criticalIssues | Number | Critical problem count |
timestamp | DateTime | When analyzed |
Common Patterns
Router Pattern
A central bot routes queries to specialists.
' router-bot/start.bas
HEAR userquery
' Classify the query
category = LLM "Classify into: billing, technical, sales, general. Query: " + userquery
SWITCH category
CASE "billing"
result = DELEGATE userquery TO BOT "billing-bot"
CASE "technical"
result = DELEGATE userquery TO BOT "tech-bot"
CASE "sales"
result = DELEGATE userquery TO BOT "sales-bot"
CASE ELSE
result = LLM userquery
END SWITCH
TALK result
Expert Panel Pattern
Multiple bots provide perspectives.
question = "Should we expand into Europe?"
' Get multiple expert opinions
marketView = DELEGATE question TO BOT "market-analyst"
financeView = DELEGATE question TO BOT "finance-expert"
riskView = DELEGATE question TO BOT "risk-assessor"
' Synthesize
synthesis = LLM "Combine these expert views: " + marketView + financeView + riskView
TALK synthesis
Escalation Pattern
Automatic escalation when confidence is low.
' First-line bot
confidence = LLM "Rate confidence (0-100) for: " + userquery
IF confidence < 50 THEN
TALK "Let me connect you with a specialist."
SET CONTEXT "escalation_reason" AS "low_confidence"
TRANSFER CONVERSATION TO "senior-support-bot"
ELSE
response = LLM userquery
TALK response
END IF
Configuration
config.csv Options
name,value
a2a-enabled,true
a2a-timeout,30
a2a-max-hops,5
a2a-retry-count,3
reflection-enabled,true
reflection-interval,10
reflection-min-messages,3
| Option | Default | Description |
|---|---|---|
a2a-enabled | true | Enable agent-to-agent communication |
a2a-timeout | 30 | Default delegation timeout (seconds) |
a2a-max-hops | 5 | Maximum delegation chain depth |
a2a-retry-count | 3 | Retry attempts on failure |
reflection-enabled | true | Enable bot reflection |
reflection-interval | 10 | Messages between reflections |
Best Practices
- Use descriptive bot names -
billing-botnotbot2 - Set appropriate timeouts - Long tasks need longer timeouts
- Handle failures gracefully - Always have fallback paths
- Avoid circular delegation - Bot A → Bot B → Bot A
- Keep chains short - Max 3-4 delegation hops
- Log delegations - Helps debug multi-agent flows
- Review reflection insights - Act on improvement suggestions
See Also
- ADD BOT - Detailed ADD BOT reference
- DELEGATE TO BOT - Delegation details
- BOT REFLECTION - Reflection details
- Multi-Agent Orchestration - Complete guide
- A2A Protocol - Protocol details