I am trying to pass TextFiles to my Crew via the 'input_files' parameter. Since the update to crewai 1.10 -> 1.12.2, this results in an Error when using non-multimodel models.
When using only text files, I don't expect to need a vision-capable model. I expect the model to digest the actual text of the files, not 'look' at it.
Traceback (most recent call last):
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agent/core.py", line 716, in execute_task
result = self._execute_without_timeout(task_prompt, task)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agent/core.py", line 781, in _execute_without_timeout
return self.agent_executor.invoke(
~~~~~~~~~~~~~~~~~~~~~~~~~~^
{
^
...<4 lines>...
}
^
)["output"]
^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agents/crew_agent_executor.py", line 227, in invoke
formatted_answer = self._invoke_loop()
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agents/crew_agent_executor.py", line 323, in _invoke_loop
return self._invoke_loop_native_tools()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agents/crew_agent_executor.py", line 597, in _invoke_loop_native_tools
raise e
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agents/crew_agent_executor.py", line 516, in _invoke_loop_native_tools
answer = get_llm_response(
llm=self.llm,
...<9 lines>...
verbose=self.agent.verbose,
)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/utilities/agent_utils.py", line 475, in get_llm_response
raise e
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/utilities/agent_utils.py", line 465, in get_llm_response
answer = llm.call(
messages,
...<5 lines>...
response_model=response_model,
)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/llms/providers/openai/completion.py", line 425, in call
formatted_messages = self._format_messages(messages)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/llms/providers/openai/completion.py", line 2311, in _format_messages
base_formatted = super()._format_messages(messages)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/llms/base_llm.py", line 630, in _format_messages
return self._process_message_files(messages)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/llms/base_llm.py", line 649, in _process_message_files
raise ValueError(
...<3 lines>...
)
ValueError: Model 'anthropic/claude-sonnet-4.6' does not support multimodal input, but files were provided via 'input_files'. Use a vision-capable model or remove the file inputs.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agent/core.py", line 716, in execute_task
result = self._execute_without_timeout(task_prompt, task)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agent/core.py", line 781, in _execute_without_timeout
return self.agent_executor.invoke(
~~~~~~~~~~~~~~~~~~~~~~~~~~^
{
^
...<4 lines>...
}
^
)["output"]
^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agents/crew_agent_executor.py", line 227, in invoke
formatted_answer = self._invoke_loop()
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agents/crew_agent_executor.py", line 323, in _invoke_loop
return self._invoke_loop_native_tools()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agents/crew_agent_executor.py", line 597, in _invoke_loop_native_tools
raise e
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agents/crew_agent_executor.py", line 516, in _invoke_loop_native_tools
answer = get_llm_response(
llm=self.llm,
...<9 lines>...
verbose=self.agent.verbose,
)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/utilities/agent_utils.py", line 475, in get_llm_response
raise e
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/utilities/agent_utils.py", line 465, in get_llm_response
answer = llm.call(
messages,
...<5 lines>...
response_model=response_model,
)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/llms/providers/openai/completion.py", line 425, in call
formatted_messages = self._format_messages(messages)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/llms/providers/openai/completion.py", line 2311, in _format_messages
base_formatted = super()._format_messages(messages)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/llms/base_llm.py", line 630, in _format_messages
return self._process_message_files(messages)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/llms/base_llm.py", line 649, in _process_message_files
raise ValueError(
...<3 lines>...
)
ValueError: Model 'anthropic/claude-sonnet-4.6' does not support multimodal input, but files were provided via 'input_files'. Use a vision-capable model or remove the file inputs.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/src/crewai_demo/main.py", line 25, in run
CrewaiDemo().crew().kickoff(
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
inputs=inputs,
^^^^^^^^^^^^^^
input_files=file, # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/crew.py", line 739, in kickoff
result = self._run_sequential_process()
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/crew.py", line 1164, in _run_sequential_process
return self._execute_tasks(self.tasks)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/crew.py", line 1256, in _execute_tasks
task_output = task.execute_sync(
agent=exec_data.agent,
context=context,
tools=exec_data.tools,
)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/task.py", line 505, in execute_sync
return self._execute_core(agent, context, tools)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/task.py", line 786, in _execute_core
raise e # Re-raise the exception after emitting the event
^^^^^^^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/task.py", line 698, in _execute_core
result = agent.execute_task(
task=self,
context=context,
tools=tools,
)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agent/core.py", line 729, in execute_task
result = self._handle_execution_error(e, task, context, tools)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agent/core.py", line 641, in _handle_execution_error
return self.execute_task(task, context, tools)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agent/core.py", line 729, in execute_task
result = self._handle_execution_error(e, task, context, tools)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agent/core.py", line 641, in _handle_execution_error
return self.execute_task(task, context, tools)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agent/core.py", line 729, in execute_task
result = self._handle_execution_error(e, task, context, tools)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agent/core.py", line 640, in _handle_execution_error
self._check_execution_error(e, task)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agent/core.py", line 620, in _check_execution_error
raise e
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agent/core.py", line 716, in execute_task
result = self._execute_without_timeout(task_prompt, task)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agent/core.py", line 781, in _execute_without_timeout
return self.agent_executor.invoke(
~~~~~~~~~~~~~~~~~~~~~~~~~~^
{
^
...<4 lines>...
}
^
)["output"]
^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agents/crew_agent_executor.py", line 227, in invoke
formatted_answer = self._invoke_loop()
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agents/crew_agent_executor.py", line 323, in _invoke_loop
return self._invoke_loop_native_tools()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agents/crew_agent_executor.py", line 597, in _invoke_loop_native_tools
raise e
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/agents/crew_agent_executor.py", line 516, in _invoke_loop_native_tools
answer = get_llm_response(
llm=self.llm,
...<9 lines>...
verbose=self.agent.verbose,
)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/utilities/agent_utils.py", line 475, in get_llm_response
raise e
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/utilities/agent_utils.py", line 465, in get_llm_response
answer = llm.call(
messages,
...<5 lines>...
response_model=response_model,
)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/llms/providers/openai/completion.py", line 425, in call
formatted_messages = self._format_messages(messages)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/llms/providers/openai/completion.py", line 2311, in _format_messages
base_formatted = super()._format_messages(messages)
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/llms/base_llm.py", line 630, in _format_messages
return self._process_message_files(messages)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/lib/python3.13/site-packages/crewai/llms/base_llm.py", line 649, in _process_message_files
raise ValueError(
...<3 lines>...
)
ValueError: Model 'anthropic/claude-sonnet-4.6' does not support multimodal input, but files were provided via 'input_files'. Use a vision-capable model or remove the file inputs.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/.venv/bin/run_crew", line 10, in <module>
sys.exit(run())
~~~^^
File "/Users/Martin.Neudecker/cg_ai/playground/scripts/crewai_demo/src/crewai_demo/main.py", line 30, in run
raise Exception(f"An error occurred while running the crew: {e}")
Exception: An error occurred while running the crew: Model 'anthropic/claude-sonnet-4.6' does not support multimodal input, but files were provided via 'input_files'. Use a vision-capable model or remove the file inputs.
An error occurred while running the crew: Command '['uv', 'run', 'run_crew']' returned non-zero exit status 1.
In case that is actually the intended behavior for TextFiles (which seems odd), I guess one should perform string-interpolation to append the content of the text files to the initial prompt?
Attaching files directly to the task does also work.
Attaching files directly to the task instead is working as expected strangely, which makes me think this is indeed a bug.
Description
I am trying to pass TextFiles to my Crew via the 'input_files' parameter. Since the update to crewai 1.10 -> 1.12.2, this results in an Error when using non-multimodel models.
Steps to Reproduce
crewai create crew demo)Expected behavior
When using only text files, I don't expect to need a vision-capable model. I expect the model to digest the actual text of the files, not 'look' at it.
Screenshots/Code snippets
Adapted run method:
Results in:
ValueError: Model 'anthropic/claude-sonnet-4.6' does not support multimodal input, but files were provided via 'input_files'. Use a vision-capable model or remove the file inputs.Operating System
macOS Big Sur
Python Version
3.12
crewAI Version
1.12.2
crewAI Tools Version
1.12.2
Virtual Environment
Venv
Evidence
Full stacktrace:
Possible Solution
In case that is actually the intended behavior for TextFiles (which seems odd), I guess one should perform string-interpolation to append the content of the text files to the initial prompt?
Attaching files directly to the task does also work.
Additional context
Attaching files directly to the task instead is working as expected strangely, which makes me think this is indeed a bug.