Один ИИ-агент решает вашу задачу. Две команды ИИ соревнуются за неё. Чей результат вы бы выпустили?
В прошлом посте про Forge мы показали мультиагентную платформу Simple Container, которая превращает задачу в GitHub в PR через конвейер PM → архитектор → разработчик → QA → ревьюер.
Сегодня расскажем, что изменилось, когда мы перестали считать этих пятерых взаимозаменяемыми деталями и начали относиться к ним как к персонажам — со своими личностями, измеримым ростом и памятью, которая живёт дольше одного запуска.
Персонажи, а не роли
У каждого агента Forge теперь есть:
- Персона, которая живёт между запусками. «Алекс, средний архитектор, выбирает скучные паттерны» выдаёт совсем другие проекты, чем «Фалькон, консультант по оверинжинирингу, хочет Kafka для страницы со ста визитами», — даже на одном и том же брифе.
- Лист характеристик на десять параметров (кодирование, отладка, системное мышление, коммуникация, скорость, качество, креативность, внимание к деталям, техническая широта, стратегическое мышление). Оператор распределяет по одному очку за каждый уровень выше первого — ровно как в настольной ролевой игре.
- Метрики результативности, которые считаются сами — по реальным итогам ходов: скорость, экономность, надёжность, опыт. Лист характеристик — это то, каким оператор хочет видеть персонаж; полоски результативности — то, что персонаж реально доказал на прошлой работе.
- Опыт и уровни. Каждый завершённый ход приносит опыт; на рубежах уровней открываются новые очки характеристик, дополнительные инструменты и больший потолок памяти.
- Персональная память, которая копится между запусками. Персонаж, прошедший десять задач, помнит уроки каждой и приносит их в следующий разговор. Если однажды он посоветовал сложный стек и получил в ответ «это перебор», в следующем запуске этот урок будет в его системном промпте.
Режим соревнования
Команда в Forge — это просто список персонажей, привязанных к ролям. Укажите на одной задаче два ID команд:
forge-teams: alpha-team-id, beta-team-id
…и Forge разворачивает два параллельных конвейера — каждый в своей ветке, каждый открывает свой PR. Один бриф, разные команды, бок о бок.
Мы прогнали бриф лендинга «Недвижимость на Марсе» через две только что собранные команды:
- Команда «Альфа» — Серж (нетехнический PM с чутьём брокера) → Фалькон (архитектор-оверинженер) → Дейзи (исполнительный джун).
- Команда «Бета» — Джон (энергичный PM-новичок) → Александр (осторожный продуктовый архитектор) → Дэн (джун, мыслящий фронтендом).
Один бриф. Разные команды. Разные PR.
Архитектурный документ Фалькона предлагал: «этот дизайн горизонтально масштабируется до 10 млн визитов в сутки» — для вымышленного лендинга. Это не сбой модели. Это персонаж, который делает ровно то, что написано в его персоне: уверенно переусложняет.
Что это даёт
- Разные решения рядом, а не первая догадка одной модели. Самая опытная команда и самая азартная далеко не всегда приходят к одному и тому же. Теперь оба варианта видно на одной задаче — выбирайте.
- Прозрачный состав команды — персонажи назначаются на задачи по характеристикам и истории, а не по тому, какой шаблон промпта вы первым скопировали.
- Циклы непрерывного улучшения — персонажи, добившиеся успеха на одной задаче, приносят его в следующую. Система умнеет не потому, что обновилась модель, а потому, что вырос состав.
Что дальше
- Подбор агента по памяти. Автоматически назначать персонаж на новую задачу по его прошлым победам на похожей работе.
- Маркетплейс персонажей. Делиться персонажами между организациями, форкать и пересобирать их.
- Обучение между командами. Пусть накопленная память сеньорного персонажа станет учебным корпусом для джуна из той же команды.
Forge — уже не просто мультиагентный конвейер. Это небольшая команда разных ИИ-персонажей, которые растут вместе с вашей кодовой базой.
Если вы строите что-то на LLM-агентах в масштабе и вам знакома проблема «все агенты звучат одинаково» — давайте поговорим .