Разбор · мультиагентные системы · сентябрь 2026

Мультиагентная система с нуля: 3 агента и проверка за вечер

Система из нескольких агентов это папка на диске: файлы ролей и порядок передачи работы между ними. Нужны программа Claude Code и платный аккаунт Claude, на бесплатном плане она не запускается. По отчёту Стэнфорда вакансий с навыком agentic AI за год стало 16 541 против 151, платят там за сборку такой связки

Самое короткое решение: открой окно для ввода команд (на Mac Терминал, на Windows Git Bash) и вставь блок ниже целиком, восемь строк

Начни с одной папки: заведи её и положи внутрь подпапку .claude/agents, дальше вся система это текстовые файлы. Первое, на что смотреть после каждого запуска, - появился ли новый файл на диске и что в нём. Файла нет или он не по твоим правилам - роль не позвалась, и это чинится, а не значит, что затея не работает

Собираем и запускаем отдел одним блоком

mkdir -p ~/moy-otdel/.claude/agents && cd ~/moy-otdel
echo '- agentic AI: 151 вакансия в 2024 году, 16 541 в 2025, рост +10 854 процента' > syrye.md
printf -- '---\nname: fakty\n---\nИз syrye.md выпиши в fakty.md только строки с числами, у каждой источник, внизу "ВСЕГО ФАКТОВ: N".\n' > .claude/agents/fakty.md
printf -- '---\nname: tekst\n---\nИз fakty.md напиши post.md: крючок с числом, три абзаца, вопрос в конце, числа только из fakty.md.\n' > .claude/agents/tekst.md
printf -- '---\nname: ocenka\n---\nСверь post.md с fakty.md, в ocenka.md пять критериев с ЗАЧТЕНО или НЕ ЗАЧТЕНО и цитатой, внизу "ИТОГ: зачтено N из 5".\n' > .claude/agents/ocenka.md
claude -p "Используй агента fakty: собери fakty.md" --permission-mode acceptEdits
claude -p "Используй агента tekst: напиши post.md" --permission-mode acceptEdits
claude -p "Используй агента ocenka: напиши ocenka.md" --permission-mode acceptEdits

Что увидишь: три отчёта подряд, по одному на сотрудника, в последнем строку «ИТОГ: зачтено 5 из 5». Что это даёт: в папке moy-otdel лежат четыре файла - сырьё, факты, готовый пост и разбор контролёра. У меня блок отработал за 341 секунду

Ответ command not found на строках с claude значит, что программы нет. На Mac, Linux и в WSL её ставит строка curl -fsSL https://claude.ai/install.sh | bash, на Windows строка irm https://claude.ai/install.ps1 | iex в окне PowerShell, а вставки статьи после этого идут в Git Bash, он ставится вместе с Git для Windows с сайта git-scm.com. WSL это Linux внутри Windows, ставится командой wsl --install в PowerShell. Проверка: claude --version, ответ вида 2.1.261 (Claude Code). При первом запуске программа попросит войти: набери claude, откроется браузер, входишь своим аккаунтом Claude, а обратно к обычным командам возвращает /exit. После этого повтори три последние строки блока

Папку с ролями глазами ты сразу не найдёшь: имя .claude начинается с точки, а такие папки ни Finder, ни проводник по умолчанию не показывают. В Finder скрытое открывает сочетание Cmd+Shift+точка. Руками там создавать нечего, вставка всё сделала сама

Кто эти трое. Сборщик читает сырьё и оставляет только строки с числами, каждую с пометкой, откуда она взята. Писатель собирает из этих строк пост и не имеет права на число, которого у сборщика нет. Контролёр сверяет пост с фактами по пяти критериям и пишет вердикт. Вся роль это шапка с именем и одна строка инструкции, её видно в файле и можно править под себя

Три файла ролей в папке agents: у каждого шапка с именем fakty, tekst или ocenka и одна строка инструкции
Весь отдел на диске. Три файла, у каждого имя в шапке и строка, которая описывает его работу

Сырьё в этой вставке моё, одной строкой. Свои заметки клади в тот же syrye.md: выписки из отчёта, расшифровку созвона, список фактов о продукте. Сборщик берёт оттуда только строки с числами, поэтому чем конкретнее заметки, тем больше он вытащит

Что внутри роли и чем она отличается от промпта

