@@ -302,9 +302,12 @@ export const anthropicProvider: ProviderConfig = {
302302 const providerStartTime = Date . now ( )
303303 const providerStartTimeISO = new Date ( providerStartTime ) . toISOString ( )
304304
305- const nonStreamingMaxTokens =
306- Number . parseInt ( String ( request . maxTokens ) ) ||
307- getMaxOutputTokensForModel ( request . model , false )
305+ // Cap intermediate calls at non-streaming limit to avoid SDK timeout errors,
306+ // but allow users to set lower values if desired
307+ const nonStreamingLimit = getMaxOutputTokensForModel ( request . model , false )
308+ const nonStreamingMaxTokens = request . maxTokens
309+ ? Math . min ( Number . parseInt ( String ( request . maxTokens ) ) , nonStreamingLimit )
310+ : nonStreamingLimit
308311 const intermediatePayload = { ...payload , max_tokens : nonStreamingMaxTokens }
309312
310313 try {
@@ -679,8 +682,12 @@ export const anthropicProvider: ProviderConfig = {
679682 const providerStartTime = Date . now ( )
680683 const providerStartTimeISO = new Date ( providerStartTime ) . toISOString ( )
681684
682- const toolLoopMaxTokens =
683- Number . parseInt ( String ( request . maxTokens ) ) || getMaxOutputTokensForModel ( request . model , false )
685+ // Cap intermediate calls at non-streaming limit to avoid SDK timeout errors,
686+ // but allow users to set lower values if desired
687+ const nonStreamingLimit = getMaxOutputTokensForModel ( request . model , false )
688+ const toolLoopMaxTokens = request . maxTokens
689+ ? Math . min ( Number . parseInt ( String ( request . maxTokens ) ) , nonStreamingLimit )
690+ : nonStreamingLimit
684691 const toolLoopPayload = { ...payload , max_tokens : toolLoopMaxTokens }
685692
686693 try {
0 commit comments