Skip to content
This repository was archived by the owner on Sep 18, 2025. It is now read-only.

Commit 781b296

Browse files
author
adamdottv
committed
fix(anthropic): skip empty messages
1 parent 6419973 commit 781b296

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

internal/llm/provider/anthropic.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -258,10 +258,10 @@ func (a *anthropicProvider) convertToAnthropicTools(tools []tools.BaseTool) []an
258258
}
259259

260260
func (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

Comments
 (0)