picoclaw/pkg/providers
Liqiang Liu f81b44bf19
fix(provider): deduplicate tool results and merge consecutive tool_result blocks for Anthropic API (#1793)
Anthropic API returns 400 when multiple tool_result blocks share the same
tool_use_id, or when consecutive tool results are sent as separate user
messages. This fix:

1. Adds ToolCallID deduplication in sanitizeHistoryForProvider (context.go)
   to drop duplicate tool results before sending to any provider.
2. Merges consecutive tool result messages into a single user message with
   multiple tool_result content blocks in Anthropic's buildRequestBody,
   for both "user" (with ToolCallID) and "tool" role messages.
3. Adds tests for both behaviors.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 17:24:46 +08:00
..
anthropic
anthropic_messages fix(provider): deduplicate tool results and merge consecutive tool_result blocks for Anthropic API (#1793) 2026-03-23 17:24:46 +08:00
azure
common
openai_compat
protocoltypes
antigravity_provider.go
antigravity_provider_test.go
claude_cli_provider.go
claude_cli_provider_integration_test.go
claude_cli_provider_test.go
claude_provider.go
claude_provider_test.go
codex_cli_credentials.go
codex_cli_credentials_test.go
codex_cli_provider.go
codex_cli_provider_integration_test.go
codex_cli_provider_test.go
codex_provider.go
codex_provider_test.go
cooldown.go
cooldown_test.go
error_classifier.go
error_classifier_test.go
factory.go
factory_provider.go
factory_provider_test.go
factory_test.go
fallback.go
fallback_multikey_test.go
fallback_test.go
github_copilot_provider.go
http_provider.go
legacy_provider.go
model_ref.go
model_ref_test.go
tool_call_extract.go
toolcall_utils.go
types.go