@@ -258,10 +258,10 @@ func (a *anthropicProvider) convertToAnthropicTools(tools []tools.BaseTool) []an
258258}
259259
260260func (a * anthropicProvider ) convertToAnthropicMessages (messages []message.Message ) []anthropic.MessageParam {
261- anthropicMessages := make ([]anthropic.MessageParam , len (messages ))
261+ anthropicMessages := make ([]anthropic.MessageParam , 0 , len (messages ))
262262 cachedBlocks := 0
263263
264- for i , msg := range messages {
264+ for _ , msg := range messages {
265265 switch msg .Role {
266266 case message .User :
267267 content := anthropic .NewTextBlock (msg .Content ().String ())
@@ -271,7 +271,7 @@ func (a *anthropicProvider) convertToAnthropicMessages(messages []message.Messag
271271 }
272272 cachedBlocks ++
273273 }
274- anthropicMessages [ i ] = anthropic .NewUserMessage (content )
274+ anthropicMessages = append ( anthropicMessages , anthropic .NewUserMessage (content ) )
275275
276276 case message .Assistant :
277277 blocks := []anthropic.ContentBlockParamUnion {}
@@ -295,14 +295,17 @@ func (a *anthropicProvider) convertToAnthropicMessages(messages []message.Messag
295295 blocks = append (blocks , anthropic .ContentBlockParamOfRequestToolUseBlock (toolCall .ID , inputMap , toolCall .Name ))
296296 }
297297
298- anthropicMessages [i ] = anthropic .NewAssistantMessage (blocks ... )
298+ // Skip empty assistant messages completely
299+ if len (blocks ) > 0 {
300+ anthropicMessages = append (anthropicMessages , anthropic .NewAssistantMessage (blocks ... ))
301+ }
299302
300303 case message .Tool :
301304 results := make ([]anthropic.ContentBlockParamUnion , len (msg .ToolResults ()))
302305 for i , toolResult := range msg .ToolResults () {
303306 results [i ] = anthropic .NewToolResultBlock (toolResult .ToolCallID , toolResult .Content , toolResult .IsError )
304307 }
305- anthropicMessages [ i ] = anthropic .NewUserMessage (results ... )
308+ anthropicMessages = append ( anthropicMessages , anthropic .NewUserMessage (results ... ) )
306309 }
307310 }
308311
0 commit comments