class

Anthropic::BetaMessages

Inherits Reference < Object

Beta Messages API with explicit beta header support

Constructors

new(client : Client)
Source

Instance methods

batches
Source
count_tokens(model : String, messages : Array(MessageParam) | Array(NamedTuple(role: String, content: String)), betas : Array(String) = [] of String, system : String | Array(TextContent) | Nil = nil, tools : Array(Tool) | Nil = nil, server_tools : Array(ServerTool) | Nil = nil, tool_choice : ToolChoice | Nil = nil, thinking : ThinkingConfig | Nil = nil, cache_control : CacheControl | Nil = nil, output_schema : BaseOutputSchema | Nil = nil, effort : String | Nil = nil, output_config : OutputConfig | Nil = nil, inference_geo : String | Nil = nil, context_management : ContextManagementConfig | Nil = nil, container : String | ContainerConfig | Nil = nil, mcp_servers : Array(MCPServerDefinition) | Nil = nil, speed : String | Nil = nil, user_profile_id : String | Nil = nil, diagnostics : DiagnosticsParam | Nil = nil) : TokenCountResponse

Count tokens for a beta message request without sending it

Source
create(model : String, max_tokens : Int32, messages : Array(MessageParam) | Array(NamedTuple(role: String, content: String)), betas : Array(String) = [] of String, system : String | Array(TextContent) | Nil = nil, temperature : Float64 | Nil = nil, top_p : Float64 | Nil = nil, top_k : Int32 | Nil = nil, tools : Array(Tool) | Nil = nil, server_tools : Array(ServerTool) | Nil = nil, tool_choice : ToolChoice | Nil = nil, stop_sequences : Array(String) | Nil = nil, metadata : Metadata | Nil = nil, service_tier : String | Nil = nil, speed : String | Nil = nil, thinking : ThinkingConfig | Nil = nil, cache_control : CacheControl | Nil = nil, output_schema : BaseOutputSchema | Nil = nil, effort : String | Nil = nil, output_config : OutputConfig | Nil = nil, inference_geo : String | Nil = nil, context_management : ContextManagementConfig | Nil = nil, container : String | ContainerConfig | Nil = nil, mcp_servers : Array(MCPServerDefinition) | Nil = nil, fallbacks : FallbacksParam | Nil = nil, fallback_credit_token : FallbackCreditToken | Nil = nil, user_profile_id : String | Nil = nil, extra_headers : Hash(String, String) | Nil = nil, diagnostics : DiagnosticsParam | Nil = nil) : Message

Create a message with beta features

message = client.beta.messages.create(
  betas: ["structured-outputs-2025-12-15"],
  model: Anthropic::Model::CLAUDE_SONNET_4_6,
  max_tokens: 1024,
  output_schema: my_schema,
  messages: [{role: "user", content: "Hello"}]
)
Source
open_stream(model : String, max_tokens : Int32, messages : Array(MessageParam) | Array(NamedTuple(role: String, content: String)), betas : Array(String) = [] of String, system : String | Array(TextContent) | Nil = nil, temperature : Float64 | Nil = nil, top_p : Float64 | Nil = nil, top_k : Int32 | Nil = nil, tools : Array(Tool) | Nil = nil, server_tools : Array(ServerTool) | Nil = nil, tool_choice : ToolChoice | Nil = nil, stop_sequences : Array(String) | Nil = nil, metadata : Metadata | Nil = nil, service_tier : String | Nil = nil, speed : String | Nil = nil, thinking : ThinkingConfig | Nil = nil, cache_control : CacheControl | Nil = nil, output_schema : BaseOutputSchema | Nil = nil, effort : String | Nil = nil, output_config : OutputConfig | Nil = nil, inference_geo : String | Nil = nil, context_management : ContextManagementConfig | Nil = nil, container : String | ContainerConfig | Nil = nil, mcp_servers : Array(MCPServerDefinition) | Nil = nil, fallbacks : FallbacksParam | Nil = nil, fallback_credit_token : FallbackCreditToken | Nil = nil, user_profile_id : String | Nil = nil, extra_headers : Hash(String, String) | Nil = nil, diagnostics : DiagnosticsParam | Nil = nil, &)

Open a beta streaming response and yield a richer stream helper object.

