pub struct MessageCreateParams {Show 25 fields
pub max_tokens: u32,
pub messages: Vec<MessageParam>,
pub model: Model,
pub metadata: Option<Metadata>,
pub output_format: Option<OutputFormat>,
pub stop_sequences: Option<Vec<String>>,
pub system: Option<SystemPrompt>,
pub temperature: Option<f32>,
pub thinking: Option<ThinkingConfig>,
pub tool_choice: Option<ToolChoice>,
pub tools: Option<Vec<ToolUnionParam>>,
pub top_k: Option<u32>,
pub top_p: Option<f32>,
pub stream: bool,
pub effort: Option<EffortLevel>,
pub speed: Option<SpeedMode>,
pub output_config: Option<OutputConfig>,
pub context_management: Option<ContextManagement>,
pub inference_geo: Option<String>,
pub service_tier: Option<String>,
pub container: Option<String>,
pub cache_control: Option<CacheControlEphemeral>,
pub citations: Option<CitationsConfig>,
pub skills: Option<Vec<SkillRef>>,
pub tool_runner: Option<bool>,
}anthropic-client only.Expand description
Parameters for creating messages.
Fields§
§max_tokens: u32The maximum number of tokens to generate before stopping.
Note that our models may stop before reaching this maximum. This parameter only specifies the absolute maximum number of tokens to generate.
Different models have different maximum values for this parameter. See models for details.
messages: Vec<MessageParam>Input messages.
Our models are trained to operate on alternating user and assistant
conversational turns. When creating a new Message, you specify the prior
conversational turns with the messages parameter, and the model then generates
the next Message in the conversation. Consecutive user or assistant turns
in your request will be combined into a single turn.
model: ModelThe model that will complete your prompt.
See models for additional details and options.
metadata: Option<Metadata>An object describing metadata about the request.
output_format: Option<OutputFormat>Output format configuration for structured outputs (legacy field).
Prefer output_config for new code. This field is retained for backward
compatibility with existing callers.
stop_sequences: Option<Vec<String>>Custom text sequences that will cause the model to stop generating.
system: Option<SystemPrompt>System prompt.
temperature: Option<f32>Amount of randomness injected into the response.
Defaults to 1.0. Ranges from 0.0 to 1.0.
thinking: Option<ThinkingConfig>Configuration for enabling Claude’s extended thinking.
tool_choice: Option<ToolChoice>How the model should use the provided tools.
tools: Option<Vec<ToolUnionParam>>Definitions of tools that the model may use.
top_k: Option<u32>Only sample from the top K options for each subsequent token.
top_p: Option<f32>Use nucleus sampling.
stream: boolWhether to incrementally stream the response using server-sent events.
effort: Option<EffortLevel>Top-level effort parameter controlling response thoroughness.
speed: Option<SpeedMode>Speed mode for latency-critical workloads (research preview).
output_config: Option<OutputConfig>Structured output configuration (replaces output_format).
context_management: Option<ContextManagement>Server-side context management (tool result clearing, thinking block clearing).
Requires beta header context-management-2025-06-27.
inference_geo: Option<String>Geographic routing for data residency control (e.g. “US”, “EU”).
service_tier: Option<String>Service tier for priority capacity ("auto" or "standard_only").
container: Option<String>Container identifier for code execution tool reuse across requests.
cache_control: Option<CacheControlEphemeral>Top-level cache control. When set, the server automatically caches everything up to the last cacheable block.
citations: Option<CitationsConfig>Citations configuration.
skills: Option<Vec<SkillRef>>Skill references for dynamic instruction loading.
tool_runner: Option<bool>Opt into programmatic tool calling flow.
Implementations§
Source§impl MessageCreateParams
impl MessageCreateParams
Sourcepub fn new(
max_tokens: u32,
messages: Vec<MessageParam>,
model: Model,
) -> MessageCreateParams
pub fn new( max_tokens: u32, messages: Vec<MessageParam>, model: Model, ) -> MessageCreateParams
Create a new message creation parameters with streaming disabled.
Sourcepub fn new_streaming(
max_tokens: u32,
messages: Vec<MessageParam>,
model: Model,
) -> MessageCreateParams
pub fn new_streaming( max_tokens: u32, messages: Vec<MessageParam>, model: Model, ) -> MessageCreateParams
Create new streaming message creation parameters.
Sourcepub fn with_metadata(self, metadata: Metadata) -> MessageCreateParams
pub fn with_metadata(self, metadata: Metadata) -> MessageCreateParams
Add metadata to the parameters.
Sourcepub fn with_output_format(
self,
output_format: OutputFormat,
) -> MessageCreateParams
pub fn with_output_format( self, output_format: OutputFormat, ) -> MessageCreateParams
Add output format for structured outputs.
When set, constrains Claude’s response to follow a specific JSON schema, ensuring valid, parseable output for downstream processing.
This feature requires the beta header structured-outputs-2025-11-13.
§Example
use serde_json::json;
use adk_anthropic::{MessageCreateParams, OutputFormat, KnownModel};
let params = MessageCreateParams::simple("Extract info", KnownModel::ClaudeHaiku45)
.with_output_format(OutputFormat::json_schema(json!({
"type": "object",
"properties": {
"name": { "type": "string" }
},
"required": ["name"],
"additionalProperties": false
})));Sourcepub fn with_stop_sequences(
self,
stop_sequences: Vec<String>,
) -> MessageCreateParams
pub fn with_stop_sequences( self, stop_sequences: Vec<String>, ) -> MessageCreateParams
Add stop sequences to the parameters.
Sourcepub fn with_system_string(self, system: String) -> MessageCreateParams
pub fn with_system_string(self, system: String) -> MessageCreateParams
Add a system prompt as a string.
Sourcepub fn with_system_blocks(self, blocks: Vec<TextBlock>) -> MessageCreateParams
pub fn with_system_blocks(self, blocks: Vec<TextBlock>) -> MessageCreateParams
Add a system prompt as text blocks.
Sourcepub fn with_system(self, system: impl Into<SystemPrompt>) -> MessageCreateParams
pub fn with_system(self, system: impl Into<SystemPrompt>) -> MessageCreateParams
Add a system prompt.
Sourcepub fn with_temperature(
self,
temperature: f32,
) -> Result<MessageCreateParams, Error>
pub fn with_temperature( self, temperature: f32, ) -> Result<MessageCreateParams, Error>
Add temperature to the parameters.
Sourcepub fn with_thinking(self, thinking: ThinkingConfig) -> MessageCreateParams
pub fn with_thinking(self, thinking: ThinkingConfig) -> MessageCreateParams
Add thinking configuration to the parameters.
Sourcepub fn with_tool_choice(self, tool_choice: ToolChoice) -> MessageCreateParams
pub fn with_tool_choice(self, tool_choice: ToolChoice) -> MessageCreateParams
Add tool choice to the parameters.
Sourcepub fn with_tools(self, tools: Vec<ToolUnionParam>) -> MessageCreateParams
pub fn with_tools(self, tools: Vec<ToolUnionParam>) -> MessageCreateParams
Add tools to the parameters.
Sourcepub fn with_top_k(self, top_k: u32) -> MessageCreateParams
pub fn with_top_k(self, top_k: u32) -> MessageCreateParams
Add top_k to the parameters.
Sourcepub fn with_top_p(self, top_p: f32) -> Result<MessageCreateParams, Error>
pub fn with_top_p(self, top_p: f32) -> Result<MessageCreateParams, Error>
Add top_p to the parameters.
Sourcepub fn with_stream(self, stream: bool) -> MessageCreateParams
pub fn with_stream(self, stream: bool) -> MessageCreateParams
Sets the streaming option.
Sourcepub fn validate(&self) -> Result<(), Error>
pub fn validate(&self) -> Result<(), Error>
Validate all parameters before sending to the API with security checks.
Performs comprehensive validation including DoS prevention measures:
- Limits on message count and size to prevent resource exhaustion
- Validation of all numeric ranges
- Security checks on string inputs
Sourcepub fn simple(
prompt: impl Into<MessageParam>,
model: impl Into<Model>,
) -> MessageCreateParams
pub fn simple( prompt: impl Into<MessageParam>, model: impl Into<Model>, ) -> MessageCreateParams
Create a simple message request with sensible defaults.
This is a convenience method for creating basic message requests without needing to specify all parameters explicitly.
Sourcepub fn simple_streaming(
prompt: impl Into<MessageParam>,
model: impl Into<Model>,
) -> MessageCreateParams
pub fn simple_streaming( prompt: impl Into<MessageParam>, model: impl Into<Model>, ) -> MessageCreateParams
Create a simple streaming message request with sensible defaults.
Sourcepub fn with_message(
self,
message: impl Into<MessageParam>,
) -> MessageCreateParams
pub fn with_message( self, message: impl Into<MessageParam>, ) -> MessageCreateParams
Add a single message to the parameters.
Sourcepub fn with_messages(
self,
messages: impl IntoIterator<Item = impl Into<MessageParam>>,
) -> MessageCreateParams
pub fn with_messages( self, messages: impl IntoIterator<Item = impl Into<MessageParam>>, ) -> MessageCreateParams
Add multiple messages to the parameters.
Sourcepub fn requires_structured_outputs_beta(&self) -> bool
pub fn requires_structured_outputs_beta(&self) -> bool
Check if this request requires the structured outputs beta header.
Returns true if either:
output_formatis set (for JSON outputs)- Any tool has
strict: true(for strict tool use)
When this returns true, the client should include the
anthropic-beta: structured-outputs-2025-11-13 header.
Trait Implementations§
Source§impl Clone for MessageCreateParams
impl Clone for MessageCreateParams
Source§fn clone(&self) -> MessageCreateParams
fn clone(&self) -> MessageCreateParams
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MessageCreateParams
impl Debug for MessageCreateParams
Source§impl Default for MessageCreateParams
impl Default for MessageCreateParams
Source§fn default() -> MessageCreateParams
fn default() -> MessageCreateParams
Source§impl<'de> Deserialize<'de> for MessageCreateParams
impl<'de> Deserialize<'de> for MessageCreateParams
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<MessageCreateParams, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<MessageCreateParams, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for MessageCreateParams
impl PartialEq for MessageCreateParams
Source§impl Serialize for MessageCreateParams
impl Serialize for MessageCreateParams
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for MessageCreateParams
Auto Trait Implementations§
impl Freeze for MessageCreateParams
impl RefUnwindSafe for MessageCreateParams
impl Send for MessageCreateParams
impl Sync for MessageCreateParams
impl Unpin for MessageCreateParams
impl UnsafeUnpin for MessageCreateParams
impl UnwindSafe for MessageCreateParams
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request