Agent hierarchy
You can create complex multi-layered orchestration topologies by specifying sub-agents for sub-agents.
For example, you can specify that main agent A has sub-agents B and C. And then, you can specify for agent C, that it has it’s own sub-agents D and E. When conversation with agent A starts, all above-mentioned sub-agents are initialized and are part of the conversation.
Agents are allowed to communicate (via pass_question or send_message tools) with:
-
their parent - if such exists
-
their siblings - i.e. sub-agents that share the same parent
-
their sub-agents - i.e. any agent explicitly configured as sub-agent
In the above example:
-
A may communicate with B and C
-
B may communicate with A and C
-
C may communicate with A, B, D and E
-
D may communicate with C and E
-
E may communicate with C and D
If, for example, you want to allow D communicate with B, you may add B as D’s sub-agent.