Skip to content

Commit 3a8cd2f

Browse files
authored
Merge pull request #1058 from dgageot/fine-grain-tools
Enable fine grained tool streaming with anthropic
2 parents 51a4255 + 91dba0b commit 3a8cd2f

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

pkg/model/provider/anthropic/beta_client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func (c *Client) createBetaStream(
5555
MaxTokens: maxTokens,
5656
Messages: converted,
5757
Tools: allTools,
58-
Betas: []anthropic.AnthropicBeta{anthropic.AnthropicBetaInterleavedThinking2025_05_14},
58+
Betas: []anthropic.AnthropicBeta{anthropic.AnthropicBetaInterleavedThinking2025_05_14, "fine-grained-tool-streaming-2025-05-14"},
5959
}
6060

6161
// Populate proper Anthropic system prompt from input messages

pkg/model/provider/anthropic/client.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,10 @@ func (c *Client) CreateChatCompletionStream(
294294
slog.Debug("Request", "request", string(b))
295295
}
296296

297-
stream := client.Messages.NewStreaming(ctx, params)
297+
// Add fine-grained tool streaming beta header
298+
betaHeader := option.WithHeader("anthropic-beta", "fine-grained-tool-streaming-2025-05-14")
299+
300+
stream := client.Messages.NewStreaming(ctx, params, betaHeader)
298301
trackUsage := c.ModelConfig.TrackUsage == nil || *c.ModelConfig.TrackUsage
299302
ad := newStreamAdapter(stream, trackUsage)
300303

@@ -313,7 +316,7 @@ func (c *Client) CreateChatCompletionStream(
313316
slog.Warn("Retrying with clamped max_tokens after context length error", "original max_tokens", maxTokens, "clamped max_tokens", newMaxTokens, "used tokens", used)
314317
retryParams := params
315318
retryParams.MaxTokens = newMaxTokens
316-
return newStreamAdapter(client.Messages.NewStreaming(ctx, retryParams), trackUsage)
319+
return newStreamAdapter(client.Messages.NewStreaming(ctx, retryParams, betaHeader), trackUsage)
317320
}
318321

319322
slog.Debug("Anthropic chat completion stream created successfully", "model", c.ModelConfig.Model)

0 commit comments

Comments
 (0)