Что такое чат-бот?
Интерфейс в виде бота, который работает в любом мессенджере. Может различаться от примитивного конечного автомата, до продвинутого AI агента поверх LLM.
Чат-бот может решать самые разные задачи в зависимости от потребностей команды. Например, в Chat Ops/DevOps помогает запрашивать состояние инфраструктуры, формировать отчеты по мониторингу и управлять инцидентами.
Для HR бот упрощает запрос корпоративных правил и политик, заполнение документов (отпуск, больничный, командировки) и запись на обучение или мероприятия.
В роли личного помощника напоминает о встречах и дедлайнах, позволяет откладывать публикацию сообщений и быстро находить информацию (документы, ссылки, инструкции).
Для Support автоматизирует обработку тикетов от клиентов, предоставляет шаблоны ответов и FAQ, помогает с эскалацией запросов и мониторингом SLA.
А для инженеров отправляет уведомления о CI/CD, задачах и напоминает о необходимости провести ревью.
Зачем нам понадобился корпоративный чат-бот?
С ростом компании и масштабированием разработки наши процессы стали усложняться. Мы столкнулись с рядом проблем: активный найм привел к тому, что стало сложнее поддерживать единый стандарт коммуникаций и onboarding для новых сотрудников. Зоопарк систем, включая Jira, GitHub, CI/CD и мониторинг, создавал путаницу, и сотрудники тратили время на поиск информации. Распределенная команда и асинхронные коммуникации, особенно с учетом разных часовых поясов, усложняли синхронизацию. Политика максимальной открытости в общении, хотя и важна для прозрачности, привела к тому, что объем информации в Slack рос, и важные сообщения терялись. При этом мы стремились избегать микроменеджмента, доверяя команде, но нужно было обеспечить автономность сотрудников в решении рутинных задач. Чат-бот стал простым решением: он автоматизировал часть рутины, упростил выполнение задач и добавил прозрачности в процессы.
Делать самим или купить готовое?
Slack предлагает множество готовых интеграций с популярными инструментами, такими как Jira, GitHub, Google Workspace и многими другими. Это позволяет быстро настроить взаимодействие между системами без необходимости писать код. Кроме того, существуют компании, которые предоставляют специализированные интеграции для Slack, расширяя его функциональность. Если же вам нужно что-то более гибкое, но без глубоких технических знаний, можно воспользоваться low-code/no-code-платформами, такими как Zapier или Make
Мы использовали оба подхода: для задач Support, HR и напоминаний использовали стандартные боты Slack и Make. Сценарии в Make позволили нам построить достаточно сложные пайплайны: отслеживать статусы задач в Jira, уведомлять клиентов о фиксах багов и прогрессе по фичам, а также информировать маркетинг о бета-релизах и инженеров о соблюдении SLA. Для разработчиков мы построили собственное самописное решение.
Архитектура
Мы построили архитектуру на основе Ruby on Rails-приложения, которое является ядром бизнес-логики для чат-бота.

Чат-бот на основе Slack API интегрирован в нашу рабочую среду и взаимодействует с пользователями через Slack, выполняя команды и предоставляя информацию. Вся бизнес-логика бота реализована в Rails-приложении, которое обрабатывает запросы и управляет задачами. Приложение собирает данные из различных источников через API, включая Bitbucket и GitLab для мониторинга активности репозиториев, сборок и деплоев, Jira для отслеживания задач, багов, а также Confluence для доступа к документации и справочной информации.
Rails-приложение выставляет метрики для Prometheus, которые используются для мониторинга процессов и их здоровья. В Grafana мы построили дашборды, визуализирующие ключевые метрики, такие как активность в репозиториях, прогресс по задачам и багам, а также состояние некоторых внутренних SLA. Бизнес-логика приложения позволяет боту отслеживать статусы задач в Jira, уведомлять пользователей о важных событиях и автоматизировать рутинные задачи.
В результате мы получили централизованную логику, мониторинг и аналитику, которые упрощают поддержку и развитие. Интеграции с множеством инструментов и полностью кастомизируемое решение, позволяющее достаточно легко получать инсайты, касающиеся DevExp и общего здоровья разработки.
Сценарии использования
Отслеживание прогресса общения по тредам
Одна из ключевых функций нашего бота — мониторинг и управление коммуникациями в тредах Slack. Мы используем систему эмодзи для отслеживания статуса обсуждений, что позволяет быстро визуально определить, на каком этапе находится обсуждение и требуется ли вмешательство.
Бот автоматически отслеживает SLA по тредам, напоминая ответственным лицам о необходимости реакции, если обсуждение затягивается. Также он может автоматически приглашать в треды заинтересованных лиц на основе контекста обсуждения и предыдущих взаимодействий.

