# `GEPA.LLM.Client`
[🔗](https://github.com/nshkrdotcom/gepa_ex/blob/v0.3.0/lib/gepa/llm/client.ex#L1)

Normalized LLM client used by the GEPA LLM facade.

This struct is intentionally small. Adapter-specific clients, sessions, and
provider-native structs belong in `adapter_state`, not in GEPA optimizer code.

# `t`

```elixir
@type t() :: %GEPA.LLM.Client{
  adapter: module(),
  adapter_state: term(),
  capabilities: MapSet.t(atom()),
  defaults: keyword(),
  metadata: map(),
  model: String.t() | nil,
  provider: atom() | nil
}
```

---

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