本页还没有译文
本页 20 段还没译成한국어,下面显示的是英文原文。hasToolCall
还没翻译译自英文(ai-sdk.dev)本页 20 段都还没译
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'),
});Import
import { hasToolCall } from "ai"API Signature
Parameters
...toolNames(string[]): One or more tool names. The stop condition triggers when any of them is called in the most recent step.
Returns
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.
Examples
Basic Usage
Stop when a specific tool is called:
import { generateText, hasToolCall } from 'ai';
const result = await generateText({
model: yourModel,
tools: {
submitAnswer: submitAnswerTool,
search: searchTool,
},
stopWhen: hasToolCall('submitAnswer'),
});Match Multiple Tools
Stop when any of several tools is called in the most recent step:
import { generateText, hasToolCall } from 'ai';
const result = await generateText({
model: yourModel,
tools: {
weather: weatherTool,
search: searchTool,
finalAnswer: finalAnswerTool,
},
stopWhen: hasToolCall('weather', 'finalAnswer'),
});Combining with Other Conditions
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),
],
});Agent Pattern
Common pattern for agents that run until they provide a final answer:
import { generateText, hasToolCall } from 'ai';
const result = await generateText({
model: yourModel,
tools: {
search: searchTool,
calculate: calculateTool,
finalAnswer: {
description: 'Provide the final answer to the user',
inputSchema: z.object({
answer: z.string(),
}),
execute: async ({ answer }) => answer,
},
},
stopWhen: hasToolCall('finalAnswer'),
});See also
AI 翻译查看英文原文