Source
parse(model : String, max_tokens : Int32, messages : Array(MessageParam) | Array(NamedTuple(role: String, content: String)), output_schema : TypedOutputSchema(T), betas : Array(String) = [] of String, system : String | Array(TextContent) | Nil = nil, temperature : Float64 | Nil = nil, top_p : Float64 | Nil = nil, top_k : Int32 | Nil = nil, tools : Array(Tool) | Nil = nil, server_tools : Array(ServerTool) | Nil = nil, tool_choice : ToolChoice | Nil = nil, stop_sequences : Array(String) | Nil = nil, metadata : Metadata | Nil = nil, service_tier : String | Nil = nil, speed : String | Nil = nil, thinking : ThinkingConfig | Nil = nil, cache_control : CacheControl | Nil = nil, effort : String | Nil = nil, output_config : OutputConfig | Nil = nil, inference_geo : String | Nil = nil, context_management : ContextManagementConfig | Nil = nil, container : String | ContainerConfig | Nil = nil, mcp_servers : Array(MCPServerDefinition) | Nil = nil, fallbacks : FallbacksParam | Nil = nil, fallback_credit_token : FallbackCreditToken | Nil = nil, user_profile_id : String | Nil = nil, extra_headers : Hash(String, String) | Nil = nil, diagnostics : DiagnosticsParam | Nil = nil) : ParsedMessage(T) forall T
Source
parse(model : String, max_tokens : Int32, messages : Array(MessageParam) | Array(NamedTuple(role: String, content: String)), output_schema : OutputSchema, betas : Array(String) = [] of String, system : String | Array(TextContent) | Nil = nil, temperature : Float64 | Nil = nil, top_p : Float64 | Nil = nil, top_k : Int32 | Nil = nil, tools : Array(Tool) | Nil = nil, server_tools : Array(ServerTool) | Nil = nil, tool_choice : ToolChoice | Nil = nil, stop_sequences : Array(String) | Nil = nil, metadata : Metadata | Nil = nil, service_tier : String | Nil = nil, speed : String | Nil = nil, thinking : ThinkingConfig | Nil = nil, cache_control : CacheControl | Nil = nil, effort : String | Nil = nil, output_config : OutputConfig | Nil = nil, inference_geo : String | Nil = nil, context_management : ContextManagementConfig | Nil = nil, container : String | ContainerConfig | Nil = nil, mcp_servers : Array(MCPServerDefinition) | Nil = nil, fallbacks : FallbacksParam | Nil = nil, fallback_credit_token : FallbackCreditToken | Nil = nil, user_profile_id : String | Nil = nil, extra_headers : Hash(String, String) | Nil = nil, diagnostics : DiagnosticsParam | Nil = nil) : ParsedMessage(JSON::Any)
Source
stream(model : String, max_tokens : Int32, messages : Array(MessageParam) | Array(NamedTuple(role: String, content: String)), betas : Array(String) = [] of String, system : String | Array(TextContent) | Nil = nil, temperature : Float64 | Nil = nil, top_p : Float64 | Nil = nil, top_k : Int32 | Nil = nil, tools : Array(Tool) | Nil = nil, server_tools : Array(ServerTool) | Nil = nil, tool_choice : ToolChoice | Nil = nil, stop_sequences : Array(String) | Nil = nil, metadata : Metadata | Nil = nil, service_tier : String | Nil = nil, speed : String | Nil = nil, thinking : ThinkingConfig | Nil = nil, cache_control : CacheControl | Nil = nil, output_schema : BaseOutputSchema | Nil = nil, effort : String | Nil = nil, output_config : OutputConfig | Nil = nil, inference_geo : String | Nil = nil, context_management : ContextManagementConfig | Nil = nil, container : String | ContainerConfig | Nil = nil, mcp_servers : Array(MCPServerDefinition) | Nil = nil, fallbacks : FallbacksParam | Nil = nil, fallback_credit_token : FallbackCreditToken | Nil = nil, user_profile_id : String | Nil = nil, extra_headers : Hash(String, String) | Nil = nil, diagnostics : DiagnosticsParam | Nil = nil, &)

Stream a beta message with individual events

client.beta.messages.stream(
  betas: ["web-search-2025-03-05"],
  model: Anthropic::Model::CLAUDE_SONNET_4_6,
  max_tokens: 1024,
  server_tools: [Anthropic::WebSearchTool.new],
  messages: [{role: "user", content: "Search for..."}]
) do |event|
  # handle events
end
Source
tool_runner(model : String, max_tokens : Int32, messages : Array(MessageParam), tools : Array(Tool), betas : Array(String) = [] of String, max_iterations : Int32 = 10, system : String | Nil = nil, compaction : CompactionConfig | Nil = nil, speed : String | Nil = nil, thinking : ThinkingConfig | Nil = nil, output_config : OutputConfig | Nil = nil, inference_geo : String | Nil = nil, container : String | ContainerConfig | Nil = nil) : ToolRunner

Create a tool runner for automatic tool execution

runner = client.beta.messages.tool_runner(
  model: "claude-sonnet-4-6",
  max_tokens: 1024,
  messages: [Anthropic::MessageParam.user("What's the weather in Tokyo?")],
  tools: [weather_tool]
)

runner.each_message { |msg| pp msg.content }
final = runner.final_message

With auto-compaction:

compaction = Anthropic::CompactionConfig.enabled(threshold: 3000) { |before, after|
  puts "Compacted: #{before} -> #{after} tokens"
}

runner = client.beta.messages.tool_runner(
  model: Anthropic::Model::CLAUDE_SONNET_4_6,
  max_tokens: 1024,
  messages: messages,
  tools: tools,
  compaction: compaction
)
Source