Interface: IAgentCommunicationBus
Defined in: packages/agentos/src/core/agency/IAgentCommunicationBus.ts:335
Interface for the AgentOS Agent Communication Bus.
The Communication Bus enables structured messaging between agents within an agency, supporting various communication patterns:
- Point-to-Point: Direct messages between two agents
- Broadcast: Messages to all agents in an agency
- Request-Response: Synchronous-style communication
- Pub/Sub: Topic-based messaging
- Handoff: Structured task transfer between agents
Example
// Initialize bus
const bus = new AgentCommunicationBus({ logger, routingConfig });
// Agent subscribes to messages
bus.subscribe('analyst-gmi', async (msg) => {
if (msg.type === 'task_delegation') {
const result = await analyzeData(msg.content);
await bus.sendToAgent(msg.fromAgentId, {
type: 'answer',
content: result,
inReplyTo: msg.messageId,
});
}
});
// Coordinator delegates task
await bus.sendToAgent('analyst-gmi', {
type: 'task_delegation',
content: { data: [...], instructions: 'Analyze trends' },
priority: 'high',
});
Methods
acknowledgeMessage()
acknowledgeMessage(
messageId,agentId):Promise<void>
Defined in: packages/agentos/src/core/agency/IAgentCommunicationBus.ts:555
Acknowledges receipt of a message.
Parameters
messageId
string
Message to acknowledge
agentId
string
Acknowledging agent
Returns
Promise<void>
broadcast()
broadcast(
agencyId,message):Promise<DeliveryStatus[]>
Defined in: packages/agentos/src/core/agency/IAgentCommunicationBus.ts:396
Broadcasts a message to all agents in an agency.
Parameters
agencyId
string
Target agency
message
Omit<AgentMessage, "messageId" | "toAgentId" | "sentAt">
Message to broadcast
Returns
Promise<DeliveryStatus[]>
Array of delivery statuses
Example
await bus.broadcast('agency-123', {
type: 'broadcast',
content: 'Meeting in 5 minutes',
priority: 'high',
});
broadcastToRoles()
broadcastToRoles(
agencyId,roleIds,message):Promise<DeliveryStatus[]>
Defined in: packages/agentos/src/core/agency/IAgentCommunicationBus.ts:409
Broadcasts to specific roles within an agency.
Parameters
agencyId
string
Target agency
roleIds
string[]
Target roles
message
Omit<AgentMessage, "messageId" | "sentAt">
Message to broadcast
Returns
Promise<DeliveryStatus[]>
Array of delivery statuses
createTopic()
createTopic(
topic):Promise<MessageTopic>
Defined in: packages/agentos/src/core/agency/IAgentCommunicationBus.ts:513
Creates a message topic.
Parameters
topic
Omit<MessageTopic, "topicId">
Topic configuration
Returns
Promise<MessageTopic>
Created topic
getDeliveryStatus()
getDeliveryStatus(
messageId):Promise<DeliveryStatus|null>
Defined in: packages/agentos/src/core/agency/IAgentCommunicationBus.ts:547
Gets the delivery status of a message.
Parameters
messageId
string
Message identifier
Returns
Promise<DeliveryStatus | null>
Delivery status or null if not found
getMessageHistory()
getMessageHistory(
agentId,options?):Promise<AgentMessage[]>
Defined in: packages/agentos/src/core/agency/IAgentCommunicationBus.ts:583
Gets message history for an agent.
Parameters
agentId
string
Agent identifier
options?
Query options
direction?
"both" | "sent" | "received"
limit?
number
since?
Date
types?
Returns
Promise<AgentMessage[]>
Message history
getStatistics()
getStatistics():
BusStatistics
Defined in: packages/agentos/src/core/agency/IAgentCommunicationBus.ts:574
Gets message bus statistics.
Returns
BusStatistics
Current bus statistics
handoff()
handoff(
fromAgentId,toAgentId,context):Promise<HandoffResult>
Defined in: packages/agentos/src/core/agency/IAgentCommunicationBus.ts:468
Initiates a structured handoff between agents. Used for transferring task ownership with full context.
Parameters
fromAgentId
string
Current owner
toAgentId
string
New owner
context
Handoff context
Returns
Promise<HandoffResult>
Handoff result
Example
const result = await bus.handoff('analyst-gmi', 'reviewer-gmi', {
taskId: 'analysis-task-1',
taskDescription: 'Data analysis for Q4 report',
progress: 0.8,
completedWork: ['Data collection', 'Initial analysis'],
remainingWork: ['Final review', 'Report generation'],
context: { findings: [...] },
reason: 'completion',
});
publishToTopic()
publishToTopic(
topicId,message):Promise<DeliveryStatus[]>
Defined in: packages/agentos/src/core/agency/IAgentCommunicationBus.ts:522
Publishes a message to a topic.
Parameters
topicId
string
Topic identifier
message
Omit<AgentMessage, "messageId" | "sentAt">
Message to publish
Returns
Promise<DeliveryStatus[]>
Delivery statuses for all subscribers
requestResponse()
requestResponse(
targetAgentId,request):Promise<AgentResponse>
Defined in: packages/agentos/src/core/agency/IAgentCommunicationBus.ts:440
Sends a request and waits for a response. Implements request-response pattern over async messaging.
Parameters
targetAgentId
string
Target agent
request
Request message
Returns
Promise<AgentResponse>
Response from target agent
Example
const response = await bus.requestResponse('expert-gmi', {
type: 'question',
content: 'What is the optimal approach?',
fromAgentId: 'coordinator-gmi',
timeoutMs: 30000,
});
if (response.status === 'success') {
console.log('Answer:', response.content);
}
retryDelivery()
retryDelivery(
messageId):Promise<DeliveryStatus>
Defined in: packages/agentos/src/core/agency/IAgentCommunicationBus.ts:563
Retries delivery of a failed message.
Parameters
messageId
string
Message to retry
Returns
Promise<DeliveryStatus>
New delivery status