mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-09 08:08:32 +00:00
Fixes #3847 The agent execution loop was not stopping after max_iter was reached. After calling handle_max_iterations_exceeded(), the loop continued and made additional LLM calls, overwriting the formatted answer. Changes: - Modified handle_max_iterations_exceeded() to always return AgentFinish instead of AgentAction | AgentFinish, ensuring a final answer is always produced when max iterations are exceeded - Added early return in _invoke_loop() after handle_max_iterations_exceeded() to prevent additional LLM calls - Updated test_agent_custom_max_iterations to expect 2 LLM calls instead of 3 (1 initial + 1 from max_iter handler, no longer 3 due to extra call bug) - Added test_agent_max_iterations_zero to verify no get_llm_response calls when max_iter=0 - Added test_agent_max_iterations_one_stops_after_two_calls to verify exactly 2 LLM calls with max_iter=1 - Fixed type annotations to properly handle AgentAction | AgentFinish | None Co-Authored-By: João <joao@crewai.com>