Gpt-4o-mini calls non-existent function tool

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?

To expand this thread maybe a little into gpt4-mini problems: in 50 % of cases it tells me it doesn’t have vision capabilities and just refuses, breaking the pipeline. Maybe it has been trained on a lot but not TOLD how to handle request about those skills well.

I’m having the same problem. Did you find the solution already?

I’m seeing this pop up more recently - msearch I believe is the internal file search tool - but for some reason it gets sent to my app as a tool request. Hopefully they know about it as an issue.

I’ve received that before as well. It’s like it knows it’s supposed to use file_search but tries to use msearch. It’s very frustrating. Doesn’t seem to happen in playground but through my app api it does. Strange. They really need to get this fixed.

1 Like

Did you find any solution for this?

This topic has a report of the same behavior File_search Not Working with Function Calls—Same Setup Works Without Them! Any Fixes?

+1 to this, OpenAI is requesting msearch to be resolved on our side.
How can we get further assistance?

1 Like

Been waiting months for some kind of response to this - only happens for me with gpt-4o-mini.

I, too, am seeing the msearch… it is an unknown function call when passing web content to it… model is 4o-mini, vector storage exists and file search is on for it.

Same problem here, it happens only on the 4o-mini, not the 4o…
Current solution for me is just answer with: “I cant give an answer to that, use your internal file_search function”. Sometimes it works, most of the time not…

1 Like