Человек в /loop
@ai_longreadsКак работать сразу с несколькими агентами: задать чёткий критерий готовности, который агент может сам проверить, запустить цикл, который крутится, пока не должен остановиться, и получать пинги, чтобы знать, когда пора вмешаться.
Это AI-перевод статьи, сделанный каналом Про AI: Лучшие Статьи и Исследования.
Человек в /loop
Human in the /loop Автор: eric zakariasson Оригинальный текст:
Больше всего в работе с агентами мне сейчас нравится то, что можно оставить несколько запусков крутиться и при этом спокойно заниматься другими делами. Когда что-то завершается или требует решения, я подключаюсь.
Этот пост — короткий разбор моего сетапа: критерий готовности (definition of done), который агент может сам оценить; цикл, который продолжает работать, пока не наступит момент остановиться; и уведомления, чтобы я знал, когда стоит вмешаться.
Найдите то, что агент может проверить
Прежде чем запускать долгую задачу, я фиксирую критерий готовности. Примеры, которые я реально использую:
- Работа с моделью или eval (оценка, прогон метрики). Цель — это score (числовая оценка). Меняешь подход, запускаешь eval, оставляешь изменение только если число сдвинулось в нужную сторону. Ближе всего к autoresearch Karpathy для циклов обучения ML-моделей.
- Веб-приложение или UI. Цель — пройти QA-проверку. Загрузить страницу или запустить Playwright, сделать скриншот, убедиться, что всё по-прежнему работает как надо.
- Бэкенд или рефакторинг. Цель — набор тестов. Сначала падающие тесты, потом зелёные, и они должны оставаться зелёными.
- Скорость или нестабильность. Цель — число (p95, бенчмарк). Меняешь и измеряешь, пока не окажешься ниже установленной планки.
- Очистка данных или контента. Цель — количество. Крутить цикл, пока ноль строк не проходит валидацию, или пока каждый элемент не пройдёт проверку.
Написать цикл — это по большей части описать то, как вы сами проверяли бы работу. Для некоторых задач нужен каждый шаг, расписанный по пунктам. Для других я задаю цель и общее направление, а модель сама заполняет середину. Я начинаю с более подробных инструкций, чем, кажется, нужно, а потом ослабляю их, когда вижу, что модель способна додумать сама.
Оберните это в цикл
Когда критерий готовности на руках, я говорю агенту крутить по нему цикл. Что-то изменить, измерить, сохранить или откатить, повторить. Это не обязательно должна быть одна крошечная правка за раз. Шаг просто должен быть измеримым относительно цели. Больше всего меня заботят условия остановки, которыми могут быть:
- Метрика достигла цели
- Нет улучшений после нескольких попыток
- Закончились идеи
- Заблокировано или есть сомнения (остановиться и спросить)
Получать пинги вместо няньканья
Поэтому агент получает канал уведомлений (MCP плюс /notify) и связывается со мной там. Обычно это Slack, потому что там уже и так всё остальное. Тот же сетап мог бы работать через iMessage или что угодно ещё. Я отношусь к этому как к обычному каналу уведомлений, а не как к полному доступу агента к Slack. Статусы и сообщения вроде «мне нужно решение» приходят как обычные сообщения. Когда я отвечаю, этот ответ становится тем, на чём цикл делает следующий запуск.
Запускайте это в облаке
Большая часть всего этого не остаётся у меня на ноутбуке. Оно работает в облаке, чтобы цикл мог крутиться часами без того, чтобы моя машина была включена. Я использую собственный клиент как оркестратор и раздаю работу облачным агентам оттуда.
А потом запускайте следующий
Как только один цикл запущен, я стартую ещё один. Обычно около трёх, иногда пять. И это только длинные циклы. Часто у меня параллельно работают и другие агенты на более коротких задачах: PR, разовое расследование, что-то, что не является многочасовым восхождением в гору. Если всё спокойно — запускаю ещё один. Если трое ждут меня — перестаю запускать новое и иду ревьюить.
Промптинг
Примерный шаблон того, как я промпчу. /loop управляет итерациями, а /notify держит меня в курсе.
Task: <длинная задача> /loop until <метрика / тесты / eval / QA-проверка> hits <target>. Считай это источником истины и не меняй, пока работаешь. Останавливайся раньше, если несколько попыток не дают сдвига или у тебя кончились идеи. Если заблокирован или сомневаешься — остановись и спроси. /notify на старте, при чём-либо неожиданном и когда закончил или застрял. Пингуй меня, когда нужно решение.
Если вы гоняете такие циклы — буду рад услышать, как мы можем сделать это удобнее для вас!
Подпишитесь на канал и каждый день читайте лучшие материалы про AI переведенные на русский!
Нашли интересную статью для перевода? Пришлите нашему боту: @ailongreadsbot