Skip to main content

AnthropicConfig

Struct AnthropicConfig 

Source
pub struct AnthropicConfig {
Show 15 fields pub api_key: String, pub model: String, pub max_tokens: u32, pub base_url: Option<String>, pub prompt_caching: bool, pub thinking: Option<ThinkingMode>, pub effort: Option<Effort>, pub fast_mode: bool, pub citations: bool, pub inference_geo: Option<String>, pub context_management: Option<ContextManagement>, pub service_tier: Option<String>, pub beta_features: Vec<String>, pub api_version: Option<String>, pub tool_search: Option<ToolSearchConfig>,
}
Available on crate feature anthropic only.
Expand description

Configuration for Anthropic API.

§Example

use adk_model::anthropic::{AnthropicConfig, ThinkingMode, Effort};

// Opus 4.7 with adaptive thinking and xhigh effort (recommended)
let config = AnthropicConfig::new("sk-ant-xxx", "claude-opus-4-7")
    .with_thinking_mode(ThinkingMode::Adaptive)
    .with_effort(Effort::XHigh);

// Adaptive thinking with medium effort (recommended for Sonnet 4.6)
let config = AnthropicConfig::new("sk-ant-xxx", "claude-sonnet-4-6")
    .with_thinking_mode(ThinkingMode::Adaptive)
    .with_effort(Effort::Medium);

// Budget-based thinking (legacy, rejected on Opus 4.7)
let config = AnthropicConfig::new("sk-ant-xxx", "claude-sonnet-4-5")
    .with_thinking_mode(ThinkingMode::Enabled { budget_tokens: 8192 });

// Prompt caching (enabled by default, can be disabled)
let config = AnthropicConfig::new("sk-ant-xxx", "claude-sonnet-4-6")
    .with_prompt_caching(false); // opt out

Fields§

§api_key: String

Anthropic API key.

§model: String

Model name (e.g., "claude-opus-5", "claude-sonnet-5").

§max_tokens: u32

Maximum tokens to generate.

§base_url: Option<String>

Optional custom base URL (for proxies, Ollama, Vercel Gateway, etc.).

§prompt_caching: bool

Enable prompt caching with cache_control blocks.

Defaults to true. Anthropic prompt caching reduces costs and latency by reusing previously processed context. Disable with with_prompt_caching(false).

§thinking: Option<ThinkingMode>

Thinking mode configuration.

§effort: Option<Effort>

Effort level (goes into output_config.effort). Works with or without thinking enabled.

§fast_mode: bool

Enable fast mode for Claude Opus 5 or Claude Opus 4.8 (research preview). Delivers up to 2.5× higher output tokens/sec at premium pricing.

§citations: bool

Enable citations on documents in requests.

§inference_geo: Option<String>

Geographic routing for data residency (e.g., "US", "EU").

§context_management: Option<ContextManagement>

Server-side context management (tool result clearing, thinking block clearing). Requires beta header (auto-injected by adk-anthropic).

§service_tier: Option<String>

Service tier ("auto" or "standard_only").

§beta_features: Vec<String>

Beta feature headers (e.g., "prompt-caching-2024-07-31").

§api_version: Option<String>

Custom API version header override.

§tool_search: Option<ToolSearchConfig>

Tool search configuration for regex-based dynamic tool discovery. When set, only tools whose names match the regex pattern are loaded. When None, all available tools are loaded.

Implementations§

Source§

impl AnthropicConfig

Source

pub fn new( api_key: impl Into<String>, model: impl Into<String>, ) -> AnthropicConfig

Available on crate feature models only.

Create a new Anthropic config with the given API key and model.

Source

pub fn with_max_tokens(self, max_tokens: u32) -> AnthropicConfig

Available on crate feature models only.

Set the maximum tokens to generate.

Source

pub fn with_base_url(self, base_url: impl Into<String>) -> AnthropicConfig

Available on crate feature models only.

Set a custom base URL.

Source

pub fn with_prompt_caching(self, enabled: bool) -> AnthropicConfig

Available on crate feature models only.

Enable or disable prompt caching.

Source

pub fn with_thinking_mode(self, mode: ThinkingMode) -> AnthropicConfig

Available on crate feature models only.

Set the thinking mode.

Source

pub fn with_thinking(self, budget_tokens: u32) -> AnthropicConfig

Available on crate feature models only.

Convenience: enable budget-based thinking with the given token budget.

Source

pub fn with_effort(self, effort: Effort) -> AnthropicConfig

Available on crate feature models only.

Set the effort level (goes into output_config.effort).

Source

pub fn with_fast_mode(self, enabled: bool) -> AnthropicConfig

Available on crate feature models only.

Enable fast mode for Claude Opus 5 or Claude Opus 4.8.

Source

pub fn with_citations(self, enabled: bool) -> AnthropicConfig

Available on crate feature models only.

Enable citations on documents.

Source

pub fn with_inference_geo(self, geo: impl Into<String>) -> AnthropicConfig

Available on crate feature models only.

Set geographic routing for data residency.

Source

pub fn with_service_tier(self, tier: impl Into<String>) -> AnthropicConfig

Available on crate feature models only.

Set the service tier.

Source

pub fn with_context_management(self, cm: ContextManagement) -> AnthropicConfig

Available on crate feature models only.

Set context management (tool result clearing, thinking block clearing).

Source

pub fn with_beta_feature(self, feature: impl Into<String>) -> AnthropicConfig

Available on crate feature models only.

Add a beta feature header value.

Source

pub fn with_api_version(self, version: impl Into<String>) -> AnthropicConfig

Available on crate feature models only.

Set a custom API version header.

Available on crate feature models only.

Set tool search configuration for dynamic tool discovery.

When set, only tools whose names match the regex pattern are loaded per request. When not set, all available tools are loaded.

§Example
use adk_model::anthropic::AnthropicConfig;
use adk_anthropic::ToolSearchConfig;

let config = AnthropicConfig::new("sk-ant-xxx", "claude-sonnet-4-6")
    .with_tool_search(ToolSearchConfig::new("^(search|fetch)_.*"));

Trait Implementations§

Source§

impl Clone for AnthropicConfig

Source§

fn clone(&self) -> AnthropicConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AnthropicConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for AnthropicConfig

Source§

fn default() -> AnthropicConfig

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for AnthropicConfig

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<AnthropicConfig, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for AnthropicConfig

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> MaybeSend for T
where T: Send,

Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more