Class MessageCreateParams.Body.Builder
-
- All Implemented Interfaces:
public final class MessageCreateParams.Body.BuilderA builder for Body.
-
-
Method Summary
Modifier and Type Method Description final MessageCreateParams.Body.BuildermaxTokens(Long maxTokens)The maximum number of tokens to generate before stopping. final MessageCreateParams.Body.BuildermaxTokens(JsonField<Long> maxTokens)Sets Builder.maxTokens to an arbitrary JSON value. final MessageCreateParams.Body.Buildermessages(List<MessageParam> messages)Input messages. final MessageCreateParams.Body.Buildermessages(JsonField<List<MessageParam>> messages)Sets Builder.messages to an arbitrary JSON value. final MessageCreateParams.Body.BuilderaddMessage(MessageParam message)Adds a single MessageParam to messages. final MessageCreateParams.Body.BuilderaddMessage(Message message)Alias for calling addMessage with message.toParam().final MessageCreateParams.Body.BuilderaddUserMessage(MessageParam.Content content)Alias for calling addMessage with the following: MessageParam.builder() .role(MessageParam.Role.USER) .content(content) .build()final MessageCreateParams.Body.BuilderaddUserMessage(String string)Alias for calling addUserMessage with MessageParam.Content.ofString(string).final MessageCreateParams.Body.BuilderaddUserMessageOfBlockParams(List<ContentBlockParam> blockParams)Alias for calling addUserMessage with MessageParam.Content.ofBlockParams(blockParams).final MessageCreateParams.Body.BuilderaddAssistantMessage(MessageParam.Content content)Alias for calling addMessage with the following: MessageParam.builder() .role(MessageParam.Role.ASSISTANT) .content(content) .build()final MessageCreateParams.Body.BuilderaddAssistantMessage(String string)Alias for calling addAssistantMessage with MessageParam.Content.ofString(string).final MessageCreateParams.Body.BuilderaddAssistantMessageOfBlockParams(List<ContentBlockParam> blockParams)Alias for calling addAssistantMessage with MessageParam.Content.ofBlockParams(blockParams).final MessageCreateParams.Body.Buildermodel(Model model)The model that will complete your prompt. final MessageCreateParams.Body.Buildermodel(JsonField<Model> model)Sets Builder.model to an arbitrary JSON value. final MessageCreateParams.Body.Buildermodel(String value)Sets model to an arbitrary String. final MessageCreateParams.Body.BuildercacheControl(CacheControlEphemeral cacheControl)Top-level cache control automatically applies a cache_control marker to the last cacheable block in the request. final MessageCreateParams.Body.BuildercacheControl(Optional<CacheControlEphemeral> cacheControl)Alias for calling Builder.cacheControl with cacheControl.orElse(null).final MessageCreateParams.Body.BuildercacheControl(JsonField<CacheControlEphemeral> cacheControl)Sets Builder.cacheControl to an arbitrary JSON value. final MessageCreateParams.Body.Buildercontainer(String container)Container identifier for reuse across requests. final MessageCreateParams.Body.Buildercontainer(Optional<String> container)Alias for calling Builder.container with container.orElse(null).final MessageCreateParams.Body.Buildercontainer(JsonField<String> container)Sets Builder.container to an arbitrary JSON value. final MessageCreateParams.Body.BuilderinferenceGeo(String inferenceGeo)Specifies the geographic region for inference processing. final MessageCreateParams.Body.BuilderinferenceGeo(Optional<String> inferenceGeo)Alias for calling Builder.inferenceGeo with inferenceGeo.orElse(null).final MessageCreateParams.Body.BuilderinferenceGeo(JsonField<String> inferenceGeo)Sets Builder.inferenceGeo to an arbitrary JSON value. final MessageCreateParams.Body.Buildermetadata(Metadata metadata)An object describing metadata about the request. final MessageCreateParams.Body.Buildermetadata(JsonField<Metadata> metadata)Sets Builder.metadata to an arbitrary JSON value. final MessageCreateParams.Body.BuilderoutputConfig(OutputConfig outputConfig)Configuration options for the model's output, such as the output format. final MessageCreateParams.Body.BuilderoutputConfig(JsonField<OutputConfig> outputConfig)Sets Builder.outputConfig to an arbitrary JSON value. final MessageCreateParams.Body.BuilderserviceTier(MessageCreateParams.ServiceTier serviceTier)Determines whether to use priority capacity (if available) or standard capacity for this request. final MessageCreateParams.Body.BuilderserviceTier(JsonField<MessageCreateParams.ServiceTier> serviceTier)Sets Builder.serviceTier to an arbitrary JSON value. final MessageCreateParams.Body.BuilderstopSequences(List<String> stopSequences)Custom text sequences that will cause the model to stop generating. final MessageCreateParams.Body.BuilderstopSequences(JsonField<List<String>> stopSequences)Sets Builder.stopSequences to an arbitrary JSON value. final MessageCreateParams.Body.BuilderaddStopSequence(String stopSequence)Adds a single String to stopSequences. final MessageCreateParams.Body.Buildersystem(MessageCreateParams.System system)System prompt. final MessageCreateParams.Body.Buildersystem(JsonField<MessageCreateParams.System> system)Sets Builder.system to an arbitrary JSON value. final MessageCreateParams.Body.Buildersystem(String string)Alias for calling system with System.ofString(string).final MessageCreateParams.Body.BuildersystemOfTextBlockParams(List<TextBlockParam> textBlockParams)Alias for calling system with System.ofTextBlockParams(textBlockParams).final MessageCreateParams.Body.Buildertemperature(Double temperature)Amount of randomness injected into the response. final MessageCreateParams.Body.Buildertemperature(JsonField<Double> temperature)Sets Builder.temperature to an arbitrary JSON value. final MessageCreateParams.Body.Builderthinking(ThinkingConfigParam thinking)Configuration for enabling Claude's extended thinking. final MessageCreateParams.Body.Builderthinking(JsonField<ThinkingConfigParam> thinking)Sets Builder.thinking to an arbitrary JSON value. final MessageCreateParams.Body.Builderthinking(ThinkingConfigEnabled enabled)Alias for calling thinking with ThinkingConfigParam.ofEnabled(enabled).final MessageCreateParams.Body.Builderthinking(ThinkingConfigDisabled disabled)Alias for calling thinking with ThinkingConfigParam.ofDisabled(disabled).final MessageCreateParams.Body.Builderthinking(ThinkingConfigAdaptive adaptive)Alias for calling thinking with ThinkingConfigParam.ofAdaptive(adaptive).final MessageCreateParams.Body.BuilderenabledThinking(Long budgetTokens)Alias for calling thinking with the following: ThinkingConfigEnabled.builder() .budgetTokens(budgetTokens) .build()final MessageCreateParams.Body.BuildertoolChoice(ToolChoice toolChoice)How the model should use the provided tools. final MessageCreateParams.Body.BuildertoolChoice(JsonField<ToolChoice> toolChoice)Sets Builder.toolChoice to an arbitrary JSON value. final MessageCreateParams.Body.BuildertoolChoice(ToolChoiceAuto auto)Alias for calling toolChoice with ToolChoice.ofAuto(auto).final MessageCreateParams.Body.BuildertoolChoice(ToolChoiceAny any)Alias for calling toolChoice with ToolChoice.ofAny(any).final MessageCreateParams.Body.BuildertoolChoice(ToolChoiceTool tool)Alias for calling toolChoice with ToolChoice.ofTool(tool).final MessageCreateParams.Body.BuildertoolChoice(ToolChoiceNone none)Alias for calling toolChoice with ToolChoice.ofNone(none).final MessageCreateParams.Body.BuildertoolToolChoice(String name)Alias for calling toolChoice with the following: ToolChoiceTool.builder() .name(name) .build()final MessageCreateParams.Body.Buildertools(List<ToolUnion> tools)Definitions of tools that the model may use. final MessageCreateParams.Body.Buildertools(JsonField<List<ToolUnion>> tools)Sets Builder.tools to an arbitrary JSON value. final MessageCreateParams.Body.BuilderaddTool(ToolUnion tool)Adds a single ToolUnion to tools. final MessageCreateParams.Body.BuilderaddTool(Tool tool)Alias for calling addTool with ToolUnion.ofTool(tool).final MessageCreateParams.Body.BuilderaddTool(ToolBash20250124 bash20250124)Alias for calling addTool with ToolUnion.ofBash20250124(bash20250124).final MessageCreateParams.Body.BuilderaddTool(CodeExecutionTool20250522 codeExecutionTool20250522)Alias for calling addTool with ToolUnion.ofCodeExecutionTool20250522(codeExecutionTool20250522).final MessageCreateParams.Body.BuilderaddTool(CodeExecutionTool20250825 codeExecutionTool20250825)Alias for calling addTool with ToolUnion.ofCodeExecutionTool20250825(codeExecutionTool20250825).final MessageCreateParams.Body.BuilderaddTool(CodeExecutionTool20260120 codeExecutionTool20260120)Alias for calling addTool with ToolUnion.ofCodeExecutionTool20260120(codeExecutionTool20260120).final MessageCreateParams.Body.BuilderaddTool(MemoryTool20250818 memoryTool20250818)Alias for calling addTool with ToolUnion.ofMemoryTool20250818(memoryTool20250818).final MessageCreateParams.Body.BuilderaddTool(ToolTextEditor20250124 textEditor20250124)Alias for calling addTool with ToolUnion.ofTextEditor20250124(textEditor20250124).final MessageCreateParams.Body.BuilderaddTool(ToolTextEditor20250429 textEditor20250429)Alias for calling addTool with ToolUnion.ofTextEditor20250429(textEditor20250429).final MessageCreateParams.Body.BuilderaddTool(ToolTextEditor20250728 textEditor20250728)Alias for calling addTool with ToolUnion.ofTextEditor20250728(textEditor20250728).final MessageCreateParams.Body.BuilderaddTool(WebSearchTool20250305 webSearchTool20250305)Alias for calling addTool with ToolUnion.ofWebSearchTool20250305(webSearchTool20250305).final MessageCreateParams.Body.BuilderaddTool(WebFetchTool20250910 webFetchTool20250910)Alias for calling addTool with ToolUnion.ofWebFetchTool20250910(webFetchTool20250910).final MessageCreateParams.Body.BuilderaddTool(WebSearchTool20260209 webSearchTool20260209)Alias for calling addTool with ToolUnion.ofWebSearchTool20260209(webSearchTool20260209).final MessageCreateParams.Body.BuilderaddTool(WebFetchTool20260209 webFetchTool20260209)Alias for calling addTool with ToolUnion.ofWebFetchTool20260209(webFetchTool20260209).final MessageCreateParams.Body.BuilderaddTool(WebFetchTool20260309 webFetchTool20260309)Alias for calling addTool with ToolUnion.ofWebFetchTool20260309(webFetchTool20260309).final MessageCreateParams.Body.BuilderaddTool(ToolSearchToolBm25_20251119 searchToolBm25_20251119)Alias for calling addTool with ToolUnion.ofSearchToolBm25_20251119(searchToolBm25_20251119).final MessageCreateParams.Body.BuilderaddTool(ToolSearchToolRegex20251119 searchToolRegex20251119)Alias for calling addTool with ToolUnion.ofSearchToolRegex20251119(searchToolRegex20251119).final MessageCreateParams.Body.BuildertopK(Long topK)Only sample from the top K options for each subsequent token. final MessageCreateParams.Body.BuildertopK(JsonField<Long> topK)Sets Builder.topK to an arbitrary JSON value. final MessageCreateParams.Body.BuildertopP(Double topP)Use nucleus sampling. final MessageCreateParams.Body.BuildertopP(JsonField<Double> topP)Sets Builder.topP to an arbitrary JSON value. final MessageCreateParams.Body.BuilderadditionalProperties(Map<String, JsonValue> additionalProperties)final MessageCreateParams.Body.BuilderputAdditionalProperty(String key, JsonValue value)final MessageCreateParams.Body.BuilderputAllAdditionalProperties(Map<String, JsonValue> additionalProperties)final MessageCreateParams.Body.BuilderremoveAdditionalProperty(String key)final MessageCreateParams.Body.BuilderremoveAllAdditionalProperties(Set<String> keys)final MessageCreateParams.Bodybuild()Returns an immutable instance of Body. -
-
Method Detail
-
maxTokens
final MessageCreateParams.Body.Builder maxTokens(Long maxTokens)
The 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.
-
maxTokens
final MessageCreateParams.Body.Builder maxTokens(JsonField<Long> maxTokens)
Sets Builder.maxTokens to an arbitrary JSON value.
You should usually call Builder.maxTokens with a well-typed Long value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
messages
final MessageCreateParams.Body.Builder messages(List<MessageParam> messages)
Input messages.
Our models are trained to operate on alternating
userandassistantconversational turns. When creating a newMessage, you specify the prior conversational turns with themessagesparameter, and the model then generates the nextMessagein the conversation. Consecutiveuserorassistantturns in your request will be combined into a single turn.Each input message must be an object with a
roleandcontent. You can specify a singleuser-role message, or you can include multipleuserandassistantmessages.If the final message uses the
assistantrole, the response content will continue immediately from the content in that message. This can be used to constrain part of the model's response.Example with a single
usermessage:[{"role": "user", "content": "Hello, Claude"}]Example with multiple conversational turns:
[ {"role": "user", "content": "Hello there."}, {"role": "assistant", "content": "Hi, I'm Claude. How can I help you?"}, {"role": "user", "content": "Can you explain LLMs in plain English?"}, ]Example with a partially-filled response from Claude:
[ {"role": "user", "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun"}, {"role": "assistant", "content": "The best answer is ("}, ]Each input message
contentmay be either a singlestringor an array of content blocks, where each block has a specifictype. Using astringforcontentis shorthand for an array of one content block of type"text". The following input messages are equivalent:{"role": "user", "content": "Hello, Claude"}{"role": "user", "content": [{"type": "text", "text": "Hello, Claude"}]}See input examples.
Note that if you want to include a system prompt, you can use the top-level
systemparameter — there is no"system"role for input messages in the Messages API.There is a limit of 100,000 messages in a single request.
-
messages
final MessageCreateParams.Body.Builder messages(JsonField<List<MessageParam>> messages)
Sets Builder.messages to an arbitrary JSON value.
You should usually call Builder.messages with a well-typed
List<MessageParam>value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
addMessage
final MessageCreateParams.Body.Builder addMessage(MessageParam message)
Adds a single MessageParam to messages.
-
addMessage
final MessageCreateParams.Body.Builder addMessage(Message message)
Alias for calling addMessage with
message.toParam().
-
addUserMessage
final MessageCreateParams.Body.Builder addUserMessage(MessageParam.Content content)
Alias for calling addMessage with the following:
MessageParam.builder() .role(MessageParam.Role.USER) .content(content) .build()
-
addUserMessage
final MessageCreateParams.Body.Builder addUserMessage(String string)
Alias for calling addUserMessage with
MessageParam.Content.ofString(string).
-
addUserMessageOfBlockParams
final MessageCreateParams.Body.Builder addUserMessageOfBlockParams(List<ContentBlockParam> blockParams)
Alias for calling addUserMessage with
MessageParam.Content.ofBlockParams(blockParams).
-
addAssistantMessage
final MessageCreateParams.Body.Builder addAssistantMessage(MessageParam.Content content)
Alias for calling addMessage with the following:
MessageParam.builder() .role(MessageParam.Role.ASSISTANT) .content(content) .build()
-
addAssistantMessage
final MessageCreateParams.Body.Builder addAssistantMessage(String string)
Alias for calling addAssistantMessage with
MessageParam.Content.ofString(string).
-
addAssistantMessageOfBlockParams
final MessageCreateParams.Body.Builder addAssistantMessageOfBlockParams(List<ContentBlockParam> blockParams)
Alias for calling addAssistantMessage with
MessageParam.Content.ofBlockParams(blockParams).
-
model
final MessageCreateParams.Body.Builder model(Model model)
The model that will complete your prompt.\n\nSee models for additional details and options.
-
model
final MessageCreateParams.Body.Builder model(JsonField<Model> model)
Sets Builder.model to an arbitrary JSON value.
You should usually call Builder.model with a well-typed Model value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
model
final MessageCreateParams.Body.Builder model(String value)
Sets model to an arbitrary String.
You should usually call model with a well-typed Model constant instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
cacheControl
final MessageCreateParams.Body.Builder cacheControl(CacheControlEphemeral cacheControl)
Top-level cache control automatically applies a cache_control marker to the last cacheable block in the request.
-
cacheControl
final MessageCreateParams.Body.Builder cacheControl(Optional<CacheControlEphemeral> cacheControl)
Alias for calling Builder.cacheControl with
cacheControl.orElse(null).
-
cacheControl
final MessageCreateParams.Body.Builder cacheControl(JsonField<CacheControlEphemeral> cacheControl)
Sets Builder.cacheControl to an arbitrary JSON value.
You should usually call Builder.cacheControl with a well-typed CacheControlEphemeral value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
container
final MessageCreateParams.Body.Builder container(String container)
Container identifier for reuse across requests.
-
container
final MessageCreateParams.Body.Builder container(Optional<String> container)
Alias for calling Builder.container with
container.orElse(null).
-
container
final MessageCreateParams.Body.Builder container(JsonField<String> container)
Sets Builder.container to an arbitrary JSON value.
You should usually call Builder.container with a well-typed String value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
inferenceGeo
final MessageCreateParams.Body.Builder inferenceGeo(String inferenceGeo)
Specifies the geographic region for inference processing. If not specified, the workspace's
default_inference_geois used.
-
inferenceGeo
final MessageCreateParams.Body.Builder inferenceGeo(Optional<String> inferenceGeo)
Alias for calling Builder.inferenceGeo with
inferenceGeo.orElse(null).
-
inferenceGeo
final MessageCreateParams.Body.Builder inferenceGeo(JsonField<String> inferenceGeo)
Sets Builder.inferenceGeo to an arbitrary JSON value.
You should usually call Builder.inferenceGeo with a well-typed String value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
metadata
final MessageCreateParams.Body.Builder metadata(Metadata metadata)
An object describing metadata about the request.
-
metadata
final MessageCreateParams.Body.Builder metadata(JsonField<Metadata> metadata)
Sets Builder.metadata to an arbitrary JSON value.
You should usually call Builder.metadata with a well-typed Metadata value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
outputConfig
final MessageCreateParams.Body.Builder outputConfig(OutputConfig outputConfig)
Configuration options for the model's output, such as the output format.
-
outputConfig
final MessageCreateParams.Body.Builder outputConfig(JsonField<OutputConfig> outputConfig)
Sets Builder.outputConfig to an arbitrary JSON value.
You should usually call Builder.outputConfig with a well-typed OutputConfig value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
serviceTier
final MessageCreateParams.Body.Builder serviceTier(MessageCreateParams.ServiceTier serviceTier)
Determines whether to use priority capacity (if available) or standard capacity for this request.
Anthropic offers different levels of service for your API requests. See service-tiers for details.
-
serviceTier
final MessageCreateParams.Body.Builder serviceTier(JsonField<MessageCreateParams.ServiceTier> serviceTier)
Sets Builder.serviceTier to an arbitrary JSON value.
You should usually call Builder.serviceTier with a well-typed ServiceTier value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
stopSequences
final MessageCreateParams.Body.Builder stopSequences(List<String> stopSequences)
Custom text sequences that will cause the model to stop generating.
Our models will normally stop when they have naturally completed their turn, which will result in a response
stop_reasonof"end_turn".If you want the model to stop generating when it encounters custom strings of text, you can use the
stop_sequencesparameter. If the model encounters one of the custom sequences, the responsestop_reasonvalue will be"stop_sequence"and the responsestop_sequencevalue will contain the matched stop sequence.
-
stopSequences
final MessageCreateParams.Body.Builder stopSequences(JsonField<List<String>> stopSequences)
Sets Builder.stopSequences to an arbitrary JSON value.
You should usually call Builder.stopSequences with a well-typed
List<String>value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
addStopSequence
final MessageCreateParams.Body.Builder addStopSequence(String stopSequence)
Adds a single String to stopSequences.
-
system
final MessageCreateParams.Body.Builder system(MessageCreateParams.System system)
System prompt.
A system prompt is a way of providing context and instructions to Claude, such as specifying a particular goal or role. See our guide to system prompts.
-
system
final MessageCreateParams.Body.Builder system(JsonField<MessageCreateParams.System> system)
Sets Builder.system to an arbitrary JSON value.
You should usually call Builder.system with a well-typed System value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
system
final MessageCreateParams.Body.Builder system(String string)
Alias for calling system with
System.ofString(string).
-
systemOfTextBlockParams
final MessageCreateParams.Body.Builder systemOfTextBlockParams(List<TextBlockParam> textBlockParams)
Alias for calling system with
System.ofTextBlockParams(textBlockParams).
-
temperature
final MessageCreateParams.Body.Builder temperature(Double temperature)
Amount of randomness injected into the response.
Defaults to
1.0. Ranges from0.0to1.0. Usetemperaturecloser to0.0for analytical / multiple choice, and closer to1.0for creative and generative tasks.Note that even with
temperatureof0.0, the results will not be fully deterministic.
-
temperature
final MessageCreateParams.Body.Builder temperature(JsonField<Double> temperature)
Sets Builder.temperature to an arbitrary JSON value.
You should usually call Builder.temperature with a well-typed Double value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
thinking
final MessageCreateParams.Body.Builder thinking(ThinkingConfigParam thinking)
Configuration for enabling Claude's extended thinking.
When enabled, responses include
thinkingcontent blocks showing Claude's thinking process before the final answer. Requires a minimum budget of 1,024 tokens and counts towards yourmax_tokenslimit.See extended thinking for details.
-
thinking
final MessageCreateParams.Body.Builder thinking(JsonField<ThinkingConfigParam> thinking)
Sets Builder.thinking to an arbitrary JSON value.
You should usually call Builder.thinking with a well-typed ThinkingConfigParam value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
thinking
final MessageCreateParams.Body.Builder thinking(ThinkingConfigEnabled enabled)
Alias for calling thinking with
ThinkingConfigParam.ofEnabled(enabled).
-
thinking
final MessageCreateParams.Body.Builder thinking(ThinkingConfigDisabled disabled)
Alias for calling thinking with
ThinkingConfigParam.ofDisabled(disabled).
-
thinking
final MessageCreateParams.Body.Builder thinking(ThinkingConfigAdaptive adaptive)
Alias for calling thinking with
ThinkingConfigParam.ofAdaptive(adaptive).
-
enabledThinking
final MessageCreateParams.Body.Builder enabledThinking(Long budgetTokens)
Alias for calling thinking with the following:
ThinkingConfigEnabled.builder() .budgetTokens(budgetTokens) .build()
-
toolChoice
final MessageCreateParams.Body.Builder toolChoice(ToolChoice toolChoice)
How the model should use the provided tools. The model can use a specific tool, any available tool, decide by itself, or not use tools at all.
-
toolChoice
final MessageCreateParams.Body.Builder toolChoice(JsonField<ToolChoice> toolChoice)
Sets Builder.toolChoice to an arbitrary JSON value.
You should usually call Builder.toolChoice with a well-typed ToolChoice value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
toolChoice
final MessageCreateParams.Body.Builder toolChoice(ToolChoiceAuto auto)
Alias for calling toolChoice with
ToolChoice.ofAuto(auto).
-
toolChoice
final MessageCreateParams.Body.Builder toolChoice(ToolChoiceAny any)
Alias for calling toolChoice with
ToolChoice.ofAny(any).
-
toolChoice
final MessageCreateParams.Body.Builder toolChoice(ToolChoiceTool tool)
Alias for calling toolChoice with
ToolChoice.ofTool(tool).
-
toolChoice
final MessageCreateParams.Body.Builder toolChoice(ToolChoiceNone none)
Alias for calling toolChoice with
ToolChoice.ofNone(none).
-
toolToolChoice
final MessageCreateParams.Body.Builder toolToolChoice(String name)
Alias for calling toolChoice with the following:
ToolChoiceTool.builder() .name(name) .build()
-
tools
final MessageCreateParams.Body.Builder tools(List<ToolUnion> tools)
Definitions of tools that the model may use.
If you include
toolsin your API request, the model may returntool_usecontent blocks that represent the model's use of those tools. You can then run those tools using the tool input generated by the model and then optionally return results back to the model usingtool_resultcontent blocks.There are two types of tools: client tools and server tools. The behavior described below applies to client tools. For server tools, see their individual documentation as each has its own behavior (e.g., the web search tool).
Each tool definition includes:
name: Name of the tool.description: Optional, but strongly-recommended description of the tool.input_schema: JSON schema for the toolinputshape that the model will produce intool_useoutput content blocks.
For example, if you defined
toolsas:[ { "name": "get_stock_price", "description": "Get the current stock price for a given ticker symbol.", "input_schema": { "type": "object", "properties": { "ticker": { "type": "string", "description": "The stock ticker symbol, e.g. AAPL for Apple Inc." } }, "required": ["ticker"] } } ]And then asked the model "What's the S&P 500 at today?", the model might produce
tool_usecontent blocks in the response like this:[ { "type": "tool_use", "id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV", "name": "get_stock_price", "input": { "ticker": "^GSPC" } } ]You might then run your
get_stock_pricetool with{"ticker": "^GSPC"}as an input, and return the following back to the model in a subsequentusermessage:[ { "type": "tool_result", "tool_use_id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV", "content": "259.75 USD" } ]Tools can be used for workflows that include running client-side tools and functions, or more generally whenever you want the model to produce a particular JSON structure of output.
See our guide for more details.
-
tools
final MessageCreateParams.Body.Builder tools(JsonField<List<ToolUnion>> tools)
Sets Builder.tools to an arbitrary JSON value.
You should usually call Builder.tools with a well-typed
List<ToolUnion>value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
addTool
final MessageCreateParams.Body.Builder addTool(ToolUnion tool)
-
addTool
final MessageCreateParams.Body.Builder addTool(Tool tool)
Alias for calling addTool with
ToolUnion.ofTool(tool).
-
addTool
final MessageCreateParams.Body.Builder addTool(ToolBash20250124 bash20250124)
Alias for calling addTool with
ToolUnion.ofBash20250124(bash20250124).
-
addTool
final MessageCreateParams.Body.Builder addTool(CodeExecutionTool20250522 codeExecutionTool20250522)
Alias for calling addTool with
ToolUnion.ofCodeExecutionTool20250522(codeExecutionTool20250522).
-
addTool
final MessageCreateParams.Body.Builder addTool(CodeExecutionTool20250825 codeExecutionTool20250825)
Alias for calling addTool with
ToolUnion.ofCodeExecutionTool20250825(codeExecutionTool20250825).
-
addTool
final MessageCreateParams.Body.Builder addTool(CodeExecutionTool20260120 codeExecutionTool20260120)
Alias for calling addTool with
ToolUnion.ofCodeExecutionTool20260120(codeExecutionTool20260120).
-
addTool
final MessageCreateParams.Body.Builder addTool(MemoryTool20250818 memoryTool20250818)
Alias for calling addTool with
ToolUnion.ofMemoryTool20250818(memoryTool20250818).
-
addTool
final MessageCreateParams.Body.Builder addTool(ToolTextEditor20250124 textEditor20250124)
Alias for calling addTool with
ToolUnion.ofTextEditor20250124(textEditor20250124).
-
addTool
final MessageCreateParams.Body.Builder addTool(ToolTextEditor20250429 textEditor20250429)
Alias for calling addTool with
ToolUnion.ofTextEditor20250429(textEditor20250429).
-
addTool
final MessageCreateParams.Body.Builder addTool(ToolTextEditor20250728 textEditor20250728)
Alias for calling addTool with
ToolUnion.ofTextEditor20250728(textEditor20250728).
-
addTool
final MessageCreateParams.Body.Builder addTool(WebSearchTool20250305 webSearchTool20250305)
Alias for calling addTool with
ToolUnion.ofWebSearchTool20250305(webSearchTool20250305).
-
addTool
final MessageCreateParams.Body.Builder addTool(WebFetchTool20250910 webFetchTool20250910)
Alias for calling addTool with
ToolUnion.ofWebFetchTool20250910(webFetchTool20250910).
-
addTool
final MessageCreateParams.Body.Builder addTool(WebSearchTool20260209 webSearchTool20260209)
Alias for calling addTool with
ToolUnion.ofWebSearchTool20260209(webSearchTool20260209).
-
addTool
final MessageCreateParams.Body.Builder addTool(WebFetchTool20260209 webFetchTool20260209)
Alias for calling addTool with
ToolUnion.ofWebFetchTool20260209(webFetchTool20260209).
-
addTool
final MessageCreateParams.Body.Builder addTool(WebFetchTool20260309 webFetchTool20260309)
Alias for calling addTool with
ToolUnion.ofWebFetchTool20260309(webFetchTool20260309).
-
addTool
final MessageCreateParams.Body.Builder addTool(ToolSearchToolBm25_20251119 searchToolBm25_20251119)
Alias for calling addTool with
ToolUnion.ofSearchToolBm25_20251119(searchToolBm25_20251119).
-
addTool
final MessageCreateParams.Body.Builder addTool(ToolSearchToolRegex20251119 searchToolRegex20251119)
Alias for calling addTool with
ToolUnion.ofSearchToolRegex20251119(searchToolRegex20251119).
-
topK
final MessageCreateParams.Body.Builder topK(Long topK)
Only sample from the top K options for each subsequent token.
Used to remove "long tail" low probability responses. Learn more technical details here.
Recommended for advanced use cases only. You usually only need to use
temperature.
-
topK
final MessageCreateParams.Body.Builder topK(JsonField<Long> topK)
Sets Builder.topK to an arbitrary JSON value.
You should usually call Builder.topK with a well-typed Long value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
topP
final MessageCreateParams.Body.Builder topP(Double topP)
Use nucleus sampling.
In nucleus sampling, we compute the cumulative distribution over all the options for each subsequent token in decreasing probability order and cut it off once it reaches a particular probability specified by
top_p. You should either altertemperatureortop_p, but not both.Recommended for advanced use cases only. You usually only need to use
temperature.
-
topP
final MessageCreateParams.Body.Builder topP(JsonField<Double> topP)
Sets Builder.topP to an arbitrary JSON value.
You should usually call Builder.topP with a well-typed Double value instead. This method is primarily for setting the field to an undocumented or not yet supported value.
-
additionalProperties
final MessageCreateParams.Body.Builder additionalProperties(Map<String, JsonValue> additionalProperties)
-
putAdditionalProperty
final MessageCreateParams.Body.Builder putAdditionalProperty(String key, JsonValue value)
-
putAllAdditionalProperties
final MessageCreateParams.Body.Builder putAllAdditionalProperties(Map<String, JsonValue> additionalProperties)
-
removeAdditionalProperty
final MessageCreateParams.Body.Builder removeAdditionalProperty(String key)
-
removeAllAdditionalProperties
final MessageCreateParams.Body.Builder removeAllAdditionalProperties(Set<String> keys)
-
build
final MessageCreateParams.Body build()
Returns an immutable instance of Body.
Further updates to this Builder will not mutate the returned instance.
The following fields are required:
.maxTokens() .messages() .model()
-
-
-
-