Разница у них одна и она про память: у роли свой чистый контекст, она не видит ни твоей переписки, ни работы соседних ролей. В прогоне это видно прямо: мой писатель не знал ни одного критерия контролёра, поэтому проверка вышла честной, а не подогнанной

Строка инструкции из вставки это минимум. Под свою задачу роль разворачивается в полноценный файл, и выглядит он так:

---
name: fakty
description: Сборщик фактов. Читает syrye.md и выписывает только проверяемые факты с числами
tools: Read, Write
model: sonnet
---
Ты сборщик фактов. Делаешь одно: читаешь файл syrye.md и переписываешь факты в файл fakty.md.
Правила:
- один факт = одна строка вида "- <факт с числом> [источник: <строка из syrye.md>]"
- берёшь только те строки, где есть число
- ничего не досочиняешь: нет числа в сырье - нет строки в fakty.md
- в конце файла пишешь строку "ВСЕГО ФАКТОВ: <число>"

Что увидишь: тот же файл fakty.md, но строже по форме, каждая строка с пометкой источника. Что это даёт: description объясняет модели, когда роль звать, tools режет ей руки до чтения и записи, а строки правил ловят те промахи, которые ты уже видел у себя

Связку таких ролей, где один передаёт работу другому, рынок называет оркестрацией. Слово это не выдумка блогеров: в разделе про рынок труда того же отчёта Стэнфорда так и написано, что растут вакансии с упоминанием агентных терминов и каркасов оркестрации вроде LangGraph. У LangGraph за год 194 вакансии превратились в 4 294

Теперь честно про числа из ролика. Отчёт правда на 425 страниц, я скачал файл и пересчитал страницы двумя разными инструментами. Рост «на десять тысяч процентов» тоже настоящий и даже больше: у навыка agentic AI это плюс 10 854 процента за год. А вот «вакансии по чат-ботам отпадают» стоит уточнить: падает их ДОЛЯ среди ИИ-вакансий (у conversational AI с 24,78 до 7,97 процента), в штуках они выросли вместе со всем рынком. Кто хочет разобраться в устройстве таких систем шире одной сборки, тому подробнее в разборе мультиагентных систем

Что звучит в роликеЧто у источникаГде это в отчёте
отчёт на 425 страницровно 425, пересчитано двумя инструментами по скачанному файлусам файл AI Index 2026
вакансии по агентам и оркестрации выросли на 10 тысяч процентовнавык agentic AI: 151 → 16 541, это +10 854%; LangGraph 194 → 4 294рисунок 4.4.7, страница 208
вакансии по чат-ботам отпадаютпадает доля, не штуки: conversational AI 24,78% → 7,97%, chatbot 10,57% → 5,25%рисунок 4.4.8, та же страница

Цепочка: кто кому передаёт и где проверка

Три последние строки блока это и есть цепочка, по одной команде на роль. Передача идёт через файлы: сборщик пишет fakty.md, писатель читает его и пишет post.md, контролёр читает оба и пишет ocenka.md. Посмотреть эстафету можно так:

ls -la fakty.md post.md ocenka.md

Что увидишь: три строки с размером и временем, у меня это 190, 1333 и 2408 байт, а время идёт по возрастанию, в порядке ролей. Что это даёт: сразу видно, на ком цепочка встала, если какого-то файла нет

Те же три строки можно запускать по одной, а не вставкой: тогда работу легко остановить посередине и прочитать промежуточный файл глазами, вместо того чтобы гадать, что происходит внутри одной большой просьбы

Точка проверки стоит третьей не случайно. Первые две роли делают работу, третья её судит, и судит по чужим правилам: контролёр видит только два файла и пять критериев, а не ход мыслей писателя. По времени файлов видно и распределение труда: сборщик управился первым, дольше всех сочинял писатель

Оценка работы агентов: что считать успехом и как мерить

Оценка у отдела записана пятью критериями в файле контролёра. Инструкция роли говорит только «пять критериев с цитатой», и контролёр взял их из задания писателя: крючок с числом, ровно три абзаца, вопрос в конце, числа только из fakty.md, числа без искажений. По каждому он печатает вердикт с цитатой из поста, внизу строку «ИТОГ: зачтено 5 из 5». Важна тут не сама пятёрка, а её граница: критерия, которого ты не записал, для контролёра не существует, и чем это кончается, видно в разделе про поломки

