Планировщик, генератор, исцелитель: как я управлял полным набором инструментов для драматургов с помощью трёх ИИ
Пошаговое руководство по использованию Planner, Generator, Healer: как я запустил полный набор инструментов Playwright с тремя ИИ-модулями, включая шаблоны контрактов, проверок и слоты для вставки кода для команд, использующих эту архитектуру.
Используйте это как переработанную версию идей из статьи «Planner, Generator, Healer: How I Ran a Full Playwright Suite With Three AI Agents And Playwright MCP» для операторов: четкие этапы, упорядоченные блоки кода и записи о восстановлении, сохраняющиеся при передаче задач. Этап Обзора работает лучше всего, если рассматривать его как измеримую основу. Соберите один идеальный пример выполнения, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объема работ. Документируйте как успешный путь выполнения, так и путь восстановления одновременно. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не этапом последующей доработки.
Настройка, делающая агентов полезными
Для настройки этапа необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии системы. Лучше использовать небольшие, тестируемые единицы кода вместо обширных скриптов. При сбое шага причина должна быть связана с конкретной функцией, а не с запутанной структурой обработки данных. Аутентификация должна происходить на уровне шлюза, а повторная авторизация — на уровне обработки данных. Одного только токена-носителя недостаточно для определения границ аренды ресурсов.
{
"servers": {
"playwright-test": {
"type": "stdio",
"command": "npx",
"args": ["playwright", "run-test-mcp-server"]
}
}
}
Агент 1 — планировщик: «Что стоит тестировать?»
На этапе планирования для Агента 1 необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Дайте названия результатам работы, определите критерии успеха и не допускайте молчаливого частичного завершения задачи. Проводите аутентификацию на шлюзе и повторно предоставляйте разрешения на уровне обработки данных. Одного лишь токена-носителя недостаточно для обозначения границы тенантности.
Агент 2 — генератор: «Превратите этот сценарий в реальность»
Для этапа генерации в Agent 2 необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Записывайте время выполнения и стоимость токенов или запросов рядом с функциональными результатами. Отображение стоимости заранее предотвращает неожиданные счета при переходе с демо-среды в общедоступные среды. Аутентифицируйтесь у шлюза и повторно авторизуйтесь на уровне передачи данных. Один только токен-носитель не является границей аренды. Для этапа генерации в Agent 2 необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Документируйте как успешный, так и восстановительный пути работы. Повторные попытки, человеческое вмешательство и обработка некорректных сообщений являются частью продукта, а не элементами последующей доработки.
// spec: specs/checkout-e2e-plan.md
// seed: tests/web/seed.spec.js
import { test, expect } from '../../../fixtures';
import { users } from '../../../testdata';test.describe.configure({ mode: 'parallel' });test.describe('E2E checkout journey', () => {
test('positive: login → add product → checkout → thank you → home', async ({ flow }) => {
await flow.completeHappyPathPurchase();
});
});
async completeHappyPathPurchase(user = users.standard, info = checkout.valid) {
await this.goToCheckoutInformation(user);
await this.fillValidInformation(info);
await this.continueToOverview();
await this.app.checkoutOverview.expectProductVisible(products.first.name);
await this.finishOrder();
await this.backHomeToProducts();
}
Агент 3 — Исцелитель: «Он сломался. Исправьте соответствующий уровень».
При работе над этапом Исцелителя агента 3 сначала запишите контракт: необходимые входные данные, сигнал успеха и то, что происходит при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Лучше использовать небольшие, тестируемые единицы кода, чем обширные скрипты. Когда какой-то шаг терпит неудачу, ошибка должна указывать на конкретную ответственность, а не на запутанную цепочку операций. Зафиксируйте название инструмента, хеш аргументов, время задержки и результат каждого вызова. Без такой записи отладка циклов агента занимает часы.
Как на самом деле запустить его от начала до конца
При работе над этапом «Как на самом деле запустить» сначала запишите контракт: необходимые входные данные, сигнал о успехе и что происходит при частичной неудаче. Такой чек-лист помогает сохранять честность при последующих изменениях кода. Рассматривайте этот этап как контракт между входными данными и проверенными выходными данными. Укажите названия результатов работы, определите критерии успеха и не допускайте молчаливого частичного завершения задачи. Фиксируйте название инструмента, хеш аргументов, время задержки и результат каждого вызова. Без такой записи отладка занимает гораздо больше времени.
1. Copy .env.example → .env, set BASE_URL (+ credentials)
2. npm install && npx playwright install
3. Run the Planner
→ specs/checkout-e2e-plan.md (22 scenarios, reviewed by me)4. Run the Generator, scenario by scenario
→ tests/web/login/login.spec.js
→ tests/web/cart/cart.spec.js
→ tests/web/checkout/checkout.spec.js
→ tests/web/e2e/checkout-journey.spec.js5. npm test (4 workers, fully parallel)6. Any red? Run the Healer → re-run → green
Насколько же на самом деле быстрее?
При работе над этапом «Насколько быстрее?» сначала запишите условия работы: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой чек-лист помогает сохранять честность при последующих изменениях кода. Записывайте время выполнения и стоимость токенов или запросов рядом с функциональными результатами. Отслеживание затрат на раннем этапе предотвращает неожиданные счета при переходе от демо-среды к общедоступным средам. Фиксируйте название инструмента, хеш аргументов, время задержки и результат каждого вызова. Без такой записи отладка занимает часы. При работе над этапом «Насколько быстрее?» сначала запишите условия работы: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой чек-лист помогает сохранять честность при последующих изменениях кода. Документируйте как успешный, так и восстановительный пути работы. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не элементами последующей доработки.
Четыре урока, которые стоит извлечь
Метод «Четыре урока, стоящих кражи» наилучшим образом работает, если рассматривать его как измеримую структуру. Соберите один идеальный пример выполнения, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объема работы. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. Когда какой-то шаг сбивается, причина сбоя должна указывать на конкретную ответственность, а не на запутанную цепочку операций. Используйте инструменты с узкими схемами и четкими метками побочных эффектов. Администраторам необходимо знать, какие вызовы изменяют состояние, прежде чем они автоматически одобрят действие.
Кому стоит попробовать
The Who должны попробовать применить этот этап — он работает лучше всего, когда рассматривается как измеримая поверхность. Зафиксируйте один идеальный пример выполнения, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объема работ. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия всем элементам, определите критерии успешного выполнения и не допускайте молчаливого частичного завершения работы. Используйте инструменты с узкими схемами и четкими метками о побочных эффектах. Администраторам необходимо знать, какие вызовы изменяют состояние системы, прежде чем они автоматически одобрят их.
Чек-лист операций
При работе над этапом чек-листа операций сначала запишите условия контракта: необходимые входные данные, сигнал о успешном выполнении и последствия частичного сбоя. Такой чек-лист обеспечивает прозрачность последующих изменений в коде.
Храните конфигурацию отдельно от кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы администраторы могли их проверять, не читая весь кодовый граф.
Записывайте название инструмента логирования, хеш аргументов, время задержки и результат каждого вызова. Отладка без такой информации тратит часы впустую.
Сохраняйте состояние графа в упорядоченном и типизированном виде. Вложенные структуры данных мешают понять, какой узел заполнил тот или иной поле, и препятствуют возобновлению работы после перерывов.
При наличии бюджета добавляйте тесты на работоспособность критического пути в процессе интеграционного тестирования с использованием фикстур, а не реальных платных API.
Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Дайте названия результатам обработки, определите критерии успеха и не соглашайтесь на молчаливое частичное выполнение задачи.
Перед обновлением стека зафиксируйте версии, сохраните эталонный отчет для критического пути и убедитесь в наличии шагов для отката. В совместных средах необходимы ограничения на частоту запросов, проверки принадлежности ресурсов и четко определенный ответственный за обновление секретов. Лучше надежность, даже если она кажется скучной, чем красивые одноразовые демонстрации.
Примечание к пакету ebfa232e6bf7: не включайте ключи поставщиков в репозиторий, установите лимит токенов на сессию и храните транскрипты рядом с фиксами для оценки, чтобы последующие замены моделей оставались сопоставимыми.
Наиболее эффективно использовать примечание по укреплению безопасности на этапе 0, рассматривая его как измеримую основу. Соберите один эталонный транскрипт, один пример сбоя и запись о возврате к предыдущему состоянию перед расширением объёма работ. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия артефактам, определите критерии успеха и откажитесь от молчаливого частичного выполнения задач.
Подробность укрепления безопасности 0/959: измеряйте время выполнения, класс ошибки и расход токенов для этого примечания, затем решайте о сохранении изменений на основе фиксированного набора вопросов, а не на основе устных замечаний.