I've been digging into an issue with the multi concierge flow. I have 2 agents. Each can add or multiply 2 numbers. I ask the system to 'add 10 to 10 and then multiply the result by 20'.
My expectation is that the first agent says "10 + 10 is 20", then transfers. I see this from the tools and chat history:
tools input:
['transfer_to_agent']
chat history:
[ChatMessage(role=<MessageRole.SYSTEM: 'system'>, additional_kwargs={}, blocks=[TextBlock(block_type='text', text="You are on orchestration agent.\nYour job is to decide which agent to run based on the current state of the user and what they've asked to do.\nYou do not need to figure out dependencies between agents; the agents will handle that themselves.\nHere are the agents you can choose from:\nAddition Agent: Used to add two numbers together.\nMultiply Agent: Used to multiply two numbers together.\n\n\nHere is the current user state:\n\n\nPlease assist the user and transfer them as needed.\nDo not make up information or provide information that is not in the user state or agent context.\n")]), ChatMessage(role=<MessageRole.USER: 'user'>, additional_kwargs={}, blocks=[TextBlock(block_type='text', text='Add 10 to 10 and then multiply the result by 22')]), ChatMessage(role=<MessageRole.ASSISTANT: 'assistant'>, additional_kwargs={'tool_calls': [ChatCompletionMessageToolCall(id='call_SOOg9k2TNckhXV3MAITRo4Vs', function=Function(arguments='{"a":10,"b":10}', name='add_two_numbers'), type='function')]}, blocks=[]), ChatMessage(role=<MessageRole.TOOL: 'tool'>, additional_kwargs={'tool_call_id': 'call_SOOg9k2TNckhXV3MAITRo4Vs', 'name': 'add_two_numbers'}, blocks=[TextBlock(block_type='text', text='20')])]
Results in the following tool selection:
[ToolSelection(tool_id='call_34DqgTGSX5VhWVMmCiTgsFhQ', tool_name='multiply_two_numbers', tool_kwargs={'a': 20, 'b': 22})]
Despite not giving it a "multiply_two_numbers" tool, it says that's the next one it should run, so it fails on 'agent_name' missing.