Критерий контролёраКак выглядит зачёт в ocenka.mdЧем перепроверить без агента
крючок с числомЗАЧТЕНО и цитата первой строки постаhead -1 post.md
ровно три абзацаЗАЧТЕНО с первыми словами каждого абзацаgrep -c . post.md минус крючок и вопрос
вопрос в концеЗАЧТЕНО с цитатой последней строкиtail -1 post.md
числа только из fakty.mdЗАЧТЕНО, перечислены все числа постаbash proverka.sh, строка «подтверждено фактами»
числа без искаженийЗАЧТЕНО, сверка по позициямта же проверка, строки «ЧИСЛА НЕТ В ФАКТАХ»
Файл ocenka.md на экране: пять критериев с пометкой ЗАЧТЕНО, у каждого цитата из поста, внизу строка итога
Отчёт контролёра. По каждому критерию вердикт и цитата-улика из поста, внизу строка «ИТОГ: зачтено 5 из 5»

Одному агенту-судье верить мало, поэтому рядом стоит машинная проверка. Заводится она той же вставкой:

cat > proverka.sh <<'EOF'
vsego=0; nashli=0
for n in $(grep -oE '[0-9][0-9 ]*[0-9]|[0-9]+' post.md | sed 's/ *$//' | sort -u); do
  vsego=$((vsego+1))
  if grep -qF "$n" fakty.md; then nashli=$((nashli+1)); else echo "ЧИСЛА НЕТ В ФАКТАХ: $n"; fi
done
echo "чисел в посте: $vsego, подтверждено фактами: $nashli"
echo "слов в посте: $(wc -w < post.md)"
EOF
bash proverka.sh

Что увидишь: две строки с числами, у меня вышло «чисел в посте 7, подтверждено фактами 7» и «слов в посте 132». Что это даёт: оценка перестаёт зависеть от настроения модели. Машина считает то, что считается, агент судит то, что считать нельзя

Мерить систему стоит одним числом за прогон: сколько критериев из пяти зачтено. Складывай его в журнал сразу после контролёра:

echo "$(date +%F) $(grep -o 'зачтено . из 5' ocenka.md)" >> zhurnal.txt
cat zhurnal.txt

Что увидишь: строку вида 2026-09-22 зачтено 5 из 5, а со временем столбик таких строк. Что это даёт: через неделю видно, какая правка ролей подняла результат, а какая его уронила, и спорить об этом уже не с чем

Что ломается

Главная поломка выглядит как успех. Я запустил ту же команду из другой папки, где ролей нет: Claude не сказал «агента не нашёл», а сделал работу сам и написал файл. Только это был другой файл: там, где роль позвалась, у каждой строки стоит пометка источника и внизу «ВСЕГО ФАКТОВ», а в чужой папке ни одной такой пометки

Два файла fakty.md рядом: слева строки с пометкой источника и итогом, справа тот же запрос без роли и без пометок
Слева роль позвалась, справа та же команда в папке без ролей. Файл есть в обоих случаях, правила роли соблюдены только слева
Что на экранеЧто это значитЧто сделать
файл появился, но правил роли в нём неткоманда запущена не из папки отделавернуться в свою папку и повторить, роли видны только внутри неё
«Мне нужно разрешение на запись файла», работа всталаподтверждение записи не выданоподтвердить в диалоге или добавить --permission-mode acceptEdits
в папке ролей появился файл, которого ты не писалпозвал роль, которой нет: модель сочинила её на ходу и сделала работу ейсверить ls .claude/agents со своим списком, лишнюю роль прочитать или переименовать
контролёр ставит «зачтено 5 из 5», а ошибка в тексте естькритерия на эту ошибку просто нетдописать шестой критерий и перезапустить контролёра
You've hit your session limitкончился лимит текущей сессиидождаться времени сброса, оно печатается в той же строке

Две строки таблицы я получил опытами, а не догадками. Позвал агента fakt вместо fakty: близкое имя модель подобрала сама, роль применилась, пометки источника в файле остались на месте. А когда позвал агента redaktor, которого в папке не было, ответа «такой роли нет» не пришло: в .claude/agents появился четвёртый файл redaktor.md с шапкой, которую придумала модель, и работу сделал он. Поэтому ls .claude/agents стоит время от времени сверять со своим списком

Отдельный случай это оценка, которая молчит. В одном из моих прогонов, где сырьём был кусок отчёта на три факта, писатель перенёс падение доли навыка как падение спроса, то есть сказал шире факта. Контролёр этого не заметил и поставил полный зачёт, потому что среди пяти критериев не было ни одного про точность формулировки. Так и работает оценка: она видит ровно то, что ты в неё записал

