Learn how to customize communication flows for your agency.
Class Name | Description | When to Use | Code Link |
---|---|---|---|
SendMessage (default) | This is the default class for sending messages to other agents. It uses synchronous communication with basic COT (Chain of Thought) prompting and allows agents to relay files and modify system instructions for each other. | Suitable for most use cases. Balances speed and functionality. | link |
SendMessageQuick | A variant of the SendMessage class without Chain of Thought prompting, files, and additional instructions. It allows for faster communication without the overhead of COT. | Use for simpler use cases or when you want to save tokens and increase speed. | link |
SendMessageAsyncThreading | Similar to SendMessage but with async_mode='threading' . Each agent will execute asynchronously in a separate thread. In the meantime, the caller agent can continue the conversation with the user and check the results later. | Use for asynchronous applications or when sub-agents take significant amounts of time to complete their tasks. | link |
SendMessageSwarm | Instead of sending a message to another agent, it replaces the caller agent with the recipient agent, similar to OpenAI’s Swarm. The recipient agent will then have access to the entire conversation. | When you need more granular control. It is not able to handle complex multi-step, multi-agent tasks. | link |
SendMessage
classes, simply put it in the send_message_tool_class
parameter when initializing the Agency
class:
SendMessageQuick
class for communication.
SendMessageBase
class. This class extends the BaseTool
class, like any other tools in Agency Swarm, and contains the most basic parameters required for communication, such as the recipient_agent
.
SendMessage
ClassSendMessage
tools have the following components:
message
, message_files
, additional_instructions
are used to provide the recipient agent with the necessary information.run
method: This is where the communication logic is implemented. Most of the time, you just need to map your parameters to self._get_completion()
the same way you would call it in the agency.get_completion()
method.SendMessage
tools, you can use the above components as a template.