diff --git a/agent/llm/providers/anthropic/anthropic.go b/agent/llm/providers/anthropic/anthropic.go index a1843d5c..2c9aec9c 100644 --- a/agent/llm/providers/anthropic/anthropic.go +++ b/agent/llm/providers/anthropic/anthropic.go @@ -362,6 +362,23 @@ func (p *Provider) streamWithRetry(ctx *context.Context, messages []context.Mess Index: event.Index, } startToolCallMessage(msgTracker, toolCallInfo, handler) + + // Send initial ChunkToolCall with id and function name + // to match OpenAI format so CUI can resolve tool name from stored chunks + if handler != nil { + toolCallData, _ := jsoniter.Marshal([]map[string]interface{}{ + { + "index": event.Index, + "id": event.ContentBlock.ID, + "type": "function", + "function": map[string]interface{}{ + "name": event.ContentBlock.Name, + }, + }, + }) + handler(message.ChunkToolCall, toolCallData) + incrementChunk(msgTracker) + } } }