mirror of https://github.com/aliasrobotics/cai.git
# Fix potential infinite tool call loop by resetting tool_choice after tool execution ## Summary This PR fixes an issue where setting `tool_choice` to "required" or a specific function name could cause models to get stuck in an infinite tool call loop. When `tool_choice` is set to force tool usage, this setting persists across model invocations. This PR automatically resets `tool_choice` to "auto" after tool execution, allowing the model to decide whether to make additional tool calls in subsequent turns. Unlike using `tool_use_behavior="stop_on_first_tool"`, this approach lets the model continue processing tool results while preventing forced repeated tool calls. ## Test plan - Added tests to verify tool_choice reset behavior for both agent and run_config settings - Added integration test to verify the solution prevents infinite loops - All tests pass ## Checks - [x] I've added new tests for the fix - [x] I've updated the relevant documentation (added comment in code) - [x] I've run `make lint` and `make format` - [x] I've made sure tests pass |
||
|---|---|---|
| .. | ||
| assets | ||
| ref | ||
| stylesheets | ||
| voice | ||
| agents.md | ||
| config.md | ||
| context.md | ||
| examples.md | ||
| guardrails.md | ||
| handoffs.md | ||
| index.md | ||
| models.md | ||
| multi_agent.md | ||
| quickstart.md | ||
| results.md | ||
| running_agents.md | ||
| streaming.md | ||
| tools.md | ||
| tracing.md | ||