diff --git a/python/src/agent_squad/agents/supervisor_agent.py b/python/src/agent_squad/agents/supervisor_agent.py index 5f90183c..fdefe86e 100644 --- a/python/src/agent_squad/agents/supervisor_agent.py +++ b/python/src/agent_squad/agents/supervisor_agent.py @@ -66,8 +66,8 @@ class SupervisorAgent(Agent): def __init__(self, options: SupervisorAgentOptions): options.validate() - options.name = options.lead_agent.name - options.description = options.lead_agent.description + options.name = options.name or options.lead_agent.name + options.description = options.description or options.lead_agent.description super().__init__(options) self.lead_agent: 'Union[AnthropicAgent, BedrockLLMAgent]' = options.lead_agent diff --git a/python/src/tests/agents/test_supervisor_agent.py b/python/src/tests/agents/test_supervisor_agent.py index e08033c6..5eec8f70 100644 --- a/python/src/tests/agents/test_supervisor_agent.py +++ b/python/src/tests/agents/test_supervisor_agent.py @@ -102,6 +102,24 @@ async def test_supervisor_agent_initialization(mock_boto3_client): assert agent.trace is None assert isinstance(agent.supervisor_tools, AgentTools) +@pytest.mark.asyncio +async def test_supervisor_agent_preserves_custom_name_and_description(mock_boto3_client): + """Custom name/description on SupervisorAgentOptions must not be overwritten by lead_agent values""" + lead_agent = MockBedrockLLMAgent(BedrockLLMAgentOptions( + name="Lead Agent Name", + description="Lead Agent Description" + )) + + agent = SupervisorAgent(SupervisorAgentOptions( + name="Custom Supervisor Name", + description="Custom Supervisor Description", + lead_agent=lead_agent, + team=[] + )) + + assert agent.name == "Custom Supervisor Name" + assert agent.description == "Custom Supervisor Description" + @pytest.mark.asyncio async def test_supervisor_agent_validation(mock_boto3_client): """Test SupervisorAgent validation""" diff --git a/typescript/src/agents/supervisorAgent.ts b/typescript/src/agents/supervisorAgent.ts index 2a987fe3..ba377968 100644 --- a/typescript/src/agents/supervisorAgent.ts +++ b/typescript/src/agents/supervisorAgent.ts @@ -57,8 +57,8 @@ export class SupervisorAgent extends Agent { super({ ...options, - name: options.leadAgent.name, - description: options.leadAgent.description, + name: options.name ?? options.leadAgent.name, + description: options.description ?? options.leadAgent.description, }); this.leadAgent = options.leadAgent;