  We describe a system for building task-oriented dialogue systems combining
the in-context learning abilities of large language models (LLMs) with the
deterministic execution of business logic. LLMs are used to translate between
the surface form of the conversation and a domain-specific language (DSL) which
is used to progress the business logic. We compare our approach to the
intent-based NLU approach predominantly used in industry today. Our experiments
show that developing chatbots with our system requires significantly less
effort than established approaches, that these chatbots can successfully
navigate complex dialogues which are extremely challenging for NLU-based
systems, and that our system has desirable properties for scaling task-oriented
dialogue systems to a large number of tasks. We make our implementation
available for use and further study.
