Creates a stop condition that stops when any specified tool is called in the most recent step.
This function is used with stopWhen in generateText and streamText to control when a tool-calling loop should stop based on whether one of the specified tools has been invoked.
import { generateText, hasToolCall } from 'ai';
const result = await generateText({
model: "anthropic/claude-sonnet-5.5",
tools: {
weather: weatherTool,
finalAnswer: finalAnswerTool,
},
// Stop when the finalAnswer tool is called
stopWhen: hasToolCall('finalAnswer'),
});
A StopCondition function that returns true when any of the specified tools is called in the most recent step. The function can be used with the stopWhen parameter in generateText and streamText.
You can combine multiple stop conditions in an array:
import { generateText, hasToolCall, isStepCount } from 'ai';const result = await generateText({ model: yourModel, tools: { weather: weatherTool, search: searchTool, finalAnswer: finalAnswerTool, }, // Stop when weather tool is called OR finalAnswer is called OR after 5 steps stopWhen: [ hasToolCall('weather'), hasToolCall('finalAnswer'), isStepCount(5), ],});