Как мы сделали AI-агента, который живёт в корпоративном мессенджере
Почему мессенджер с тредами — идеальная среда для AI-агента и как устроен агент Пачки изнутри

Мы встроили AI-агента в Пачку. Он живёт в тех же тредах, что и команда: читает контекст, создаёт задачи, анализирует код. В этой статье рассказываем, как он устроен изнутри.
Зачем агенту мессенджер
Большинство AI-агентов сегодня живут в отдельных интерфейсах. Чат-бот на сайте, отдельное приложение, вкладка в IDE. У каждого свой контекст, свои данные, своя история разговоров.
Проблема в том, что рабочие решения принимаются не в AI-чатах. Они принимаются в переписке между коллегами, где обсуждаются задачи, делятся ссылками, просят помощь. Когда AI-агент живёт прямо в мессенджере, ему не нужно объяснять контекст. Он уже внутри разговора.
Это меняет сценарий использования. Раньше нужно было скопировать текст ошибки, вставить в отдельный AI-чат, дождаться ответа, вернуться в мессенджер и пересказать результат коллегам — пять шагов. Теперь достаточно упомянуть агента прямо в переписке. Он видит историю, понимает, о чём речь, и действует на месте.
Почему треды — это главное
Когда мы начали проектировать агента, стало ясно, что основной единицей работы должен быть не чат, а тред.
Изоляция контекста
В общем чате одновременно идут десятки разговоров: кто-то обсуждает релиз, кто-то баг на проде, кто-то новый дизайн. Если агент будет отвечать прямо в общий поток, он и сам запутается, и замусорит чат.
Тред решает эту задачу естественным образом. Каждый тред представляет собой изолированный разговор с чёткой темой. Агент видит только сообщения внутри треда и отвечает туда же. Он не путает обсуждение бага с обсуждением релиза, чат остаётся чистым, а в одном канале можно параллельно вести десять разных разговоров с агентом, и они не пересекаются.
Сквозные треды — суперсила
Обычные треды есть во многих мессенджерах. Но у Пачки есть важное отличие: сквозные треды. Это значит, что в тред можно упомянуть любого сотрудника, и он увидит тред и всю его историю, даже если не состоит в исходном чате.
Для AI-агента это открывает мощный сценарий:
Тред
4 сообщения




