Comments 22
Расскажите, пожалуйста, подробнее о некоторых моментах:
На каких конкретно задачах вы проводили эксперимент?
Как именно агенты сами назначали себе роли или выбирали специализации? И как в вашем понимании соотносятся роль и специализация? Вот представим, что перед многоагентной системой читателей Хабра поставлена задача прокомментировать вашу статью. Нам конечно можно назначить роли рецензентов/комментаторов/советчиков/критиков/эксперт и т.д., но в моем представлении каждый придет со своим набором знаний и даст комментарий из которого и будет выведена специализация: но как назвать эту конкретную специализацию, есть ли у нее имя? Не окажемся ли мы просто комментаторами с разными специализациями (злой/добрый/компетентный/въедливый/специализирующийся на чем-то комментатор) В вашем случае как именуются и различаются между собой все 5006 специализаций? Не является ли роль просто более общим по отношению к специализации понятием?
Как агенты определяют, что им надо отказаться от какой-либо задачи?
Нет ли проблем с ростом контекста для каждого агента? В моем понимании в задачи координатора как раз входит недопущение неконтролируемого роста контекста.
Спасибо за вопросы — в точку!) По порядку:
1) Решали четыре уровня сложности задач. L1 — одна область, 3–5 шагов (например, разработка API). L2 — два домена, интеграция знаний (например, провести финансовый анализ + анализ рисков). L3 — 3+ домена, 10–20 шагов с зависимостями (например, разработать end-to-end ИТ-продукт с backend+frontend+обвзяка, на выходе выдать готовый продукт). L4 — состязательные: конфликтующие интересы стейкхолдеров, неполная информация, нет единственно верного ответа (CEO vs Legal vs CFO за бюджет), задачи на исследование / R&D. Задачи сгенерированы сильной LLM (Claude/GPT-5+) синтетически для контролируемого сравнения — это ограничение исследования, и мы его признаём. Сейчас тестируем на нескольких реальных бизнес-задачах.
2) Роли и специализации. Ваша аналогия с комментаторами Хабра — точная) Именно это и происходит. Агент получает в промпте задачу + результаты предшественников (в Sequential) и сам решает, как себя назвать и что делать. Никакого списка ролей ему не даётся. Пример реальных самоназванных ролей на одной L3-задаче: «Regulatory Compliance Architect», «Cross-System Integration Strategist», «Adversarial Risk Analyst». На другой задаче те же агенты назвали себя совершенно иначе. Является ли роль более общим понятием, чем специализация? В нашем эксперименте — нет, потому что агенты не выбирают из каталога. Они каждый раз изобретают функцию под конкретную задачу. 5 006 уникальных названий — это не таксономия, а 5 006 уникальных строк, сгенерированных агентами. 54% из них встречаются ровно один раз. Я бы даже сказала, что «ролей не существует, это функция момента. Агент просто решает задачу.» Это ближе к тому, как если бы каждый ваш комментатор не просто был «злым» или «добрым», а описал бы свою позицию как «человек, который 10 лет строил API-шлюзы и видит тут конкретную проблему с rate limiting» — и для следующей статьи описал бы себя совершенно иначе. Так что в нашем случае «роль» и «специализация» — это одно и то же: функция, которую агент создаёт под задачу и которая перестаёт существовать после её завершения.
3) Как агент решает отказаться? Это следствие промпта и, предположительно, способности модели к саморефлексии (self-reflection). Агент видит, что уже сделали предыдущие, и если не может добавить ценности — пишет отказ. Мы не программируем заранее ни порог, ни правило. Claude делает это в 8.6% случаев и попадает в оптимум. Слабые модели либо не отказываются вообще, либо отказываются слишком часто — и то, и другое снижает качество.
4) Рост контекста. Да, абсолютно так. В Sequential контекст растёт линейно: каждый следующий агент видит выходы всех предыдущих. При N=16 это управляемо, при N=256 — потенциальная проблема. На практике два механизма сдерживают рост: (1) самоотвод ~45% агентов при больших N сокращает объём контента, (2) выходы предшественников передаются в сжатом виде. Но вы правы — при O(N) это узкое место, и batched sequential (группы по K агентов параллельно) — следующий шаг. P.S. Спасибо за идею — сделаю в статье отдельный раздел про вызовы таких протоколов.
Architect», «Cross-System Integration Strategist», «Adversarial Risk Analyst».
Мне кажется, это вообще не предмет исследования, и уж тем более, не повод заключить, что агенты выбирают себе роли лучше, чем могли бы им назначить мы. Вы видели же, как клод описывает свои действия в процессе работы? У меня впечатление, что он порой просто несуществующие слова выдумывает. Например, как-то он у меня довольно долго висел с сообщением, извините, Ebbing.... Подозреваю, с этими именами ролей то же самое: он выдумывает на ходу красивое словосочетание, а уж насколько оно отражает суть деятельности – не столь важно для результата.
Я бы даже сказала, что «ролей не существует, это функция момента.
Именно. Поэтому вряд ли стоит делать какие-либо выводы из количества одномоментно выдуманных названий.
Лучше всего работает опенсоурс, а не мифические статьи в вакууме.
Недавно наткнулся на gstack - который сломал теорию как нужно писать промпты, там скиллы с чеклистами на пару томов. Работает идеально.
Статья прям от агента - проделано много работы, а толку.
Спасибо за комментарий! Кажется, мы про разное.
Статья не про промпты и не про то, как запускать одного агента. Она про координацию — как группа из 4–256 агентов решает задачу вместе, и какой протокол взаимодействия даёт лучший результат. 25 000 задач, 8 моделей, статистика — это как раз попытка выйти из вакуума и проверить гипотезы на данных.
Если у вас есть опыт координации нескольких агентов через gstack — было бы интересно сравнить подходы.
Так без системного промпта агент вообще ничего не сделает. Нет запроса - нет ответа. Прочитал статью, но так и не понял устройство эксперимента. Вообще не понял, для меня ценность этой статьи - нулевая.
Как ставится задача? Где находится ее постановка? В общем хранилище?
Через что взаимодействуют агенты? Как они видят процесс, действия других агентов?
Куда пишется результат?
Как устроен системный промпт агента, по которому он начинает действовать?
Какие задачи ставились (примеры)?
Для нулевой ценности — неплохой список вопросов :)) Отвечу по порядку.
Как ставится задача?
Задача приходит в промпте каждому агенту. В Sequential — вместе с результатами всех предыдущих агентов. В Coordinator — вместе с назначенной ролью от агента-координатора. В Shared — вместе с историей из общей памяти.Через что взаимодействуют агенты?
Между агентами стоит тонкий транспортный слой — Python-скрипт, который передаёт выходы между агентами по правилам протокола. Он не принимает никаких решений — не назначает роли, не фильтрует агентов, не выбирает порядок действий. Это просто "почтальон". Все содержательные решения (кем быть, участвовать ли, что делать) принимают сами агенты.Как агент видит действия других?
Зависит от протокола — в этом и суть эксперимента. Sequential: видит завершённые результаты предшественников. Broadcast: видит намерения всех. Shared: видит историю прошлых задач. Coordinator: видит только назначение от координатора. Сравнение этих вариантов — часть проведённой работы.Куда пишется результат?
Каждый агент возвращает структурированный JSON (выбранная роль, решение, обоснование). Результаты агрегируются, затем независимая модель-судья оценивает итоговое решение по 5 критериям. Некоторые промежуточные решения могут быть сохранены в БД.Системный промпт.
Содержит миссию, видение и долгосрочные цели организации, описание протокола (правила взаимодействия), формат ответа. Не содержит назначенной роли — агент выбирает специализацию сам, исходя из контекста. Возможно, в рамках продолжения исследования опубликую промпты вместе с кодом.Примеры задач.
L1: «Разработать безопасный API-эндпоинт: аутентификация, rate limiting, валидация входных данных». L2 — два домена, интеграция знаний (например, провести анализ - фин.анализ+анализ рисков). L3 — 3+ домена, 10–20 шагов с зависимостями (например - 1) разработать end-to-end ИТ-продукт - с backend, fontend), 2) Спланировать миграцию организации на zero-trust: архитектура сети → IAM → compliance для 3 регуляторов → бюджет и сроки»). L4 — состязательные: конфликтующие интересы стейкхолдеров, неполная информация, нет единственно верного ответа. Например: «CEO требует запуск за 6 недель, Legal настаивает на 6-месячной проверке compliance, CFO требует сократить бюджет на 30%. Найдите решение». Также задачи на исследование и R&D. Про ограничения и планы написала в ответе на комментарий выше.
Так без системного промпта агент вообще ничего не сделает
На самом деле не факт, разные подходы возможны. Если задача повторяющаяся или многоэтапная, требующая учёта многих факторов, то выгоднее однажды сделать скилл и потом весь промпт будет сводиться к /сделай-мне-хорошо. По-моему это как раз и есть самый правильный и перспективный подход: знание задачи исходит от человека в виде структурированного описания, а ИИ обеспечивает реализацию.
Опыт агентской разработки(ака vibecoding).
Сначала планирование пошаговое с сабтасками -> выполнение по сабтаскам с уже понятным задачами с dod -> qa стадия и review + second voice.
В общем, когда у агента есть своя специфика - на эту специфику можно повесить метрику и ее оптимизировать.
Я например переписал explore агента от claude и число откенов сократилось с 61к до 20к. (Как у вас агенты решали задачу без вызова специализированного разведчика - для меня загадка) 61к токен чтобы найти что и где нужно менять.
Но возвращаясь к оптимизации, можно autoresearch повесить на промпты агентам и через 25000 заданий вы получите систему которая умеет решать, задачи по workflow. Потому что каждый промпт был оптимизирован.
Пример с gstack - это по сути специализированное ревью по системного промпту...
Есть paperclip (?) Проект, там агенты подражают компании: создается агент СЕО который нанимает специализированных агентов, а метрика - потраченные токены.
У меня вызывает ещё вопросы эти 25000 задач. Число хорошее, но туда действительно десятки тысяч долларов было слиток на этот эксперимент? Или что там за модели были?
Много рассуждений как хорош Конвейер, но как вы это делали? Или это секрет?
Я правильно понимаю, что в Sequential в один момент времени работает один агент, и получается не важно сколько их 1 или 256? То есть, это итеративное выполнение задачи с обратной связью, даже более, с историей обратных связей?
Я правильно понимаю, что во всех остальных способах организации задачи решаются не итеративно и обратной связи никакой нет, там есть только планирование и дальнейшее выполнение за одну итерацию (есть сомнения про Shared)?
Офигенно, жду препринт.
А замеряли time-to-completion по протоколам? Sequential на 16 агентов - это 16 последовательных вызовов. +14% по качеству при кратном росте латентности в продакшене с SLA часто означает деградацию, а не улучшение. Интересно было бы увидеть кривую quality/latency, это сразу покажет, где какой протокол применим.
меня больше всего и смущает что была лишь одна модель судья с критериями. Надо было самим моделям дать оценивать свою работу и при этом не говорить кто что написал. Причем изначально без критериев дать оценить. Оценка очень сильно отличается у разных моделей.
А чем у вас отличаются агенты друг от друга? Судя по описанию, промпт у всех одинаковый, плюс история прошлых ответов или инструментов. Похоже на Ralph loop. Как решали, что задача выполнена? Вы принудительно запускали N итераций с одинаковым промтом, обновляя историю?
Правильно понимаю, что позволяли стохастике внимания фокусироваться на разном?
LLM-агент не ограничен… видит весь контекст… мгновенно меняет специализацию - неверно в корне.
Он видит суп из токенов в кэше. И то насколько качественно он преобразует его в что-то внятное - задача (почти) обычного теорвера.
Для меня это выглядит как “мы игнорируем ограничения системы и строим выводы поверх фантазии”
Не видит “весь контекст” - ограничен окном
Не “меняет специализацию” - просто меняет паттерн генерации
Не “понимает” задачу - оптимизирует вероятность токенов
“5 006 уникальных ролей” “самоорганизация” “агенты сами решают кем быть”
Это звучит красиво, но на деле это:
LLM просто генерирует разные строки текста
Не “роли”, а:
разные промпты разные формулировки разные шаблоны поведения
Это не эмердженс, это энтропия + семплинг.
Второй этап балета:
модель генерирует решение
другая модель оценивает
потом делается вывод “система лучше на 14%”
Это:
LLM оценивает LLM -> выводы про интеллект
С инженерной точки зрения это круговая ссылка. И квадратичное разрастание ошибки предсказания)
И секвеншл лучше не потому что магия. А потому что chain-of-thought + iterative refinement
“агенты сами отказываются” - это абсолютно спокойно может быть галлюцинировавшая self-awareness
“мы наблюдаем начало тренда, который изменит проектирование AI-организаций”
Когда по факту:
нет строгой формализации
нет контроля переменных
нет граундинга в архитектуре модели
нет воспроизводимости нет понимания механики трансформеров
Но уже:
громкие выводы уровня “меняем индустрию”
Модели это автокомплит, то есть они тренируются на корпусе текста, нарезанного на куски.
Например миллион токенов, нарезанный на куски по 1000
И ей надо по семплу из 1000 токенов сгенерировать X токенов продолжения, идеально попадая в изначальный корпус
Они не знают задачи “делегируй” \ "выбери" \ etc
Их не тренировали на этом =)
И это не про качество делегирования
А про качество самой концепции
Они не знают про слабости и сильные стороны той или иной модели, того или иного подхода.
Вопрос - “Почему X а не Y” и оно сыпется
Потому что не почему.
У нее нет ответа кроме как “статистически на основе шума из матриц” (шума, потому что там не было такой выборки)
То есть. Задача модели (любая) сводится к:
Сгенерируй статистически правдоподобное продолжение.... и всё =)
Почему оно статистически правдоподобное и почему она так решила - решает обучающая выборка и loss’ы
Модели = функции минимизации потерь и максимизации стат. вероятности. НЕ мозг. НЕ аналитик. НЕ размышление. Статистика, прикрученная к корпусу из слов. Быстрый эксель. Как угодно. Но далеко не сложная система.
Модели не обязаны обладать теми ментальными сущностями, которые им приписывает текст; наблюдаемое поведение можно объяснить как результат оптимизации генерации под данные, протокол и посттренинг, без введения сильных онтологических допущений про "самоорганизующегося субъекта".
(окей, академически точно - next-token predictor + post-training + policy shaping + instruction tuning + RL + tool interfaces)
Когда не знаешь хотя бы основы матстата - весь ML кажется магией.
Так что да, такими темпами, будущее точно поменяется. Не в лучшую сторону.
Потому что с набором из
0. отсутствия абляций нормальных
1. антропоморфизации автокомплита
2. раздувания терминов
3. псевдоорганизационной метафизики поверх next-token prediction
4. LLM-судья судит LLM-ответы
5. огромные выводы из слабой операционализации
(продолжать далее по списку)
Ничего хорошего не будет.
Вопросы можно в личку, если что.
В ИИ удивительно то, как совокупность слоёв трансформеров, механизма внимания, обширных дасетов дают по итогу модель способную очень даже сносно предсказывать токены, которые потом преобразуются в алгоритмы. Это не просто отличить котика от собачки или рекуррентным слоем предсказать следующие символы. Подход трансформера с слоями отвечающими за эмоциональный окрас позволяют даже придать нейросети с озвучкой женщины типично женские признаки. Да это все теже веса в перцептроне, но сам факт того, что из обычного предсказания слов, по сути прокачанного Т9, получается программа способная имитировать ИИ это уже само по себе удивительно. Ведь всё начиналось с попытки описать работу мозга человека и с уверенностью можно сказать что попытка очень даже не плохая. Не ИИ, но шаг в понимании как его достичь определенно значимый.
И пусть маркетологи пытаются выдать желаемое за действительное, я все же склонен верить что будущее будет хорошим, не у gpt как модели конкретно, а в целом будущее где есть полноценный ИИ
Интересная статья, спасибо Скажите вы пробовали с таким пайплацйном построить приложением уровня FB, TG, Inst или любого другого поп. приложения которое выдержит хотя бы 1000 активного онлайна и не будет иметь дыр в безопасности? Хотелось бы глянуть какой нибудь репозиторий, а то обычно статей много, но никто ничего не показывает, а сам я 2 раза пробовал Клауд и понял, что он слишком плох и поэтому все это выглядит как скам - пишет 80% нормального кода, но без оставшихся хотя бы 18% все это бесполезно
Привет, спасибо за статью! Можно ли как то получить ссылку на код, чтобы посмотреть на реализацию?
🔗 Sequential (конвейер): Агенты работают по очереди. Каждый видит, что конкретно сделали предыдущие, и сам решает — кем быть и стоит ли вообще участвовать.
Из статьи непонятно - зачем тогда нужна команда агентов. Если все агенты работают последовательно, т.е. только один агент активен в один момент времени, разве не должно хватать ровно одного агента? А роль он будет менять себе на лету.
И в продолжение мысли - разве ваша статья не доказывает, что агентская разработка, когда несколько агентов совместно разрабатывают ПО, проигрывает инкрементальному подходу, когда один агент последовательно пишет всё ПО? Что, в принципе, ставит под сомнение эффективность в использовании группы агентов.
Кстати, в статье опущен важный элемент - скорости разработки. Sequental может быть эффективнее других, но гораздо медленнее. Проводилась ли оценка по критерию: при каком из подходов будет быстрее достигнуто решение с уровнем качества 0.6, например? Потому что sequental, может быть, и даёт результат качественнее, но ждать его надо, допустим, в 10 раз дольше. Возможно, что самоотвод будет давать дополнительную прибавку к скорости - при одном подходе агенты решат, что "и так уже хорошо", а при другом будут "биться об стену в тщетных попытка".
Долой иерархию и роли: о том, как LLM-агенты самоорганизуются лучше, чем мы их проектируем (только на сильных моделях)