@th3rdsergeevich observe - orient - decide - act (:
Собираешь пакет информации для моба. Что он видит.
Сопоставляешь с целями.
Прикидываешь варианты действий и сортируешь по ожидаемой полезности.
Обновляешь текущее поведение.
Это в общих чертах. А формально, вон дерево поведений. Библиотеки примерно подо всё есть.