diff --git a/src/api/providers/anthropic.ts b/src/api/providers/anthropic.ts index e8b90c7481..aa080c87a8 100644 --- a/src/api/providers/anthropic.ts +++ b/src/api/providers/anthropic.ts @@ -1,5 +1,5 @@ import { createAnthropic } from "@ai-sdk/anthropic" -import { streamText, generateText, ToolSet, ModelMessage } from "ai" +import { streamText, generateText, ToolSet } from "ai" import { type ModelInfo, @@ -24,6 +24,7 @@ import { yieldResponseMessage, } from "../transform/ai-sdk" import { applyToolCacheOptions, applySystemPromptCaching } from "../transform/cache-breakpoints" +import { sanitizeMessagesForProvider } from "../transform/sanitize-messages" import { calculateApiCostAnthropic } from "../../shared/cost" import { DEFAULT_HEADERS } from "./constants" @@ -76,8 +77,8 @@ export class AnthropicHandler extends BaseProvider implements SingleCompletionHa ): ApiStream { const modelConfig = this.getModel() - // Convert messages to AI SDK format - const aiSdkMessages = messages as ModelMessage[] + // Sanitize messages for the provider API (allowlist: role, content, providerOptions). + const aiSdkMessages = sanitizeMessagesForProvider(messages) // Convert tools to AI SDK format const openAiTools = this.convertToolsForOpenAI(metadata?.tools)