Что делает
AI-агент на базе AI-модели подключается к вашему репозиторию GitHub и/или инстансу Jira и обрабатывает каждый новый issue в момент его создания. Система извлекает смысл из неструктурированного текста заголовка и описания, классифицирует тикет по внутренней таксономии команды и выполняет стандартные действия триажа без участия инженера.
Что делает автоматизация на практике:
- Забирает новый issue через webhook (GitHub Issues API или Jira Webhooks) сразу после создания.
- Извлекает ключевые сущности из описания: тип (bug/feature/question), затронутый компонент или модуль, упомянутые версии, окружение, stacktrace.
- Определяет приоритет по правилам команды: severity, affected users, business impact.
- Проставляет labels и components в соответствии с утверждённой таксономией.
- Ищет дубликаты — семантический поиск по уже открытым issues за последние 6-12 месяцев.
- Назначает владельца: по компоненту, по module ownership, по round-robin внутри команды.
- Оставляет комментарий с кратким структурированным резюме для инженера — что сломалось, где, как воспроизвести, похожие тикеты.
- Эскалирует в Slack канал команды, если issue помечен как critical или похож на production incident.
Эффект из практики внедрения: senior-инженер тратил 3 часа в неделю на ручной триаж — стало 20 минут быстрой проверки пограничных кейсов. Time-to-label сократилось с 18 часов до 2 часов. Дубликаты ловятся автоматически — раньше уходило до 1-2 дней до того, как кто-то замечал повтор.
Что автоматизация НЕ делает
Честные границы ответственности AI-агента:
- Не принимает инженерные решения. Триаж проставляет разметку и назначает владельца, но не решает «фиксить сейчас или нет» и «в какой sprint» — это остаётся за tech lead.
- Не закрывает issues. Даже явные дубликаты агент помечает и линкует, но финальное закрытие делает человек — это страховка от ложных совпадений.
- Не работает с приватной архитектурой без контекста. Агенту нужна заполненная таксономия labels, module ownership map и примеры корректно размеченных тикетов.
Как работает
Архитектурно автоматизация строится как slim-сервис между issue tracker и LLM: webhook ловит событие, собирается контекст (текст issue, похожие открытые тикеты, module ownership, ранее размеченные примеры), LLM возвращает структурированный JSON с классификацией, ответ применяется к issue через API платформы. Всё обёрнуто в retry-логику и human-in-the-loop для спорных кейсов.
Техническая последовательность
- Webhook от GitHub или Jira прилетает на сервис триажа (FastAPI или Node) при событиях
issues.openedиissues.edited. - Сервис собирает контекст: заголовок, описание, автор, существующие labels, список потенциальных дубликатов (top-5 по embedding similarity из векторного индекса).
- Сервис формирует промпт для AI-модели: передаётся таксономия labels, module ownership map, few-shot примеры ранее корректно размеченных issues и сам текст нового тикета.
- Claude возвращает JSON:
{ labels, priority, component, owner, duplicate_candidates, summary, confidence }. - Сервис валидирует JSON по схеме: если уровень confidence ниже порога (например, 0.75) — помечает issue тегом
needs-human-triageи не назначает владельца. - Для confident-кейсов сервис применяет labels и assignee через GitHub или Jira API, оставляет комментарий с резюме и линками на похожие тикеты.
- Критичные issues эскалируются в Slack канал команды через incoming webhook.
- Каждое действие пишется в audit log — прослеживается, что и почему агент изменил.
Компоненты решения
Компонент | Роль |
|---|---|
Webhook receiver | Приём событий от GitHub Issues и Jira Webhooks |
Context builder | Сбор описания, похожих тикетов, ownership map |
Vector index | Хранение embeddings открытых issues для поиска дубликатов |
LLM client (AI-модель) | Классификация и извлечение сущностей |
Schema validator | Валидация JSON-ответа и уровня confidence |
Action executor | Запись labels, assignee, комментария через API |
Slack notifier | Эскалация critical-тикетов |
Audit log | Полная история решений агента |
Почему custom-code, а не готовый no-code
Для триажа issues важны три вещи, которые слабо покрываются готовыми конструкторами: точный контроль над промптом и few-shot примерами (ваша таксономия специфична), векторный индекс дубликатов с persistent store embeddings и прозрачный audit log. Всё это решается на ~500-800 строк Python или TypeScript с LLM-клиентом, векторной БД (pgvector, Qdrant) и двумя API-интеграциями. Типичный стек: FastAPI + PostgreSQL с pgvector + AI-модель через Anthropic SDK + Octokit или Jira REST.
Human-in-the-loop как дефолт
Агент не работает на полном доверии. Два механизма обеспечивают безопасность:
- Confidence threshold — при уровне ниже порога решение помечается
needs-human-triage, labels не проставляются. - Weekly review — раз в неделю tech lead сверяет 20 случайных решений агента с реальностью, few-shot примеры обновляются, качество не деградирует.
Итог: большая часть issues размечается без участия инженера, спорные кейсы уходят на ручной триаж — но уже с подготовленным агентом резюме и кандидатами в дубликаты, что всё равно ускоряет работу.
Что нужно
Для запуска триажа команде нужны готовые данные, доступы и минимальная организационная подготовка.
Данные и доступы:
- GitHub Personal Access Token (scope
repo) или Jira API token с правами на запись labels, assignee и комментариев. - Утверждённая таксономия labels — список типов (bug/feature/task), приоритетов и компонентов. Обычно 15-40 категорий.
- Module ownership map: какой человек или команда отвечает за какой компонент или модуль.
- 100-200 корректно размеченных issues за последние 6-12 месяцев — для few-shot примеров и построения векторного индекса дубликатов.
- API ключ Anthropic для AI-модели.
Инфраструктура:
- Сервер или managed-платформа для сервиса триажа (VPS, Render, Railway, AWS Lambda — подойдёт любой вариант).
- PostgreSQL с pgvector или Qdrant/Weaviate для векторного индекса.
- Slack workspace и incoming webhook, если нужна эскалация критичных issues.
Готовность команды:
- Tech lead или senior-инженер как owner автоматизации — согласует таксономию и проверяет качество первые 2-3 недели.
- 30-40 минут в неделю у owner на weekly review решений агента в первый месяц, далее 15 минут.
- Команда принимает правила: дубликаты линкуются автоматически, но закрывает их человек.
Таймлайн внедрения:
Для complexity «week» ожидаемый срок — 2-4 недели. Неделя 1 — согласование таксономии и подготовка few-shot датасета. Неделя 2 — реализация сервиса и подключение webhooks. Неделя 3 — shadow mode (агент пишет решения в log, но не применяет), калибровка confidence threshold. Неделя 4 — переход в production с human review.
Боли
- Ошибки в ручных операциях
- Повторяющиеся рутинные задачи
- Постоянное переключение контекста
FAQ
Сколько занимает внедрение от старта до production?
Для команды с подготовленной таксономией labels и готовыми API-доступами — 2-4 недели. Неделя 1 уходит на согласование категорий и сбор few-shot датасета, неделя 2 — на реализацию сервиса и webhooks, неделя 3 — shadow mode для калибровки, неделя 4 — запуск с human review. Если таксономии ещё нет — добавьте 1-2 недели на её формализацию с tech lead.
Что делать, если у нас нет чёткой таксономии labels?
Это нормальная ситуация для команд, выросших органически. Перед запуском автоматизации проводится короткий labeling workshop — 2-3 встречи по часу с tech lead и senior-инженерами, где формализуется список типов, приоритетов и компонентов. На основе последних 200-300 issues проверяется покрытие. Без этого шага AI-агент не сможет давать стабильные результаты разметки.
Какие риски и что ломается при неправильной настройке?
Три основных риска: неверная классификация при слабой таксономии (лечится few-shot примерами и weekly review), ложные срабатывания по дубликатам (решается confidence threshold и тем, что закрытие всегда делает человек), перегрузка Slack при слишком агрессивной эскалации. Все три смягчаются shadow mode в первую неделю — агент пишет решения в log, но не применяет, пока tech lead не подтвердит качество.
Подходит ли автоматизация не-SaaS командам — агентствам, внутренним IT, продуктовым командам в корпорациях?
Да. Триаж работает там, где есть issue tracker с активным потоком тикетов — GitHub Issues, Jira, Linear, GitLab. SaaS- и продуктовые команды получают максимум эффекта из-за объёма входящих, но агентства с несколькими клиентскими проектами и внутренние IT-департаменты внедряют похожий подход — таксономия просто становится двухуровневой (клиент + категория).
Можно ли использовать с Linear или GitLab вместо GitHub/Jira?
Да, архитектура tracker-agnostic. Linear и GitLab предоставляют похожие webhooks и REST/GraphQL API для записи labels, assignee и комментариев. Потребуется адаптация webhook receiver и action executor — 1-2 дня дополнительной работы. Семантика confidence threshold, шаблон промпта и векторный индекс дубликатов переиспользуются без изменений.
Что с приватными данными в issues — может ли информация уйти наружу?
Данные передаются в AI-модель через Anthropic API согласно их data usage policy для коммерческого API. Для строгих compliance-требований добавляется шаг редактирования: сервис удаляет чувствительные поля (emails, токены, stacktrace с PII) перед отправкой в LLM. Полный audit log действий агента пишется локально в вашей инфраструктуре и доступен для аудита.
Хотите такую автоматизацию в своём бизнесе?
Запишем на бесплатный аудит — покажем, как это будет работать именно у вас.