Введение
Разработчики, активно использующие AI-агентов для написания кода, часто сталкиваются с парадоксальной проблемой: количество багов не уменьшается, а лишь меняет форму. Каждый новый запрос к агенту может породить уникальную ошибку, которая затем повторяется в разных вариациях. Один из пользователей платформы Habr решил эту проблему радикально — он проиндексировал 3,3 ГБ логов своих кодинг-агентов, чтобы выявить повторяющиеся паттерны и раз и навсегда устранить их коренные причины. В этой статье мы разберём, как такой подход может изменить ваш workflow и почему логи AI-агентов — это не просто мусор, а золотая жила для отладки.
Проблема: почему одни и те же баги возвращаются
Когда разработчик использует кодинг-агентов (например, GitHub Copilot, Cursor или локальные LLM), каждый вызов модели — это чёрный ящик. Агент может сгенерировать код, который работает в 80% случаев, но в 20% — приводит к ошибкам, которые тяжело воспроизвести. Автор статьи на Habr заметил, что многие баги имеют общие корни: неправильная обработка краевых случаев, некорректные типы данных или конфликты зависимостей. Проблема в том, что логи агентов обычно хранятся локально и не анализируются системно.
Основные причины повторяющихся багов:
- Отсутствие контекста: Агент не видит историю предыдущих ошибок и генерирует похожие решения.
- Фрагментированные логи: Каждый сеанс работы записывается отдельно, без связки с другими.
- Недостаточная обратная связь: Разработчик исправляет баг, но не передаёт эту информацию агенту.
Решение: индексация 3,3 ГБ логов
В своём материале Источник автор описывает, как он собрал все логи своих AI-агентов за несколько месяцев работы — общий объём составил 3,3 ГБ. Эти данные содержали:
- Полные запросы и ответы агентов.
- Сгенерированный код.
- Ошибки компиляции и времени выполнения.
- Комментарии разработчика (чекины, откаты, правки).
Для индексации использовалась Elasticsearch — стандартный инструмент для полнотекстового поиска и анализа логов. Автор настроил конвейер, который парсил JSON-логи, извлекал ключевые поля (тип ошибки, файл, строка, временная метка) и помещал их в индекс.
Пример структуры индекса:
| Поле | Тип | Описание |
|---|---|---|
timestamp |
datetime | Время генерации кода |
agent_id |
string | Идентификатор агента |
query_text |
text | Текст запроса |
error_type |
string | Тип ошибки (SyntaxError, TypeError и т.д.) |
file_path |
string | Путь к файлу |
stack_trace |
text | Полный стек ошибки |
После индексации автор выполнил агрегацию по полю error_type и обнаружил, что 40% всех ошибок относятся к трём категориям: UnboundLocalError, AttributeError и ImportError. Это позволило целенаправленно доработать промпты для агентов, добавив в них явные проверки на эти случаи.
Практические шаги для внедрения
Если вы хотите повторить этот подход, вот пошаговая инструкция:
Шаг 1. Сбор логов
Большинство AI-агентов сохраняют логи в локальные файлы. Например:
- GitHub Copilot: логи хранятся в ~/.config/github-copilot/logs/.
- Cursor: в ~/.cursor/logs/.
- Локальные LLM (через Ollama): в ~/.ollama/logs/.
Соберите все файлы в одну директорию: mkdir ~/agent_logs && cp -r ~/.config/github-copilot/logs/* ~/agent_logs/.
Шаг 2. Установка Elasticsearch
Для локальной индексации можно использовать Docker:
docker run -d --name elasticsearch -p 9200:9200 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:8.12.0
После запуска проверьте доступность: curl http://localhost:9200.
Шаг 3. Загрузка данных
Напишите простой Python-скрипт для парсинга логов. Пример:
import json
from elasticsearch import Elasticsearch
es = Elasticsearch("http://localhost:9200")
with open("log.json", "r") as f:
for line in f:
log_entry = json.loads(line)
es.index(index="agent_logs", document=log_entry)
Шаг 4. Анализ ошибок
Выполните запрос агрегации в Kibana (визуальный интерфейс для Elasticsearch):
{
"size": 0,
"aggs": {
"error_types": {
"terms": {
"field": "error_type.keyword",
"size": 10
}
}
}
}
Результат покажет топ-10 типов ошибок, которые чаще всего встречаются.
Результаты и выводы
После того как автор выявил ключевые ошибки, он переписал системные промпты для агентов. Например, для борьбы с UnboundLocalError он добавил в начало каждого запроса инструкцию: «Перед использованием переменной всегда проверяй, была ли она инициализирована». Это снизило количество подобных ошибок на 70% в течение недели.
Кроме того, индексация позволила отследить динамику: баги, связанные с ImportError, возникали только после обновления библиотек. Это натолкнуло на мысль добавить в CI/CD пайплайн проверку совместимости зависимостей.
Заключение
Индексация логов AI-агентов — это не просто технический трюк, а необходимый шаг для тех, кто серьёзно использует AI в разработке. Всего 3,3 ГБ данных могут раскрыть скрытые паттерны, которые экономят часы отладки. Если вы ещё не анализируете свои логи, начните прямо сегодня — это может стать вашим главным инструментом против повторяющихся багов. ASI Biont поддерживает подключение к Elasticsearch через API для автоматического сбора и анализа логов — подробнее на asibiont.com/courses. Попробуйте этот подход и убедитесь, что AI-агенты могут работать не быстрее, а умнее.
Комментарии