Как научить чатбота учитывать контекст конкретного диалога?
Кратно - задача крайне сложная, ее никто нормально решать не умеет.
Когда компьютер научится быть в смысловом контексте диалога, будет решено 80% задач об ИИ, в частности - машинный перевод. 
Такому боту достаточно будет осознать текст через один языковой бекенд и пересказать его через второй. Увы - таких нет.
Вот, например, описание языка шаблонов, использованного в чат-боте Suzette, лауреате премии Лёбнера 2010 г.
Суть в том, что по мере парсинга фраз изменяется состояние чат-бота - он на лету создаёт набор переменных, занося в них данные. После чего состояние этих переменных в дальнейшем анализируется. Также шаблоны организованы в древовидную структуру. Т.е. после выбора темы для разговора дальнейшая обработка ввода происходит уже лишь в некотором подмножестве шаблонов.