Чат-боты в большинстве своем - весьма примитивные программы. Самого простого может написать любой человек, хоть немного разбирающийся в программировании. Алгоритм простой - составить подобие базы данных с парами ключевое слово - вариант(ы) ответа, и если слово встречается в исходной фразе - выбрать подходящий ответ. 95% ботов примерно так и работают. Более сложные варианты могут включать в себя не строгое соответствие полученным данным, а поиск слов по маске, контроль ошибок при вводе, распознавание мата, дат, времени и пр. - на что хватит фантазии у программиста. Для придания иллюзии общения с живым человеком можно ввести шкалы настроения, эмоций, культурности, задать любимые темы и т.п. Все разговоры вокруг искусственного интеллекта пока остаются разговорами, даже IBM WATSON, по сути, не более, чем продвинутая экспертная система:(
Парадокс заключается в том, что большинству пользователей сети не нужно супер-навороченного алгоритма и всех прочих наворотов, чтобы бот мог сойти за человека. Они либо просто этого не заметят (или не поймут), или нуждаются не столько в собеседнике, сколько в слушателе (а тут достаточно более-менее в тему поддакивать).
Ну или могут быть узкоспециализированные чат-боты, задача которых, например, при получении кодового слова, показать курс доллара, или, скажем, прогноз погоды.