本页还没有译文
本页 7 段还没译成한국어,下面显示的是英文原文。ToolChoiceViolationError
还没翻译译自英文(ai-sdk.dev)本页 7 段都还没译
This error occurs when a generateText or streamText response does not satisfy
an enforced tool choice. It is thrown when toolChoice is set to 'none' but
the response contains a tool call, when 'required' produces no structured tool
call, or when a specifically selected tool was not called. With streamText,
the error is emitted in the stream. Tool calls returned while 'none' is selected
are not executed.
The error does not automatically interpret text or reasoning as an executable
tool call. When tool calls are allowed, you can inspect content to implement
opt-in recovery, including schema validation before executing any recovered call.
Properties
toolChoice: The effective tool choice that the response did not satisfyfinishReason: The reason why the model finished generating the responseprovider: The provider that returned the responsemodelId: The model that returned the responsecontent: The normalized content returned by the modelmessage: The error message
Checking for this Error
You can check if an error is an instance of ToolChoiceViolationError using:
import { ToolChoiceViolationError } from 'ai';
if (
ToolChoiceViolationError.isInstance(error) &&
error.toolChoice.type !== 'none'
) {
const serializedCall = error.content.find(part => part.type === 'text')?.text;
// Parse and validate serializedCall before treating it as a tool call.
}