Anthropic::BetaMessages
Beta Messages API with explicit beta header support
Constructors
new(client : Client)
SourceInstance methods
batches
Sourcecount_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
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"}]
)
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.
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
Sourceparse(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)
Sourcestream(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
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
)