From 2885e71eb40a29e2f61ef9791103cb9492afe790 Mon Sep 17 00:00:00 2001 From: Kujtim Hoxha Date: Wed, 16 Jul 2025 10:45:15 +0200 Subject: [PATCH] chore: improve thinking --- internal/llm/provider/anthropic.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/llm/provider/anthropic.go b/internal/llm/provider/anthropic.go index ace2c22e2b03b4fbc80b1aeedaf79ced8a0eff48..a65f0b752367ca7b2e62f9dd263a7dd6e5ce7a53 100644 --- a/internal/llm/provider/anthropic.go +++ b/internal/llm/provider/anthropic.go @@ -9,6 +9,7 @@ import ( "log/slog" "regexp" "strconv" + "strings" "time" "github.com/anthropics/anthropic-sdk-go" @@ -270,6 +271,7 @@ func (a *anthropicClient) stream(ctx context.Context, messages []message.Message anthropicStream := a.client.Messages.NewStreaming( ctx, preparedMessages, + option.WithHeaderAdd("anthropic-beta", "interleaved-thinking-2025-05-14"), ) accumulatedMessage := anthropic.Message{} @@ -426,7 +428,8 @@ func (a *anthropicClient) shouldRetry(attempts int, err error) (bool, int64, err } } - if apiErr.StatusCode != 429 && apiErr.StatusCode != 529 { + isOverloaded := strings.Contains(apiErr.Error(), "overloaded") || strings.Contains(apiErr.Error(), "rate limit exceeded") + if apiErr.StatusCode != 429 && apiErr.StatusCode != 529 && !isOverloaded { return false, 0, err }