From ef8fe528777cf1bea3f536c119e3f591dea26506 Mon Sep 17 00:00:00 2001 From: Richard Feldman Date: Fri, 4 Apr 2025 12:05:41 -0400 Subject: [PATCH] Try adding beta token-efficient tool use for 3.7 Sonnet (#28100) Release Notes: - Enabled [token-efficient tool use (beta)](https://docs.anthropic.com/en/docs/build-with-claude/tool-use/token-efficient-tool-use) for Claude 3.7 Sonnet models --- crates/anthropic/src/anthropic.rs | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/crates/anthropic/src/anthropic.rs b/crates/anthropic/src/anthropic.rs index 6f26ee4c00dcbcc8ae0f65cc5336e15bf296df84..d08708f31003d6d48d23465fe6f3d94b21171e1f 100644 --- a/crates/anthropic/src/anthropic.rs +++ b/crates/anthropic/src/anthropic.rs @@ -220,16 +220,23 @@ impl Model { .map(|header| header.to_string()) .collect::>(); - if let Self::Custom { - extra_beta_headers, .. - } = self - { - headers.extend( - extra_beta_headers - .iter() - .filter(|header| !header.trim().is_empty()) - .cloned(), - ); + match self { + Self::Claude3_7Sonnet | Self::Claude3_7SonnetThinking => { + // Try beta token-efficient tool use (supported in Claude 3.7 Sonnet only) + // https://docs.anthropic.com/en/docs/build-with-claude/tool-use/token-efficient-tool-use + headers.push("token-efficient-tools-2025-02-19".to_string()); + } + Self::Custom { + extra_beta_headers, .. + } => { + headers.extend( + extra_beta_headers + .iter() + .filter(|header| !header.trim().is_empty()) + .cloned(), + ); + } + _ => {} } headers.join(",")