The fallback pattern

No key? The server still works.

Calling a real LLM needs a provider key and a network round-trip โ€” money and latency you don't always want, and things you definitely don't want in a test suite. So the PawWalk assistant is built to run fully offline by default.

The design: a heuristic parser โ€” plain Python, no network โ€” always runs and produces a BookingIntent. Only if a model is configured does the LLM run on top of it. This isn't a hack around a missing feature; graceful degradation is the design.