Без сквозных тредов пришлось бы вручную пересылать сообщения, объяснять контекст заново, терять время. С ними один тред становится единой точкой координации между людьми и агентом.
Как устроен агент изнутри
Архитектура получилась компактной. Вот основные компоненты.
Пачка отправляет событие при каждом сообщении
Контекст собирается для каждого вызова модели
LLM решает, какие инструменты вызвать и в каком порядке
Агент сам отправляет сообщения через API
Пачка отправляет событие при каждом сообщении
Контекст собирается для каждого вызова модели
LLM решает, какие инструменты вызвать и в каком порядке
Агент сам отправляет сообщения через API
Как агент получает сообщения
Пачка отправляет вебхук при каждом новом сообщении. Агент принимает его, проверяет подпись (HMAC-SHA256) и решает, нужно ли реагировать. Триггеров два: кто-то упомянул агента по имени или кто-то ответил на его сообщение в треде. Если ни то, ни другое не произошло, вебхук молча пропускается. Агент не читает все сообщения подряд, только те, где к нему обратились.
Промпт: контекст решает
Качество ответов агента на 80% определяется тем, что мы кладём в промпт. Он собирается из нескольких частей.
В основе лежат системные инструкции: базовые правила поведения, доступные инструменты, ограничения. Сюда же включаются «навыки» с детальными инструкциями для конкретных сценариев вроде работы с трекером или репозиторием.
К ним добавляется история переписки: последние 20 сообщений из треда. Модель видит, кто что написал, в каком порядке, и может продолжить разговор естественно.
Если агент работает в треде, он также получает родительское сообщение, с которого тред начался. Тред на сообщении «Тесты упали» сразу задаёт контекст: разговор о тестах.
Наконец, подтягиваются персональные настройки пользователя. Каждый может настроить агента под себя: «всегда отвечай мне на английском» или «при создании задач ставь тег frontend». Настройки хранятся в профиле в Пачке и применяются при каждом обращении.
Мозг: языковая модель + инструменты
Ядро агента — это цикл вызовов языковой модели. Модель получает системный промпт с инструкциями и набор инструментов, которые может вызывать: API мессенджера (отправка сообщений, чтение истории, работа с тредами), API трекера задач (создание, обновление, поиск), API системы контроля версий (чтение файлов, коммиты, pull request'ы) и веб-поиск.
Модель сама решает, какие инструменты вызвать и в каком порядке. Это не жёсткий пайплайн «получил запрос, выполнил действие, ответил». Агент может выполнить цепочку из нескольких шагов: прочитать файл, найти в нём проблему, создать задачу, и только потом ответить в тред с результатами.
Как агент отвечает
Агент никогда не отвечает напрямую в HTTP-ответе на вебхук. Вместо этого он сам отправляет сообщения через API мессенджера. Это даёт гибкость: агент может отправить несколько сообщений по ходу работы, сам решает, куда писать (в существующий тред или в новый), а ответ приходит когда готов, а не когда вебхук ждёт ответа.
Пока агент думает, он ставит на исходное сообщение реакцию-индикатор (анимированный эмодзи «думаю»). Когда закончил, снимает.
Безопасность и ограничения
AI-агент в рабочем мессенджере — это вопрос доверия. Вот как мы к нему подошли.
Агент видит только свой тред
Агент не имеет доступа ко всем чатам и каналам. Он видит только тот тред или чат, где его упомянули. Это принципиально: сотрудники могут обсуждать конфиденциальные вещи в других ветках, и агент об этом ничего не знает.
Защита от зацикливания
Несколько механизмов не дают агенту «зависнуть»:
- Кулдаун 5 секунд — агент не реагирует на повторные сообщения в том же треде, если предыдущий запуск был менее 5 секунд назад
- Лимит в 15 шагов — если модель не справилась за 15 вызовов инструментов, агент останавливается и сообщает об ошибке
- Таймаут 5 минут — жёсткий потолок на время работы
- Запрет на «монолог» — агент не отправляет больше двух сообщений подряд без ответа пользователя
Мультитенантность
Один экземпляр агента может обслуживать несколько организаций. У каждого тенанта свой токен, своя подпись вебхуков, свой набор подключённых интеграций. Данные одной организации не пересекаются с другой.
Навыки: как научить агента новому
Вместо того чтобы зашивать всю логику в код, мы вынесли поведение агента в навыки: текстовые файлы с детальными инструкциями.
Навык — это Markdown-документ, который подставляется в системный промпт. Например, навык работы с трекером задач описывает доступные действия (создать задачу, обновить статус, найти по фильтру), обязательные поля, правила именования и примеры типичных запросов с ожидаемыми действиями.
Такой подход удобен: новый навык — просто новый файл, без изменения кода. У каждой организации могут быть свои уникальные навыки. А если агент ведёт себя не так, чаще всего достаточно исправить текст навыка, а не лезть в код.
Сценарии, которые уже работают
«Создай задачу из обсуждения»
Команда обсуждает в треде баг. Кто-то тегает агента: «@kai, заведи задачу». Агент читает историю треда, формулирует заголовок и описание, определяет приоритет и создаёт задачу в трекере. В описание автоматически добавляется ссылка на тред.
«Что происходит в CI?»
Разработчик спрашивает агента в треде PR: «Почему упал билд?». Агент запрашивает статус CI-проверок, находит упавший джоб, читает логи и отвечает с диагнозом. Если проблема очевидная — предлагает фикс.
«Прочитай и проанализируй файл»
Любой сотрудник может отправить агенту ссылку на файл в репозитории или веб-страницу. Агент скачает содержимое, проанализирует и ответит в тред — объяснит, что делает код, найдёт проблемы, предложит улучшения.
«Исследуй компанию»
Для sales-команды агент умеет по названию компании провести мини-исследование: найти сайт, определить размер команды, собрать ключевую информацию — и выложить структурированный отчёт прямо в тред.
Что дальше
AI-агенты в корпоративных мессенджерах — это только начало. Сейчас агент реагирует на обращения, но логичный следующий шаг — проактивная работа. Например, автоматические дайджесты ключевых решений за неделю, предупреждения о рисках в открытых задачах, напоминания о забытых PR и незакрытых ревью.
Мессенджер с хорошей моделью тредов — не просто «канал доставки» для AI. Это среда, в которой агент может полноценно работать бок о бок с командой. Сквозные треды превращают его из инструмента, которым пользуется один человек, в полноценного участника рабочего процесса, который может координировать действия между разными людьми и системами.



