Skip to main content

Agent Conversation Orchestrator

Description

Manages all headless (agent-to-agent) conversations. Tracks active conversations by agent ID, prevents agents from entering multiple conversations simultaneously, and creates a Headless Conversation Controller for each new interaction.

Agents can also be reserved without being in a conversation. A reserved agent counts as busy, which is how a player conversation stops a headless conversation from starting on the same agent mid-interaction.

For the authoring-side view of this system, see Agent-to-Agent Conversations.

Interface

Type
IConversationService
IAgentConversationService

Inherits

Type
N/A

Public Methods

NameParametersReturn TypeDescription
SetFallbackTreeChatTreeData treevoidSets the tree used when neither participant supplies a headless tree.
TryStartConversationIAgentService initiator, IAgentService targetboolAttempts to start a headless conversation. Returns false if either agent is already in a conversation or reserved.
EndConversationIAgentService initiator, IAgentService targetvoidEnds the conversation the initiator is participating in.
IsInConversationIAgentService agentboolReturns true if the agent is in a conversation or has been reserved.
ReserveAgentIAgentService agentvoidMarks the agent as busy without starting a conversation.
ReleaseAgentIAgentService agentvoidClears a reservation made by ReserveAgent.
GetConversationPartnerIAgentService agentIAgentServiceReturns the other participant in the agent's current conversation, or null.