# `Jido.AI.Directive.LLMStream`
[🔗](https://github.com/agentjido/jido_ai/blob/v2.4.0/lib/jido_ai/directive/llm_stream.ex#L1)

Directive asking the runtime to stream an LLM response via ReqLLM.

Uses ReqLLM for streaming. The runtime will execute this asynchronously
and send text or complete content parts as `ai.llm.delta` signals. It sends
the final result as an `ai.llm.response` signal.

## New Fields

- `system_prompt` - Optional system prompt prepended to context
- `model_alias` - Model alias (e.g., `:fast`) resolved via `Jido.AI.resolve_model/1`
- `timeout` - Request timeout in milliseconds

Either `model` or `model_alias` must be provided. If `model_alias` is used,
it is resolved to a model spec at execution time.

# `t`

```elixir
@type t() :: %Jido.AI.Directive.LLMStream{
  context: any(),
  id: binary(),
  max_tokens: integer(),
  metadata: map(),
  model: nil | binary(),
  model_alias: nil | atom(),
  req_http_options: [any()],
  system_prompt: nil | binary(),
  temperature: number(),
  timeout: nil | integer(),
  tool_choice: any(),
  tools: [any()]
}
```

# `new!`

Create a new LLMStream directive.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
