Урок 7.6 · агенты

Два AI в задаче — не два абзаца с подписями

Claude написал решение, Codex должен проверить код — или наоборот. Главная проблема не в том, как назвать «мост», а как реально вызвать второго агента, передать ему ограниченную роль и получить отдельное доказательство работы.

⏱ 15 минут3 рабочих сценарияготовый файл для агентапроверка без имитации

Когда вы уже теряете время

Эти симптомы означают, что нужен не ещё один длинный промпт, а понятный контур «MAIN → второй агент → проверка».

Пересылка руками

Копируете ответы между окнами

Контекст обрезается, версии расходятся, а человек превращается в транспорт между Claude и Codex.

Ложная команда

Один AI «играет две роли»

Фразы «Claude считает…» и «Codex проверил…» ничего не доказывают, если второго вызова и отдельного результата нет.

Два владельца

Оба переписывают одну работу

Дублируется стоимость, конфликтуют файлы, а принять или отклонить разногласия некому.

Три понятных сценария

У второго агента должна быть отдельная роль, свой выход и короткий критерий приёмки.

Код

Codex делает, Claude критикует

Вход: точный issue и изменённые файлы
Второй агент: ищет три риска в diff
Выход: замечания по строкам + повторный тест MAIN
Исследование

Claude строит вывод, Codex проверяет источники

Вход: три спорных утверждения
Второй агент: находит первичные источники
Выход: ссылки, даты, снятые или уточнённые тезисы
Клиентский материал

Один пишет, второй проверяет путь клиента

Вход: страница и целевая аудитория
Второй агент: ищет непонятные боли и тупики
Выход: список исправлений + readback ссылок и CTA
Наш рабочий мост

Это контракт работы, а не обязательно MCP

В VDAI одна задача сохраняет одного владельца — MAIN. Он знает исходный результат, даёт второму агенту ограниченный кусок, получает его самостоятельный артефакт и только потом собирает финал.

Транспорт может быть встроенным вызовом subagent, task runner, Murmur, Buzz или ручной передачей. Выбирать нужно по длительности и числу участников. Но контракт остаётся одним и тем же.

Честная граница. Если ваша среда не умеет реально запускать второго агента, прямого делегирования нет. Нужна отдельная комната или ручной handoff — не литературная имитация ответа.

Один результат и источник

MAIN фиксирует, что должно быть готово и по какому файлу, ссылке или данным работать.

Один владелец

MAIN отвечает за итог. Второй агент не создаёт параллельную задачу и не меняет цель.

Ограниченная роль

Например: проверить diff, найти первичные источники или оспорить критерий готовности.

Отдельный результат

Ответ второго агента возвращается отдельно, без пересказа и смешивания с выводом MAIN.

Сборка разногласий

MAIN пишет, что принял, что отклонил и что изменил после проверки.

Receipt и readback

Видны механизм вызова, агент, статус, артефакт и итоговый тест. Доставка сообщения не равна качеству результата.

Что выбрать

«Прямой» и «отдельный» — не новый и старый по качеству. Это разная цена координации.

КритерийПрямое делегированиеMurmur / Buzz — отдельный мост
Лучший случай+Одна задача, один MAIN, одна независимая проверка.+Долгая комната, несколько равноправных участников, общий журнал.
Старт+Одна команда, если среда уже поддерживает вызов второго агента.Нужно установить транспорт, подключить агентов и проверить доставку.
Контекст+MAIN передаёт ровно нужный фрагмент задачи.±Комната хранит историю, но большим файлам всё равно нужны ссылки или артефакты.
ПродолжительностьОбычно заканчивается вместе с текущей задачей.+Подходит для повторяющегося coder/reviewer-цикла.
Сложность+Меньше движущихся частей.Появляются daemon/relay, конфигурация, версии и liveness.
Главный рискMAIN может имитировать «мнение коллеги», если receipt не требуется.Сообщение доставлено, но ответ может не вернуться или не пройти приёмку.
ДоказательствоФактический вызов + отдельный вывод + изменения MAIN + тест.Участник в журнале + ack/done + артефакт + итоговый тест.

Запуск за пять шагов

Сначала дешёвый тест способности, затем реальная задача. Никакой установки «на всякий случай».

Проверьте инструмент.
Попросите назвать доступный механизм вызова второго агента. Нужен реальный tool/task/subagent, а не обещание.

Дайте тест на одну минуту.
Например: «пусть второй агент найдёт одно противоречие в этих трёх строках и вернёт отдельный ответ».

Зафиксируйте роли.
MAIN делает и собирает; REVIEWER проверяет один критерий и не переписывает всё.

Потребуйте четыре блока.
MAIN_RESULT, SECOND_AGENT_RESULT, SYNTHESIS и RECEIPT.

Проверьте итог, а не диалог.
Откройте файл, запустите тест или прочитайте источник. Работа агентов закончена только после readback.

Подключи второго агента только через реально доступный механизм.

Результат: проверить этот материал перед публикацией.
Ты — MAIN: отвечаешь за итог и правки.
Второй агент — REVIEWER: находит 3 непонятных места и 2 риска.

Верни отдельно:
1. MAIN_RESULT
2. SECOND_AGENT_RESULT
3. SYNTHESIS — что изменено
4. RECEIPT — механизм, агент, статус, артефакт, тест

Если вызов невозможен, верни SECOND_AGENT_UNAVAILABLE.
Не имитируй мнение другого агента.
Файл для агента · Markdown

Скачайте готовое задание

Внутри: проверка способности среды, роли MAIN/REVIEWER, готовый промпт, формат receipt, стоп-условия и критерий приёмки человеком.

Скачать agent-brief.md ↓

Ошибки, с которыми уже сталкивались

Ниже не предположения, а ограничения документации Murmur и публичные issue проекта Buzz.

Murmur · установка

Нужен Node 22.5+, daemon, отдельная регистрация каждого CLI и явная команда входа. В текущем v1 — одна hardcoded-комната, same-machine и без auth. README проекта ↗

Buzz · onboarding

У пользователя не установились ни Claude Code, ни Codex; повторная установка не помогла, кнопка Next осталась заблокирована, а UI не показал диагностических логов. Issue #2325 ↗

Buzz · доставка

Managed Codex получал mention и генерировал ответ, но публикация сообщения падала с ошибкой relay/DNS. Это хороший пример: агент отработал, но получатель результата не увидел. Issue #3031 ↗

Buzz · ресурсы

В issue зафиксирован default parallelism 24: несколько Codex ACP-пулов создавали сотни idle-процессов, около 14 ГБ нагрузки и множество сессий в Recents. Issue #2631 ↗

Когда урок действительно пройден

Не после установки и не после красивого диалога. Соберите один небольшой совместный результат.

Второй агент реально вызванЕсть механизм, имя или ID и отдельный статус.
Результаты разделеныВиден самостоятельный вывод REVIEWER, а не пересказ MAIN.
Разногласия разрешеныMAIN указал, что принял, отклонил и изменил.
Артефакт проверенФайл, ссылка, diff или тест прочитан после сборки.

Источники и демонстрация