SIGN IN SIGN UP

fix: Align Anthropic ToolChoice.None mapping with disable tools intent (#2232)

## 关联 issue
- Fixes #2221

### Root Cause

`AnthropicToolsHelper.applyToolChoice()` 将 `ToolChoice.None` 映射为
`ToolChoice.ofAny(ToolChoiceAny)`,而 `any` 在 Anthropic API
中表示"**必须调用工具**",与 `None` 的"禁止调用工具"语义完全相反。这导致设置了 `ToolChoice.None`
时,模型反而被强制调用工具。

原代码(L95-97):
```java
} else if (toolChoice instanceof ToolChoice.None) {
    // Anthropic doesn't have None, use Any instead
    builder.toolChoice(ofAny(ToolChoiceAny.builder().build()));
```

注释错误地声称"Anthropic doesn't have None",实际上 Anthropic SDK 2.14.0 已提供
`ToolChoiceNone` 和 `ToolChoice.ofNone()`。
B
BG0527 committed
e70f130265dcbe0dd7c2d14b4b1af4f1c25412f1
Parent: 37ea790
Committed by GitHub <noreply@github.com> on 7/15/2026, 2:50:45 PM