From 41b33e85dbea5ad6073b718849355d57ceddffd9 Mon Sep 17 00:00:00 2001 From: Seefs Date: Wed, 28 Jan 2026 13:31:14 +0800 Subject: [PATCH] fix: disable_parallel_tool_use parameter should be removed for tool_choice=none: --- relay/channel/claude/relay-claude.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/relay/channel/claude/relay-claude.go b/relay/channel/claude/relay-claude.go index a17dc75e8..f9f4d4d09 100644 --- a/relay/channel/claude/relay-claude.go +++ b/relay/channel/claude/relay-claude.go @@ -838,9 +838,12 @@ func mapToolChoice(toolChoice any, parallelToolCalls *bool) *dto.ClaudeToolChoic } } - // 设置 disable_parallel_tool_use - // 如果 parallel_tool_calls 为 true,则 disable_parallel_tool_use 为 false - claudeToolChoice.DisableParallelToolUse = !*parallelToolCalls + // Anthropic schema: tool_choice.type=none does not accept extra fields. + // When tools are disabled, parallel_tool_calls is irrelevant, so we drop it. + if claudeToolChoice.Type != "none" { + // 如果 parallel_tool_calls 为 true,则 disable_parallel_tool_use 为 false + claudeToolChoice.DisableParallelToolUse = !*parallelToolCalls + } } return claudeToolChoice