# `Sycophant.Request`

Internal struct representing a normalized LLM request.

Built by `Sycophant.Pipeline` after model resolution and parameter
validation. Passed to wire protocol adapters for encoding into
provider-specific JSON payloads. This is not part of the public API.

# `t`

```elixir
@type t() :: %Sycophant.Request{
  credentials: map(),
  messages: [Sycophant.Message.t()],
  model: String.t() | nil,
  params: map(),
  resolved_model: term() | nil,
  response_schema: map() | nil,
  stream: (term() -&gt; term()) | {term(), (term(), term() -&gt; term())} | nil,
  tools: [Sycophant.Tool.t()],
  wire_protocol: atom() | nil
}
```

---

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