Статистика и инсайты для команд
Бот регулярно публикует статистику с ключевыми инсайтами в каналы команд и кластеров. Эта информация помогает командам отслеживать свою производительность, выявлять узкие места и принимать обоснованные решения.
Для SRE(Site Reliability Engineering)-команды бот предоставляет специализированные дашборды с метриками производительности инфраструктуры, временем отклика систем и статистикой инцидентов. Это позволяет быстро реагировать на потенциальные проблемы до того, как они повлияют на пользователей.

Управление PR(Pull Request) и процессом разработки
Наш бот интегрирован с системами контроля версий и отслеживает статус PR, ревью и задач. Он автоматически напоминает разработчикам о необходимости провести ревью, если PR долго находится без внимания, и уведомляет о завершении ревью.
Бот также помогает отслеживать статус протекания задач, предоставляя регулярные обновления о прогрессе и потенциальных задержках. Это особенно полезно для менеджеров и лидов команд, которые могут быстро получить общую картину состояния проекта.

Обработка ошибок и маршрутизация
Бот автоматически анализирует ошибки в системе и маршрутизирует их в соответствующие кластеры и команды. Он использует контекст ошибки, исторические данные и метаданные кода для определения наиболее вероятной причины и ответственной команды.
Система также отслеживает фиксы ошибок, связывая их с исходными инцидентами и уведомляя заинтересованные стороны о прогрессе. Это создает замкнутый цикл обратной связи, который помогает улучшать качество кода и снижать время реакции на проблемы.

Мониторинг CI/CD и инфраструктуры
Бот постоянно мониторит состояние CI/CD-пайплайнов и инфраструктуры, оперативно уведомляя о любых проблемах. Он отслеживает падение тестовых стендов, проблемы с инфраструктурой и состояние ветки Develop.
Когда возникают проблемы, бот не только уведомляет соответствующие команды, но и предоставляет контекст и потенциальные решения на основе исторических данных. Это значительно сокращает время реакции и восстановления.

SLA(Service Level Agreement) и помощь с багами
Бот помогает отслеживать и соблюдать SLA для различных типов задач и инцидентов. Он автоматически эскалирует критические проблемы, если они не получают должного внимания в установленные сроки.
Для багов бот предоставляет специализированную помощь, включая автоматический сбор контекста, предложение потенциальных решений на основе похожих проблем в прошлом и координацию между командами для быстрого устранения.

Напоминания и автоматизация рутинных задач
Бот автоматизирует множество рутинных задач, отправляя напоминания о важных событиях, дедлайнах и необходимых действиях. Это помогает команде оставаться организованной и не упускать важные детали в быстро меняющейся среде.
Система напоминаний настраивается индивидуально для каждой команды и типа задач, учитывая их специфику и приоритеты. Это обеспечивает баланс между информированностью и информационным шумом.

Рефлексия
Разработка и внедрение корпоративного чат-бота стали важным шагом в оптимизации наших рабочих процессов.
Что получилось хорошо:
- Автоматизация рутины — бот взял на себя множество повторяющихся задач, освободив время команды для более творческой и продуктивной работы.
- Прозрачность процессов — благодаря боту все участники команды получили доступ к актуальной информации о статусе задач, проблемах и метриках.
- Улучшение коммуникации — структурированные уведомления и напоминания помогли сделать общение более эффективным и менее хаотичным.
- Сбор метрик — бот позволил собирать и анализировать данные о процессах разработки, что помогло выявить узкие места и возможности для оптимизации.
Сложности и вызовы:
- Баланс между информативностью и шумом — настройка уведомлений требовала тонкой настройки, чтобы не перегружать команду избыточной информацией.
- Поддержка и развитие — бот требует постоянного внимания и обновлений, особенно при изменении процессов в компании.
- Интеграция с разнородными системами — подключение к различным API и обработка данных из разных источников создавали технические сложности.
Планы на будущее:
В дальнейшем мы планируем развивать нашего бота в нескольких направлениях:
- Интеграция с LLM — добавление возможностей генеративного ИИ для более интеллектуальной обработки запросов и генерации контента.
- Расширение ChatOps(управление операциями DevOps через чат) возможностей — позволить инженерам выполнять больше операций непосредственно через бота, не переключаясь между системами.
- Персонализация — адаптация уведомлений и функций под индивидуальные предпочтения и роли пользователей.
- Улучшение аналитики — разработка более глубоких инсайтов и предиктивных моделей на основе собираемых данных.
Корпоративный бот стал неотъемлемой частью нашей инженерной культуры, помогая поддерживать высокую производительность и качество работы в условиях распределенной команды и сложных процессов. Его развитие продолжается вместе с эволюцией наших рабочих практик и технологий.