# `assist`: The Assist Seam (opt-in, degrade-only LM suggestions) ```{py:currentmodule} myform.assist ``` The deterministic degradation path always runs and always produces a result; an `Assist` can only *improve* a lowering the rules flagged as a judgment call. `NullAssist` is the default and the only path when assists are disabled -- that mode makes zero network attempts. The gateway-backed assist posts tiny schema-constrained prompts to the local OpenAI-compatible gateway and memoizes results on disk by node content hash. `get_assist` is the one seam callers need: it resolves `enabled`/config precedence and returns either `NullAssist` (disabled), `GatewayAssist` (enabled without caching), or `CachedAssist` wrapping a gateway (enabled with caching), importing network-facing modules only when enabled. ```{eval-rst} .. automodule:: myform.assist :members: :imported-members: ```