Messages
Anthropic Messages API for all providers
The messages and amessages functions use the Anthropic Messages API format. All providers support this through automatic conversion, so you can use the same Anthropic-style message format regardless of backend.
any_llm.messages()
def messages(
model: str,
messages: list[dict[str, Any]],
max_tokens: int,
*,
provider: str | LLMProvider | None = None,
system: str | list[dict[str, Any]] | None = None,
temperature: float | None = None,
top_p: float | None = None,
top_k: int | None = None,
stream: bool | None = None,
stop_sequences: list[str] | None = None,
tools: list[dict[str, Any]] | None = None,
tool_choice: dict[str, Any] | None = None,
metadata: dict[str, Any] | None = None,
thinking: dict[str, Any] | None = None,
cache_control: dict[str, Any] | None = None,
prompt_cache_key: str | None = None,
service_tier: str | None = None,
context_management: dict[str, Any] | None = None,
betas: list[str] | None = None,
container: str | dict[str, Any] | None = None,
output_format: type | dict[str, Any] | None = None,
timeout: float | None = None,
api_key: str | None = None,
api_base: str | None = None,
client_args: dict[str, Any] | None = None,
**kwargs: Any,
) -> MessageResponse | ParsedMessage[Any] | ParsedBetaMessage[Any] | Iterator[MessageStartEvent | MessageDeltaEvent | MessageStopEvent | ContentBlockStartEvent | ContentBlockDeltaEvent | ContentBlockStopEvent]any_llm.amessages()
Async variant with the same parameters. Returns MessageResponse | AsyncIterator[MessageStreamEvent].
Parameters
model
str
required
Model identifier. Recommended: Use with separate provider parameter. Alternative: Combined format 'provider:model'.
messages
list[dict[str, Any]]
required
List of messages in Anthropic format.
max_tokens
int
required
Maximum number of tokens to generate.
provider
str | LLMProvider | None
None
Provider name to use for the request.
system
str | list[dict[str, Any]] | None
None
System prompt (string or list of content blocks with optional cache_control).
temperature
float | None
None
Controls randomness. Anthropic deprecates this for current Claude models.
top_p
float | None
None
Controls nucleus sampling. Anthropic deprecates this for current Claude models.
top_k
int | None
None
Restricts sampling to the top K options. Anthropic deprecates this for current Claude models.
stream
bool | None
None
Whether to stream the response.
stop_sequences
list[str] | None
None
Custom stop sequences.
tools
list[dict[str, Any]] | None
None
List of tools in Anthropic format.
tool_choice
dict[str, Any] | None
None
Controls which tool the model uses.
metadata
dict[str, Any] | None
None
Request metadata.
thinking
dict[str, Any] | None
None
Thinking/reasoning configuration.
cache_control
dict[str, Any] | None
None
Cache control configuration for prompt caching.
prompt_cache_key
str | None
None
A key to use when reading from or writing to a provider's prompt cache.
service_tier
str | None
None
The service tier to use for this request.
context_management
dict[str, Any] | None
None
Anthropic context management configuration. The compact_20260112 strategy requires a supported model. Its input_tokens trigger value must be at least 50,000 when provided; see Anthropic's compaction documentation.
betas
list[str] | None
None
Anthropic beta identifiers.
container
str | dict[str, Any] | None
None
Container identifier, or an object with optional id and skills. A string reuses an existing container. An object selects Skills for a fresh container or reuses one while attaching Skills. See Anthropic's Skills container parameter.
output_format
type | dict[str, Any] | None
None
Structured output, mirroring Anthropic's messages.parse/output_config. Either a Pydantic BaseModel/dataclass type (typed parsed_output) or a raw Anthropic output_config dict for non-Pydantic JSON schemas (parsed_output holds the parsed JSON). Non-streaming calls return Anthropic's ParsedMessage for types or mappings with a non-empty schema dict. Mappings without one return MessageResponse. Providers with native support can stream schema-constrained Messages events. Native Anthropic typed beta requests return ParsedBetaMessage when context_management is set or beta identifiers are supplied.
timeout
float | None
None
Per-request timeout in seconds, passed through to the provider's client/SDK. An explicit None is treated the same as omitting it (the provider's default applies), so it cannot request an unbounded timeout. Providers that have no per-request timeout raise UnsupportedParameterError; set a timeout on their client via client_args instead.
api_key
str | None
None
API key for the provider.
api_base
str | None
None
Base URL for the provider API.
client_args
dict[str, Any] | None
None
Additional provider-specific arguments for client instantiation.
**kwargs
Any
required
Additional provider-specific arguments.
Return Value
Non-streaming: Returns a
MessageResponseobject.Streaming (
stream=True): Returns anIterator[MessageStreamEvent](sync) orAsyncIterator[MessageStreamEvent](async).
Usage
Basic message
With system prompt
Async
Last updated