How about maintaining the state outside of the model's context for example in some SQLite database? The purpose of the language model would be as a language interface to a statically defined set of (SQL) commands/statements. And so on - there would be more problem's to be solved, of course, and sweet talking may always remain a possibility just as cheating is in any other game as well.