Промпт-сборки

Промпт-сборки — самый продвинутый механизм проверки в Pastukhov Agent. Обычные сборки запускают заранее заданные команды (компиляцию, тесты), а промпт-сборка поручает проверку отдельному агенту ИИ: он получает задание на простом языке (промпт), сам разбирает вашу кодовую базу и сообщает о найденных проблемах. Рассуждения такого агента-проверщика идут в изолированном чате, не засоряя вашу основную беседу. Его вывод разбирается теми же правилами, что и обычные сборки, а найденные ошибки можно передать в Автоисправление.

Автоматическая проверка изменений проекта

Как работают промпт-сборки

В файле build.yml промпт-сборка использует поле prompt вместо command. При запуске программа создаёт новую сессию чата, отправляет туда промпт первым сообщением и следит за ответом агента:

build:
  ai-review:                          # имя сборки
    watch: chat                       # запуск после завершения вашего чата
    prompt: "/verify Проверь последние изменения кода. Прочитай стенограмму диалога из {chat} и сообщи о проблемах."
    chatTitle: "Проверка кода"        # название чата подагента
    delay: 5                          # пауза перед запуском, секунд
    timeout: 120                      # лимит времени на работу подагента, секунд
    display: always
    autofix: always

Триггер watch: chat срабатывает, когда ваша сессия завершена: очередь ваших сообщений пуста, а Автоисправление закончило работу без ошибок и предупреждений. Даже если у промпт-сборки включено автоправление, она запустится только после того, как командные сборки исправили свои ошибки, — чтобы агент-проверщик работал с чистым состоянием. Заполнитель {chat} заменяется на путь к стенограмме вашего разговора, так что подагент видит весь контекст. В поле chatTitle доступен ещё и {buildName} — имя сборки для динамических заголовков.


Отдельный чат подагента

Промпт-сборки создают отдельный чат с собственным окном контекста (памятью разговора):

  • Изолированный контекст — рассуждения и действия подагента идут в его собственном чате и не отнимают токены (порции текста, за которые вы платите) у вашей основной беседы и не засоряют её
  • Связь с основным чатом — каждый чат подагента хранит ссылку на исходный разговор (ParentChatId). Получается прослеживаемая цепочка, которая видна на панели аналитики
  • Название чата — поле chatTitle задаёт заголовок чата подагента; если его не указать, берётся имя сборки. Заполнитель {buildName} подставляется автоматически
  • Сбор результата — когда подагент закончил, его последнее сообщение становится выводом сборки. Если задано поле outputFile, вывод читается из указанного файла — так можно поручить агенту записать итог в файл, это надёжнее и удобнее для отладки

Подагент работает в течение заданного timeout (в секундах); если лимит превышен, сборка отменяется. Программа следит за готовностью через менеджер экземпляров: как только обработка чата завершается, вывод извлекается и разбирается.


Разбор вывода и Автоисправление

Вывод подагента разбирается тем же файлом .pastukhov/build.parser, что и вывод командных сборок. Любые шаблоны, настроенные под ваши инструменты, работают и здесь: если ответ подагента подходит под правила [ERROR] или [WARNING], проблемы извлекаются в структурированном виде.

Промпт-сборки участвуют в Автоисправлении наравне с командными:

  • autofix: always — ошибки подагента передаются в основной чат для исправления
  • autofix: errors — Автоисправление запускается только при реальных ошибках (не при предупреждениях)
  • autofix: never — сборка только информационная: анализ подагента виден на панели сборки, но правок он не вызывает

Вывод сборки хранится в папке .pastukhov/build/ в том же виде, что и у командных сборок — три файла: {build-name}.output.txt (вывод), {build-name}.errors.txt (ошибки) и {build-name}.warnings.txt (предупреждения).


Настройка промпт-сборок

Промпт-сборки поддерживают те же поля настроек, что и командные, только вместо command используется prompt:

build:
  security-audit:                     # аудит безопасности
    watch: chat
    prompt: "/verify Проверь код на безопасность: захардкоженные секреты, уязвимости SQL-инъекций, ненадёжные зависимости. Прочитай стенограмму из {chat} для контекста последних изменений."
    chatTitle: "Аудит безопасности"
    delay: 10
    timeout: 300
    display: errors
    autofix: errors

  test-generation:                    # генерация тестов
    watch: chat
    prompt: "/verify Напиши тесты для изменений кода из стенограммы {chat}. Запусти тесты и сообщи о неудачах."
    chatTitle: "Генерация тестов"
    delay: 5
    timeout: 180
    display: always
    autofix: always

Как составить хороший промпт проверки

  • Загрузите навык — навык доставляется подагенту автоматически, в текст промпта ничего добавлять не нужно (подробнее на странице Навыки). В контекст попадает полное содержимое навыка — SKILL.md и файлы его папки. Навык проверки кода даст агенту стандарты, по которым он будет сверяться
  • Ссылайтесь на стенограмму — используйте {chat}, чтобы подагент видел весь разговор. Без этого он знает только то, что вы написали в промпте
  • Указывайте, что именно проверять — «проверь на проблемы» расплывчато. «Проверь обращения к пустым значениям, пропущенную обработку ошибок и неверные асинхронные паттерны» даёт агенту конкретные критерии
  • Задавайте формат ответа — чтобы вывод разбирался автоматически, попросите подагента оформлять ошибки под ваши правила разборки. Лучше всего объяснить формат в навыке — тогда он станет повторно используемым

Объединение триггеров

Как и командные, каждая промпт-сборка следит ровно за одним событием: изменениями файлов, именами других сборок или событием chat. Триггер chat доступен сборкам всех типов. Если нужна одна промпт-сборка на несколько событий, используйте схему «родитель–потомок» из руководства по автоматическим сборкам: создайте несколько лёгких родительских сборок — по одной на событие — а промпт-сборка пусть следит за ними. На родительских сборках задайте display: never, чтобы спрятать их с панели сборки.


Полезные приёмы

  • Проверка после каждой сессии — промпт-сборка с watch: chat сама перепроверяет работу ИИ после каждого разговора. Подагент находит то, что пропускают компиляторы и линтеры: архитектурные проблемы, логические ошибки, нарушения правил проекта
  • Аудит безопасности — отдельная промпт-сборка проверяет секреты в коде, паттерны SQL-инъекций, ненадёжные зависимости и другие уязвимости, которые автоматические инструменты могут не заметить
  • Генерация и прогон тестов — промпт-сборка, которая пишет и запускает тесты, даёт проверку, недоступную статическому анализу. Если сгенерированные тесты падают, Автоисправление передаёт неудачи обратно для правки кода
  • Цепочка с командными сборками — промпт-сборка, следующая за командной, образует двухступенчатый конвейер: командная ловит статические ошибки, промпт-сборка — смысловые. Сначала настраивается командная сборка в порядке зависимостей
  • Держите контекст подагента узким — используйте один нужный навык и ссылайтесь на стенограмму. Лишние навыки разбавляют внимание агента и делают проверку менее полезной
  • Ручной запуск тяжёлых проверок — уберите триггер watch и задайте autofix: never: сборка не будет запускаться сама, но останется на панели сборки, где её можно запустить одним кликом. Так удобно делать крупные аудиты всего проекта после больших обновлений, а не после каждого чата

Полный справочник по системе сборки — в разделе Сборка и развёртывание. Об автоматическом исправлении ошибок — Автоисправление. О контроле контекста подагентов — Аналитика и контроль.