The model plans; the code sets the rules. The language model runs the conversation with five tools: record a fact, search stays, choose one, build the plan, edit it. The code refuses a past date, won't plan without a date, keeps no price without a source, and saves nothing from a turn that fails. Conversations aren't stored at OpenAI, and every call is metered against its trip.