A custom-grammar bot can be reliable right up until someone types a perfectly reasonable sentence that the grammar author did not anticipate.

The uncomfortable choice is usually framed as either:

keep the grammar deterministic but frustratingly narrow, or

let an AI model interpret everything and accept less predictable behavior.

That is the wrong boundary. You can keep command execution deterministic while using failed conversations to improve the grammar—and optionally use AI to propose interpretations that a human must confirm.