Что ещё почитать

Пришёл за профессией и зарплатами: тот разбор здесь, профессия промпт-инженер. Хочешь понять устройство систем из нескольких ролей целиком: мультиагентные системы простыми словами. Интересно, что умеют агенты внутри Claude: агенты Claude. Не хочешь писать роли сам, нужен готовый набор: 279 специалистов одной командой. Не уверен, что вообще отдавать роботу: какие задачи бизнеса реально отдать агенту. Нужна не команда ролей, а умения внутри одной головы: скиллы Claude

Источники

Адреса открыты живым запросом 21 сентября 2026 года; числа отчёта сняты с самого файла отчёта, а команды и тексты ошибок - с собственного прогона на своей машине

Памятка: отдел из трёх агентов одной страницей

Собрать такую же систему на втором компьютере, не перечитывая статью

Сохрани себе

  • проверить программу: claude --version, ответ вида 2.1.261 (Claude Code)
  • положить сырьё: файл syrye.md со своими заметками и числами
  • завести отдел одной вставкой: mkdir -p ~/moy-otdel/.claude/agents, дальше три строки printf -- > .claude/agents/<роль>.md
  • шапка роли: name без пробелов, tools по минимуму, обычно хватает Read и Write
  • запуск роли: claude -p "Используй агента <имя>: <задача>" --permission-mode acceptEdits
  • передача: каждая роль читает файл предыдущей и пишет свой, руками ничего не переносишь
  • оценка: пять критериев у контролёра плюс bash proverka.sh для чисел и длины
  • мера: число зачтённых критериев за прогон, строкой в zhurnal.txt после каждого запуска

Про следующий шаг

Система из трёх ролей бесполезна, пока ты не отдал ей свою настоящую работу

Дальше начинается работа, которую вставка не делает: превратить свою недельную рутину в три роли и дописать критерии под свои ошибки. Мой контролёр пропустил «спрос просел» вместо «доля просела» ровно потому, что критерия про точность формулировки у него не было, и шестой критерий я дописывал руками

Под свою задачу критерии придётся собирать так же: смотреть, где система соврала, и превращать каждую ошибку в строку проверки. Это не разовая настройка, а несколько кругов

На Лагере мы берём твою задачу, режем её на шаги и за три дня доводим до работающего результата. Приходишь со своей задачей, уходишь с собранной вещью

Забрать путёвку в ИИ-Лагерь

Заявка в закрытый канал, одобряю сразу. Бот напишет первым и отдаст три дня Лагеря. Бесплатно

Частые вопросы

Нужно ли уметь программировать?

Нет. Все три роли это текстовые файлы, а запуск это одна строка в окне ввода команд. Из непривычного там только формат шапки файла: три дефиса, поля name, description, tools, снова три дефиса, ниже обычный текст инструкции

Сколько ролей нужно в системе?

Начинай с трёх: кто собирает материал, кто делает работу, кто её проверяет. Этого хватает, чтобы у системы появилась точка проверки, и при этом легко понять, кто именно ошибся. Роли добавляют потом, когда видно, на каком шаге результат проседает

Как дописать шестой критерий под свою ошибку?

Открой файл ocenka.md в папке ролей и допиши строку в список: «6. в посте нет слов, которых нет в фактах по смыслу, например «спрос» вместо «доля»». Формулируй её от конкретного промаха, который система уже допустила, а не от общего пожелания: критерий вида «текст должен быть точным» контролёр применить не сможет. После правки роль запускают заново той же строкой

Что такое оркестрация простыми словами?

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

Можно ли собрать такое не в Claude Code?

Можно, идея одна и та же: роль описана текстом, передача идёт через файлы. Отличаться будет способ регистрации роли и команда запуска. Я проверял живьём только Claude Code, про каркасы вроде LangGraph или CrewAI знаю из отчёта и живьём их не ставил

Если дочитал до конца

Дальше я пишу в своём канале

Я работаю один, без команды и подрядчиков: всё собираю Claude, Claude Code и агентами. В канале показываю внутрянку: какие связки ролей прижились, где обещания из роликов расходятся с прогоном, что пришлось выкинуть через неделю. Разборов там заметно больше, чем доезжает до сайта

Заходи в мой канал

Это заявка на вход в мой закрытый канал, одобряю сразу. Бесплатно