So I have an assistant that uses 5 tools.
And when I run the assistant in the API usually it lists those 5 tools (plus file_search and code_interpreter which are disabled in the UI)
tools=[CodeInterpreterTool(type='code_interpreter'), FileSearchTool(type='file_search'), FunctionTool(function=FunctionDefinition(name='read_article', description='Upload or retrieve the article', parameters={'type': 'object', 'properties': {'file_content': {'type': 'string', 'description': 'The content of the uploaded or retrieved article'}}, 'required': ['file_content']}), type='function'), FunctionTool(function=FunctionDefinition(name='get_latest_components', description='Return the saved components for the article analysis', parameters={'type': 'object', 'properties': {}, 'required': []}), type='function'), FunctionTool(function=FunctionDefinition(name='save_text', description='Save the text of a component of the article analysis to a list', parameters={'type': 'object', 'properties': {'component': {'type': 'string', 'description': "The type of component e.g. ('Summary', 'Lecture_connection', 'Differing_perspectives', 'Left_out')"}, 'text': {'type': 'string', 'description': 'The text of the current component of the article analysis'}}, 'required': ['component', 'text']}), type='function'), FunctionTool(function=FunctionDefinition(name='download_analysis', description='Create download file including the article analysis and rubric score.', parameters={'type': 'object', 'properties': {'article_analysis': {'type': 'string', 'description': 'The article analysis in its final form'}, 'rubric': {'type': 'string', 'description': 'The rubric score for the article, based on the rubric found in the file_search tool'}}, 'required': ['article_analysis', 'rubric']}), type='function')]
But sometimes it calls a tool not on the list called msearch:
required_action=RequiredAction(submit_tool_outputs=RequiredActionSubmitToolOutputs(tool_calls=
[RequiredActionFunctionToolCall(id='call_javyGU9skbT1R48mBdsF7Z2g',
function=Function(arguments='{"queries":["rubric for article analysis","evaluation criteria for article analysis"]}',
name='msearch'),
type='function')]),
type='submit_tool_outputs'),
response_format='auto', started_at=1721824039,
status='requires_action', thread_id='thread_kdb39kfQi8dAxDSwNXGLnZa6', tool_choice='auto',
tools=[CodeInterpreterTool(type='code_interpreter'),
FileSearchTool(type='file_search'),
FunctionTool(function=FunctionDefinition(name='read_article', description='Upload or retrieve the article', parameters={'type': 'object', 'properties': {'file_content': {'type': 'string', 'description': 'The content of the uploaded or retrieved article'}}, 'required': ['file_content']}), type='function'),
FunctionTool(function=FunctionDefinition(name='get_latest_components', description='Return the saved components for the article analysis', parameters={'type': 'object', 'properties': {}, 'required': []}), type='function'),
FunctionTool(function=FunctionDefinition(name='save_text', description='Save the text of a component of the article analysis to a list', parameters={'type': 'object', 'properties': {'component': {'type': 'string', 'description': "The type of component e.g. ('Summary', 'Lecture_connection', 'Differing_perspectives', 'Left_out')"}, 'text': {'type': 'string', 'description': 'The text of the current component of the article analysis'}}, 'required': ['component', 'text']}), type='function'),
FunctionTool(function=FunctionDefinition(name='download_analysis', description='Create download file including the article analysis and rubric score.', parameters={'type': 'object', 'properties': {'article_analysis': {'type': 'string', 'description': 'The article analysis in its final form'}, 'rubric': {'type': 'string', 'description': 'The rubric score for the article, based on the rubric found in the file_search tool'}}, 'required': ['article_analysis', 'rubric']}), type='function')],
I’ve searched the prompt and there’s no reference to msearch. I assume this is a hallucination. I’m beginning to think mini is just not appropriate for function calling. Anyone else seen this or have a solution?