Skip to content

strands.models.writer

Writer model provider.

class WriterModel(Model)

Defined in: src/strands/models/writer.py:29

Writer API model provider implementation.

class WriterConfig(TypedDict)

Defined in: src/strands/models/writer.py:32

Configuration options for Writer API.

Attributes:

  • model_id - Model name to use (e.g. palmyra-x5, palmyra-x4, etc.).
  • max_tokens - Maximum number of tokens to generate.
  • stop - Default stop sequences.
  • stream_options - Additional options for streaming.
  • temperature - What sampling temperature to use.
  • top_p - Threshold for ‘nucleus sampling’
def __init__(client_args: dict[str, Any] | None = None,
**model_config: Unpack[WriterConfig])

Defined in: src/strands/models/writer.py:51

Initialize provider instance.

Arguments:

  • client_args - Arguments for the Writer client (e.g., api_key, base_url, timeout, etc.).
  • **model_config - Configuration options for the Writer model.
@override
def update_config(**model_config: Unpack[WriterConfig]) -> None

Defined in: src/strands/models/writer.py:67

Update the Writer Model configuration with the provided arguments.

Arguments:

  • **model_config - Configuration overrides.
@override
def get_config() -> WriterConfig

Defined in: src/strands/models/writer.py:77

Get the Writer model configuration.

Returns:

The Writer model configuration.

def format_request(messages: Messages,
tool_specs: list[ToolSpec] | None = None,
system_prompt: str | None = None) -> Any

Defined in: src/strands/models/writer.py:258

Format a streaming request to the underlying model.

Arguments:

  • messages - List of message objects to be processed by the model.
  • tool_specs - List of tool specifications to make available to the model.
  • system_prompt - System prompt to provide context to the model.

Returns:

The formatted request.

def format_chunk(event: Any) -> StreamEvent

Defined in: src/strands/models/writer.py:299

Format the model response events into standardized message chunks.

Arguments:

  • event - A response event from the model.

Returns:

The formatted chunk.

@override
async def stream(messages: Messages,
tool_specs: list[ToolSpec] | None = None,
system_prompt: str | None = None,
*,
tool_choice: ToolChoice | None = None,
**kwargs: Any) -> AsyncGenerator[StreamEvent, None]

Defined in: src/strands/models/writer.py:364

Stream conversation with the Writer model.

Arguments:

  • messages - List of message objects to be processed by the model.
  • tool_specs - List of tool specifications to make available to the model.
  • system_prompt - System prompt to provide context to the model.
  • tool_choice - Selection strategy for tool invocation. Note: This parameter is accepted for interface consistency but is currently ignored for this model provider.
  • **kwargs - Additional keyword arguments for future extensibility.

Yields:

Formatted message chunks from the model.

Raises:

  • ModelThrottledException - When the model service is throttling requests from the client.
@override
async def structured_output(
output_model: type[T],
prompt: Messages,
system_prompt: str | None = None,
**kwargs: Any) -> AsyncGenerator[dict[str, T | Any], None]

Defined in: src/strands/models/writer.py:444

Get structured output from the model.

Arguments:

  • output_model - The output model to use for the agent.
  • prompt - The prompt messages to use for the agent.
  • system_prompt - System prompt to provide context to the model.
  • **kwargs - Additional keyword arguments for future extensibility.