Продолжаем приручать ИИ: рефлексия агента, интервью пользователя, God-agent

Продолжаем приручать ИИ: рефлексия агента, интервью пользователя, God-agent

Мы привыкли, что в программировании всё постоянно меняется — новые версии фреймворков, языки, подходы. Поэтому ИТ считается сферой, где нужно учиться всю жизнь. В последнее время изменения происходят особенно быстро. Виной тому — генеративные языковые модели. Знания устаревают за считанные месяцы, а вчерашние прорывы сегодня выглядят как анахронизмы.

Однако у этой тенденции есть и плюс: если вы пропустили начало ИИ-гонки, наверстать упущенное можно быстро. В этой статье — приёмы, которые помогут выстроить эффективную систему взаимодействия с ИИ или улучшить уже существующую.

Context engineering: agents, skills, commands

Генеративный ИИ не размышляет — он предсказывает ответ на основе входного запроса. Чем подробнее запрос, тем точнее ответ. Но избыток информации — такая же проблема, как и её недостаток. Просто засыпать модель данными — не лучшая стратегия.

Это похоже на чтение большой книги за раз: в нужный момент сложно вспомнить, что было в главе N. То же происходит с LLM — они теряют фокус при перегрузке контекстом.

Решение стало стандартом: разделять контекст на небольшие фрагменты, подавая их модели по мере необходимости. Например, через MD-файлы в корневой папке.

Типичная структура контекста:

  • AGENTS.MD или CLAUDE.MD — корневой файл с описанием проекта;
  • Агенты и саб-агенты — специализированные роли ИИ;
  • Skills — короткие инструкции для выполнения конкретных задач;
  • Commands — шаблоны промптов для типовых операций.

Такой подход позволяет модели «открывать нужную главу» в нужный момент, как по оглавлению.

Оптимизация контекста

Некоторые операции — например, чтение логов, запуск тестов или компиляция — генерируют много данных. Даже 500 токенов на одну операцию при частом повторении могут переполнить контекстное окно.

Чтобы агент работал автономно и не терял фокус, можно:

  • Фильтровать логи и вывод в терминале — оставлять только важное. С этим помогает инструмент rtk;
  • Индексировать проект — ускорить поиск по коду. Решение: Claude-ast-index-search;
  • Сжимать контекст сессии — вручную или автоматически. Некоторые клиенты делают это при переполнении. Но злоупотреблять не стоит — можно потерять важные детали.

Дополнительно полезно создавать todo-лист в отдельном MD-файле. Это помогает агенту отслеживать прогресс и делиться состоянием между сессиями — например, при покрытии модуля тестами.

Интервью пользователя

Если модели не хватает контекста, она его придумает. Результат может сильно отличаться от ожиданий. Чтобы избежать этого, можно заставить агента перед выполнением задать уточняющие вопросы.

Реализовать это лучше через отдельный skill, чтобы использовать его у нескольких агентов.

Пример: вместо «задай 3 вопроса» указать — «задай от 2 до 6 вопросов, если задача непонятна; если всё очевидно — пропусти этап».

Иногда вопросы модели помогают понять, что сам пользователь не до конца разобрался в требованиях. Это — метод уточки в XXI веке.

Рефлексия агента

После выполнения задачи можно спросить у агента: «Если бы ты делал это снова, что сделал бы иначе?» Если были ошибки — выяснить причины. Это напоминает рефлексию, доступную не всем людям. Уже AGI?

Пример: агент написал тесты, но покрыл только один метод из трёх. На вопрос «почему?» ответил: «Моя задача — написать успешный тест. Остальные методы не проходили, поэтому я их удалил». Машина «взломала» требования — и выполнила их формально.

Такую рефлексию можно использовать для улучшения инструкций агентов.

God-agent

Изначально настройка агентов казалась зоной ответственности разработчика. Но со временем логично возникает вопрос: а почему бы не поручить это самому ИИ?

Так появился God-agent — агент, который создаёт и обновляет конфигурационные файлы для других агентов.

Ещё один полезный приём: создать отдельный навык для написания навыков. В нём можно указать в качестве reference руководство Anthropic по созданию skills — чтобы новые инструкции соответствовали лучшим практикам.

Теперь после каждой сессии можно:

  1. дать агенту задачу;
  2. оценить результат, запросить рефлексию;
  3. вызвать God-agent, чтобы он обновил конфигурацию на основе полученного опыта;
  4. повторить задачу и проверить улучшения.

Этот цикл с большой натяжкой можно назвать обучением на верхнем уровне абстракции.

Да, LLM неидеальны: один и тот же промпт может давать разные ответы. Но личный опыт показывает — качество работы агентов таким способом улучшить можно.

Подытожим ключевые практики:

  • Структурируйте контекст через agents, skills, commands;
  • Оптимизируйте контекстное окно с помощью rtk, ast-index и сжатия;
  • Используйте todo-листы в MD-файлах для отслеживания прогресса;
  • Проводите интервью пользователя перед выполнением задачи;
  • Создайте God-agent для автоматической настройки других агентов;
  • Применяйте рефлексию и обновляйте инструкции на её основе.

В сфере ИИ всё меняется быстро. Многие решения рождаются в результате экспериментов энтузиастов — таких, как мы с вами. Делитесь своим опытом — вместе делаем ИИ умнее и полезнее.

Читать оригинал