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
| Name | Parameters | Return Type | Description |
|---|---|---|---|
| SetFallbackTree | ChatTreeData tree | void | Sets the tree used when neither participant supplies a headless tree. |
| TryStartConversation | IAgentService initiator, IAgentService target | bool | Attempts to start a headless conversation. Returns false if either agent is already in a conversation or reserved. |
| EndConversation | IAgentService initiator, IAgentService target | void | Ends the conversation the initiator is participating in. |
| IsInConversation | IAgentService agent | bool | Returns true if the agent is in a conversation or has been reserved. |
| ReserveAgent | IAgentService agent | void | Marks the agent as busy without starting a conversation. |
| ReleaseAgent | IAgentService agent | void | Clears a reservation made by ReserveAgent. |
| GetConversationPartner | IAgentService agent | IAgentService | Returns the other participant in the agent's current conversation, or null. |