| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- ---
- title: "Common Use Cases"
- description: "Explore common use cases for custom communication flows in Agency Swarm."
- icon: "code"
- ---
- In the following sections, we'll look at some common use cases for creating custom communication flows and how to implement them in Agency Swarm.
- #### 1. Adjusting Parameters and Descriptions
- Customize parameters by subclassing `SendMessage` and declaring extra fields directly on the class:
- ```python
- from pydantic import Field
- from agency_swarm import SendMessage
- class SendMessageTask(SendMessage):
- """Use this tool to send tasks to other agents within your agency."""
- tool_name = "send_message_task" # optional, defaults to "send_message"
- task: str = Field(
- description=(
- "Specify the task required for the recipient agent to complete. Focus on "
- "clarifying what the task entails rather than providing exact instructions."
- )
- )
- ```
- #### 2. Adding Additional Fields
- You can add extra fields to capture more context, like key moments and decisions:
- ```python
- from pydantic import Field
- from agency_swarm import SendMessage
- class SendMessageWithContext(SendMessage):
- """SendMessage with key moments and decisions tracking."""
- tool_name = "send_message_with_context"
- key_moments: str = Field(
- description=(
- "Document critical moments and decision points from the current conversation "
- "that the recipient agent needs to understand. Include context about what "
- "has been decided or prioritized that will guide the recipient's tool selection "
- "and task execution. For example: 'User decided to prioritize performance over cost', "
- "'Analysis focus shifted to Q4 optimization', etc."
- )
- )
- decisions: str = Field(
- description=(
- "Summarize the specific decisions made that will directly impact which tools "
- "or approaches the recipient agent should use. Be explicit about choices that "
- "narrow down the scope of work. For example: 'Prioritized performance analysis "
- "over cost reduction', 'Selected React over Vue for frontend', etc. This helps "
- "the recipient agent choose the most appropriate tools and approach."
- )
- )
- ```
- **Usage:**
- ```python
- from agency_swarm import Agency, Agent
- agent = Agent(
- name="MyAgent",
- instructions="You are a helpful assistant.",
- )
- other_agent = Agent(name="OtherAgent", instructions="Provide supporting context.")
- agency = Agency(
- agent,
- other_agent,
- communication_flows=[(agent > other_agent, SendMessageWithContext)],
- )
- ```
- <Tip title="Contributing">
- If you have any ideas for new communication flows, please either adjust this page in docs, or add your new send
- message tool in the `agency_swarm/tools/send_message` folder and open a PR!
- </Tip>
|