Оркестрируйте множество подагентов с помощью динамических workflows
Dynamic workflows оркестрируют множество подагентов из скрипта, который пишет Claude, и вы можете его переиспользовать. Используйте их для аудитов кодовой базы, крупных миграций и перекрёстной проверки исследований.
Dynamic workflows доступны на всех платных планах, с доступом к Anthropic API, а также на Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry. На Pro включите их из строки Dynamic workflows в /config.
Dynamic workflow — это JavaScript-скрипт, который оркестрирует множество подагентов одновременно. Claude пишет скрипт для описанной вами задачи, а runtime выполняет его в фоне, пока ваша сессия остаётся отзывчивой.
Используйте workflow, когда задача требует больше агентов, чем может координировать одна беседа, или когда вы хотите, чтобы оркестрация была закодирована в скрипт, который вы можете прочитать и переиспользовать. Примеры включают сквозную проверку кодовой базы на ошибки, миграцию 500 файлов, исследовательский вопрос, который требует перекрёстной проверки источников друг против друга, и сложный план, стоящий того, чтобы его разработать с нескольких независимых углов перед тем, как вы примете решение.
Когда использовать workflow
Подагенты, skills, команды агентов и workflows могут все запустить многошаговую задачу. Разница в том, кто держит план:
| Подагенты | Skills | Команды агентов | Workflows | |
|---|---|---|---|---|
| Что это | Рабочий Claude, которого вы создаёте | Инструкции, которые следует Claude | Ведущий агент, контролирующий сеансы коллег | Скрипт, который выполняет runtime |
| Кто решает, что запустить дальше | Claude, ход за ходом | Claude, следуя подсказке | Ведущий агент, ход за ходом | Скрипт |
| Где живут промежуточные результаты | Контекстное окно Claude | Контекстное окно Claude | Общий список задач | Переменные скрипта |
| Что повторяемо | Определение рабочего | Инструкции | Определение команды | Сама оркестрация |
| Масштаб | Несколько делегированных задач за ход | То же, что подагенты | Несколько долгоживущих коллег | Десятки-сотни агентов за запуск |
| Прерывание | Перезапускает ход | Перезапускает ход | Товарищи по команде продолжают работать | Возобновляемо в той же сессии |
Workflow перемещает план в код. С подагентами, skills и командами агентов Claude является оркестратором: он решает ход за ходом, что создавать или назначать дальше, и каждый результат попадает в контекстное окно. Скрипт workflow держит цикл, ветвление и промежуточные результаты сам, поэтому контекст Claude содержит только финальный ответ.
Перемещение плана в код также позволяет workflow применить повторяемый паттерн качества, а не просто запустить больше агентов: он может иметь независимых агентов, которые противоречиво рецензируют выводы друг друга перед тем, как они будут доложены, или разработать план с нескольких углов и взвесить их друг против друга, чтобы вы получили более надёжный результат, чем один проход.
Запустить bundled workflow
Самый быстрый способ увидеть workflow в действии — запустить /deep-research, встроенный workflow, который Claude Code включает для исследования вопроса по множеству источников. Вы увидите, как агенты работают через набор фаз в фоне, пока ваша сессия остаётся свободной, и получите один отчёт в конце вместо пошагового транскрипта.
Запустить workflow
Запустите /deep-research с вопросом, который вы хотите исследовать. Он распределяет веб-поиски по нескольким углам, получает и перекрёстно проверяет найденные источники и синтезирует цитируемый отчёт.
/deep-research What changed in the Node.js permission model between v20 and v22?
Разрешить workflows
Claude Code спрашивает, разрешить ли workflow. Выберите Yes для продолжения. Точная подсказка зависит от вашего режима разрешений. Смотрите Одобрить план перед его запуском для опций для каждого режима.
Смотреть прогресс
Запуск начинается в фоне. Запустите /workflows, используйте клавиши со стрелками для выбора запуска и нажмите Enter для открытия его представления прогресса:
/workflows
Представление показывает каждую фазу с количеством агентов, общим количеством токенов и прошедшим временем. Углубитесь в любую фазу, чтобы увидеть её агентов и то, что каждый из них нашёл. Смотрите Смотреть запуск для полного набора элементов управления.
Вы также можете смотреть из панели задач ниже поля ввода: там появляется однострочное резюме прогресса во время выполнения запуска. Нажмите стрелку вниз для фокусировки, затем Enter для расширения.
Прочитать отчёт
Когда запуск завершится, отчёт попадает в вашу сессию. Он цитирует источники, из которых каждое утверждение пришло, с утверждениями, которые не пережили перекрёстную проверку, уже отфильтрованными.
Когда агенты-верификаторы не могут проверить утверждение, например после ограничения скорости или ошибки API, отчёт указывает это утверждение как непроверенное вместо того, чтобы считать его опровергнутым.
Чтобы запустить workflow для вашей собственной задачи, попросите Claude написать один, и как только запуск сделает то, что вы хотели, вы можете сохранить его как команду вашу собственную.
Bundled workflows
Claude Code включает /deep-research как встроенный workflow:
| Команда | Что она делает |
|---|---|
/deep-research <question> |
Распределяет веб-поиски по вопросу по нескольким углам, получает и перекрёстно проверяет найденные источники, голосует по каждому утверждению и возвращает цитируемый отчёт с утверждениями, которые не пережили перекрёстную проверку, отфильтрованными. Требует, чтобы инструмент WebSearch был доступен |
/deep-research запускается только при его вызове.
Workflows, которые вы сохраняете сами, становятся командами таким же образом и появляются в автодополнении / рядом с встроенными.
Смотреть запуск
Workflows работают в фоне, поэтому сессия остаётся отзывчивой, пока агенты работают. Запустите /workflows в любое время для списка работающих и завершённых workflows, затем выберите один для открытия его представления прогресса.
Представление прогресса показывает каждую фазу с количеством агентов, общим количеством токенов и прошедшим временем. Нижний колонтитул перечисляет ключ для каждого действия:
| Ключ | Действие |
|---|---|
↑ / ↓ |
Выбрать фазу или агента |
Enter или → |
Углубиться в выбранную фазу, затем в агента. В деталях нажмите Enter для расширения или сворачивания |
Esc или ← |
Вернуться на один уровень назад. В версиях v2.1.203 по v2.1.205 ← не позволял вернуться из фазы или агента; используйте Esc на этих версиях |
j / k |
Прокручивать в деталях агента, когда это переполняется |
f |
Фильтровать список агентов в выбранной фазе по статусу. Нажмите снова для циклирования |
p |
Приостановить или возобновить запуск |
x |
Остановить выбранного агента или остановить весь workflow, когда фокус находится на запуске |
r |
Перезапустить выбранного работающего агента |
s |
Сохранить скрипт запуска как команду |
Деталь агента перечисляет подсказку агента, его недавние вызовы инструментов и его результат. Каждый вызов показывает его состояние, например всё ещё выполняется или не удалось. Когда агент ведёт собственный список задач, деталь показывает его также, с статусом каждой задачи.
Нажмите Enter для расширения деталей. Подсказка и результат затем показываются полностью, и каждый перечисленный вызов показывает его входные данные и начало его результата.
Попросить Claude написать workflow
Вы можете попросить Claude написать workflow для вашей задачи двумя способами:
- Попросить workflow в вашей подсказке в ваших собственных словах или включив ключевое слово
ultracode, и Claude напишет один для задачи. - Позволить Claude решить с ultracode: установите
/effort ultracodeи Claude спланирует workflow для каждой существенной задачи в сессии.
Вы также можете запустить команду workflow, которая уже существует: bundled workflow как /deep-research, или один, который вы сохранили.
Попросить workflow в вашей подсказке
Чтобы запустить одну задачу как workflow без изменения уровня усилий сессии, включите ключевое слово ultracode в вашу подсказку. Просьба в ваших собственных словах, например "использовать workflow" или "запустить workflow", также работает: Claude рассматривает прямой запрос как то же самое согласие.
ultracode: audit every API endpoint under src/routes/ for missing auth checks
Claude Code выделяет ключевое слово в вашем вводе и Claude пишет скрипт workflow для задачи вместо того, чтобы работать через него ход за ходом. Ключевое слово только выбирает, как Claude структурирует работу: вызовы инструментов агентов получают те же проверки разрешений и sandboxing, что и любой другой вызов инструмента в сессии.
Если запуск делает то, что вы хотели, вы можете сохранить его как команду после этого. Если у вас уже есть оркестратор, построенный другим способом, например папка подсказок подагентов или навык, который распределяет работу, вы можете указать Claude на него и попросить workflow, который делает то же самое.
Отменить или отключить ключевое слово
Если вы не имели в виду запустить workflow, нажмите Option+W на macOS или Alt+W на Windows и Linux, чтобы отменить выделение для этой подсказки, или нажмите backspace, пока курсор находится прямо после выделенного ключевого слова. Чтобы остановить ключевое слово от срабатывания вообще, отключите Ultracode keyword trigger в /config.
Где работает ключевое слово
Ключевое слово — это согласие только в подсказке, которую вы вводите сами: в интерактивной подсказке, в панели расширения IDE, в клиенте Remote Control или в приложении Agent SDK, которое помечает origin вашего ввода с клавиатуры как { kind: "human" }. Это не запускает workflow, когда он достигает сессию другим способом:
- подсказка, переданная с
-p - подсказка, которую приложение Agent SDK отправляет без пометки её как ввода человека
- подсказка запланированной задачи
- полезная нагрузка webhook или комментарий pull request, переданные в разговор
До версии 2.1.210 ключевое слово запускало workflow из любого из этих маршрутов, включая полезную нагрузку webhook или комментарий pull request, переданные в разговор.
Позволить Claude решить с ultracode
Ultracode — это параметр Claude Code, который объединяет xhigh усилие рассуждения с автоматической оркестрацией workflow. С ним включённым, Claude планирует workflow для каждой существенной задачи вместо того, чтобы ждать, пока вы попросите.
/effort ultracode
Чтобы начать сессию с уже включённым ultracode, запустите с claude --effort ultracode. Требуется Claude Code версии 2.1.203 или позже.
Чтобы включить его, пока вы выбираете модель, переместите ползунок усилий средства выбора /model на ultracode с помощью клавиш со стрелками. Adjust effort level перечисляет маршруты, которые включают ultracode.
С ultracode включённым, Claude решает, когда задача требует workflow. Один запрос может превратиться в несколько workflows подряд: один для понимания кода, один для внесения изменения и один для его проверки. Это применяется к каждой задаче в сессии, поэтому каждый запрос использует больше токенов и занимает больше времени, чем на более низких уровнях усилий.
/effort ultracode длится для текущей сессии; чтобы каждая сессия начиналась с ним, установите параметр ultracode. Вернитесь с /effort high, когда вы вернётесь к рутинной работе. Меню /effort предлагает это только когда ultracode доступен.
Одобрить план перед его запуском
В CLI подсказка для каждого запуска показывает запланированные фазы и эти опции:
- Yes, run it: начать запуск
- Yes, and don't ask again for
<name>in<path>: начать и пропустить эту подсказку для этого workflow в этом проекте с этого момента. Claude Code предлагает эту опцию, когда вы запускаете bundled, сохранённый или plugin workflow по имени, а не для скрипта, который Claude написал для текущей задачи. - View raw script: прочитать скрипт перед решением
- No: отменить
Ctrl+G открывает скрипт в вашем редакторе. Tab позволяет вам отрегулировать подсказку перед запуском.
Видите ли вы эту подсказку, зависит от вашего режима разрешений:
| Режим разрешений | Когда вас спрашивают |
|---|---|
| Auto | Только первый запуск. Любой Yes записывает согласие в ваши пользовательские параметры, и более поздние запуски начинаются без подсказки. Полностью пропущено, когда ultracode включён |
| Manual, accept edits | Каждый запуск, если вы не выбрали Yes, and don't ask again для этого workflow в этом проекте |
| Bypass permissions | Claude Code не спрашивает вас. Запуск начинается немедленно |
claude -p, Agent SDK |
Claude Code не спрашивает вас |
В claude -p и Agent SDK Claude Code никогда не показывает эту подсказку. Он запускает вызов инструмента Workflow через ту же оценку разрешений, что и остальная часть сессии, поэтому правила отказа, правила запроса и режим dontAsk применяются к запуску, как они применяются к каждому вызову инструмента. Чтобы позволить workflow начать в этих запусках, используйте один из этих:
- Правило разрешений:
Workflowв ваших правилах разрешения одобряет каждый workflow, иWorkflow(<name>)одобряет один сохранённый workflow по имени. - Режим автоматического разрешения: classifier проверяет вызов и может его одобрить.
- Режим обхода разрешений: Claude Code одобряет вызов.
- Hook
PreToolUse: hook, который возвращаетallowдля вызова, одобряет его. - Ваш хост:
--permission-prompt-toolодобряет его, или, с Agent SDK, callbackcanUseToolили hookPermissionRequestодобряет его.
В приложении Desktop карточка одобрения показывает имя workflow, список фаз и предупреждение об использовании токенов, с действиями Once, Always и Deny. Представление прогресса появляется в боковой панели Background tasks.
Подагенты, которые создаёт workflow, используют ваши правила разрешений, и Claude Code выбирает их режим разрешений по правилам под в каком режиме разрешений работает подагент. Чтобы избежать подсказок на длительном запуске, добавьте инструменты, которые нужны агентам, в ваши правила разрешения перед запуском.
Сохранить workflow для переиспользования
Когда Claude пишет workflow для задачи, которую вы будете повторять, вы можете сохранить скрипт этого запуска как команду. Процесс, как проверка, которую вы запускаете на каждой ветке, затем запускает ту же оркестрацию каждый раз.
Запустите /workflows, выберите запуск, который вы хотите сохранить, и нажмите s. В диалоге сохранения Tab переключается между двумя местами сохранения:
.claude/workflows/в вашем проекте: общее с каждым, кто клонирует репо~/.claude/workflows/в вашем домашнем каталоге: доступно в каждом проекте, видимо только вам. Если вы установилиCLAUDE_CONFIG_DIR, это местоположение — это каталогworkflows/под этим путём.
Диалог сохранения показывает разрешённый путь для личного местоположения.
Нажмите Enter для сохранения. Workflow запускается как /<name> в будущих сессиях из любого местоположения.
Claude Code проверяет местоположение сохранения на наличие символических ссылок перед записью и показывает ошибку вместо записи через одну. То, что он проверяет, зависит от того, где вы сохраняете:
- Местоположение проекта: Claude Code отказывает, если
.claude,.claude/workflowsили целевой файл является символической ссылкой. - Личное местоположение: Claude Code отказывает только если сам целевой файл является символической ссылкой, поэтому каталог
~/.claude, управляемый инструментом dotfiles, всё ещё работает.
До версии 2.1.216 Claude Code следовал ссылке, что могло поместить файл вне выбранного вами местоположения.
В монорепо с несколькими каталогами .claude/ вы можете хранить workflows рядом с пакетом, к которому они применяются. Начиная с версии 2.1.178, сохранение в местоположение проекта записывает в ближайший каталог .claude/workflows/, который уже существует между вашей рабочей директорией и корнем репозитория, или в корень репозитория, если ни один ещё не существует. Workflows проекта также загружаются из каждого .claude/workflows/ вдоль этого пути, и когда более одного определяет одно имя, Claude Code запускает тот, который ближе всего к рабочей директории.
Если project workflow и personal workflow имеют одно имя, запускается project.
Распределить workflow в plugin
Чтобы поделиться workflow между командами или репозиториями, включите его в plugin. Поместите скрипт в каталог workflows/ в корне plugin или укажите другое местоположение с помощью поля манифеста workflows.
Plugin workflows имеют пространство имён по имени plugin. Plugin под названием acme-tools, содержащий скрипт, чьё meta.name — это release-audit, запускается как /acme-tools:release-audit.
Передать входные данные в сохранённый workflow
Сохранённый workflow может принимать входные данные через параметр args. Скрипт читает его как глобальную переменную с именем args. Используйте это для предоставления исследовательского вопроса, списка целевых путей или объекта конфигурации во время вызова вместо редактирования скрипта для каждого запуска.
Следующая подсказка запускает сохранённый workflow со списком номеров проблем:
Run /triage-issues on issues 1024, 1025, and 1030
Claude передаёт список как структурированные данные, поэтому скрипт может вызывать методы массива и объекта на args напрямую без предварительного анализа. Если args опущен, глобальная переменная имеет значение undefined внутри скрипта.
Примеры подсказок workflow
Workflow подходит лучше всего, когда задача больше, чем один агент может держать в контексте, или когда один и тот же шаг нужно запустить по множеству элементов. Подсказки ниже показывают общие формы. Каждая просит Claude написать и запустить workflow для этой задачи; вы не пишете скрипт сами.
Аудит множества файлов на одну и ту же проблему
Распределите одного агента на файл, затем соберите и проверьте выводы.
use a workflow to audit every route handler under src/routes/ for missing authentication checks, and adversarially verify each finding before reporting it
Продолжайте исправлять, пока проверка не пройдёт
Запустите проверку, исправьте то, что не прошло, и повторяйте, пока это не пройдёт или не перестанет делать прогресс.
use a workflow to run npx tsc --noEmit and keep fixing the reported errors until the type check passes or two rounds in a row make no progress
Мигрировать множество файлов параллельно
Обнаружьте файлы для миграции, преобразуйте каждый в изолированную копию, чтобы редактирования не конфликтовали, и проверьте каждый результат.
use a workflow to migrate every component under src/components/ from JavaScript to TypeScript, working on each file in its own isolated copy
Проверить каждый изменённый файл и написать одно резюме
Запустите рецензента на файл, затем передайте все выводы одному агенту, который ранжирует и дедублирует их.
use a workflow to review every file changed in this PR for correctness issues, then merge the per-file findings into one ranked summary
Исследовать тему по множеству источников
Распределите читателей по changelogs, issues и docs, затем синтезируйте. Встроенный workflow /deep-research делает это; вы также можете описать более узкую версию.
use a workflow to research how our three competitors handle rate limiting: read their public docs and recent changelog entries in parallel, then compare the approaches
Найти проблемы, пока список не перестанет расти
Продолжайте искать в раундах и остановитесь, когда новые раунды не найдут ничего нового.
use a workflow to find flaky tests in this repo: run the suite repeatedly, record which tests fail intermittently, and stop once two rounds in a row find nothing new
Как выглядит сохранённый скрипт
Когда вы сохраняете workflow, файл в .claude/workflows/ содержит блок meta, за которым следует тело скрипта, который оркестрирует подагентов. Обычно вам не нужно его редактировать, но вот форма маленького, чтобы вы могли узнать, что Claude сгенерировал:
export const meta = {
name: 'audit-routes',
description: 'Audit every route handler for missing auth checks',
}
const found = await agent('List every .ts file under src/routes/.', {
schema: { type: 'object', required: ['files'], properties: { files: { type: 'array', items: { type: 'string' } } } },
})
const audits = await pipeline(found.files, file =>
agent(`Audit ${file} for missing authentication checks.`, { label: file }),
)
return audits.filter(Boolean)
Тело — это простой JavaScript с top-level await. agent() создаёт один подагент, pipeline() запускает один на элемент в списке, а parallel() запускает набор задач агента одновременно и ждёт завершения всех из них.
Вызов agent() разрешается в null, если вы остановите его во время выполнения или он столкнётся с неустранимой ошибкой API. В режиме auto классификатор может заблокировать вызов agent() перед запуском подагента. Заблокированный вызов разрешается в null и отображается в представлении прогресса запуска с причиной. pipeline() сохраняет каждый null в массиве результатов, поэтому пример заканчивается на .filter(Boolean), чтобы удалить эти записи.
Если вы передаёте schema при вызове agent(), этот подагент возвращает JSON, соответствующий форме, вместо прозы. Claude Code проверяет схему перед запуском подагента: когда он может доказать, что схема противоречит сама себе, вызов завершается с ошибкой, называющей противоречие, и подагент никогда не запускается. Одно противоречие, которое он может доказать, — это ключ required, который additionalProperties: false исключает.
Если выход подагента всё ещё не проходит валидацию после пяти попыток, вызов завершается с ошибкой, которая включает последний отказ валидации. Чтобы изменить количество попыток, установите MAX_STRUCTURED_OUTPUT_RETRIES.
Отредактировать сохранённый скрипт
Чтобы изменить workflow, который вы сохранили, отредактируйте его файл .js или попросите Claude внести изменение. Перед редактированием или запросом запустите встроенный skill /workflow-authoring bundled skill, чтобы загрузить справочник по написанию скриптов, из которого работает Claude. Skill требует Claude Code v2.1.248 или позже.
Чтобы запустить отредактированную версию в текущем сеансе, запустите /reload-skills, чтобы перечитать директории workflow, затем снова запустите /<name>.
Claude Code применяет эти правила к каждой части файла при загрузке и запуске скрипта:
- Блок
meta: сохраняйтеexport const metaкак первый оператор и сохраняйте его простым объектным литералом сnameиdescription. Если он содержит что-либо, кроме литеральных значений, такое как переменная, вызов функции или spread, Claude Code удаляет/<name>из автодополнения/. - Тело: помимо
agent(),pipeline()иparallel(), вы можете вызватьphase(), чтобы сгруппировать следующих агентов под заголовком в представлении прогресса, вызватьlog(), чтобы показать сообщение над фазами, и прочитать глобальныйargs. Если тело имеет синтаксическую ошибку, Claude Code сообщит об этом при запуске workflow. phases: если вы перечислите их вmeta, дайте каждой записи ровно заголовок, который вы передаёте вphase(). Заголовокphase()без записи получает свою собственную группу прогресса.- Временные метки и случайность: Claude Code заставляет
Date.now(),Math.random()иnew Date()без аргументов выбрасывать исключение внутри скрипта, чтобы перезапущенный запуск повторял те же вызовыagent(). Вместо этого передайте временную метку черезargs.
Вы также можете отредактировать скрипт одного запуска вместо сохранённой копии. Возобновление после паузы охватывает, какие агенты запускаются снова при перезапуске отредактированного скрипта. Для входов инструмента Workflow смотрите его запись в справочнике Agent SDK.
Как выполняется workflow
Среда выполнения workflow выполняет скрипт в изолированной среде, отдельно от вашего разговора. Промежуточные результаты остаются в переменных скрипта вместо того, чтобы попадать в контекст Claude.
Каждый запуск записывает свой скрипт в файл в каталоге вашей сессии в ~/.claude/projects/. Claude получает путь при запуске, поэтому вы можете попросить его. Вы можете открыть этот файл, чтобы прочитать оркестровку, которую написал Claude, сравнить его со скриптом предыдущего запуска или отредактировать его и попросить Claude перезапустить с отредактированной версией.
Claude может запустить workflow только из файла скрипта, который сессия уже имеет право читать. Чтобы запустить скрипт, находящийся вне вашего рабочего каталога, сначала добавьте его каталог с помощью /add-dir или правила Read.
Среда выполнения отслеживает результат каждого агента по мере выполнения запуска, что делает запуск возобновляемым в рамках одной сессии.
Prompt caching в fan-out
Агенты в одном запуске могут читать prompt cache друг друга. Два агента, которые работают с одной и той же моделью, уровнем усилий, типом агента, инструментами, схемой вывода и рабочим каталогом, создают один и тот же префикс инструментов и системного приглашения, поэтому агент, который запускается после того, как ответ соответствующего соседнего агента начал обрабатываться, читает кэш этого соседнего агента при первом запросе.
Запросы агента workflow выходят за пределы TTL bucket кэша основного разговора, поэтому его кэш сохраняется в течение пяти минут по умолчанию, включая подписку Claude. Чтобы сохранить его на час, установите subagentPromptCacheTtl на 1h. API выставляет счета за записи кэша на 1 час по более высокому тарифу.
Когда fan-out запускает несколько соответствующих агентов одновременно, Claude Code удерживает всех, кроме первого, до тех пор, пока ответ первого агента не начнет обрабатываться, затем отпускает удерживаемых агентов вместе, чтобы их первые запросы читали общий префикс вместо того, чтобы каждый обрабатывал его без кэша. Claude Code ограничивает удержание CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS миллисекундами, 5000 по умолчанию. Установите его на 0, чтобы отключить удержание.
Поведение и ограничения
Среда выполнения применяет следующие ограничения:
| Ограничение | Причина |
|---|---|
| Нет ввода пользователя во время выполнения | Запуск приостанавливается самостоятельно только для запросов разрешения агента и ожидания лимита использования. Для утверждения между этапами запустите каждый этап как отдельный workflow |
| Нет прямого доступа к файловой системе или shell из самого workflow | Агенты читают, записывают и выполняют команды. Скрипт координирует агентов |
Нет загрузки модулей: скрипт, содержащий import(), не запускается до начала выполнения |
Тело скрипта — это простой JavaScript. Поместите работу, которая требует библиотеки, в задачу агента |
| До 16 одновременных агентов, меньше, когда Claude Code имеет меньше доступных процессоров, включая внутри контейнера с ограничением процессора | Ограничивает локальное использование ресурсов |
| В fan-out агенты, которые совместно используют префикс prompt-cache первого агента, запускаются до 5 секунд после него по умолчанию | Все, кроме первого, читают префикс, который кэшировал первый агент вместо того, чтобы каждый обрабатывал его без кэша |
До 4096 элементов в одном вызове parallel() или pipeline(): среда выполнения отклоняет более длинный список с ошибкой |
Молчаливое ограничение могло бы отбросить часть рабочей нагрузки без уведомления скрипта |
| 1000 агентов всего за запуск | Предотвращает бесконечные циклы |
Управление запусками
Как только запуск начинается, вы управляете им из представления /workflows, или расширяя его строку прогресса в панели задач ниже поля ввода.
Когда вы останавливаете запуск, он остаётся в панели задач, пока процессы любого из его агентов всё ещё работают. Если вы остановите его снова, Claude Code повторно отправляет сигналы этим процессам.
Возобновить после паузы
Возобновите приостановленный запуск из /workflows, выбрав его и нажав p. Для запуска, который вы остановили, попросите Claude перезапустить workflow с тем же скриптом. Если агенты из остановленного запуска ещё не завершились, Claude Code отказывает в перезапуске до тех пор, пока они не завершатся, чтобы вторая копия этих агентов не могла работать рядом с ними.
Claude Code воспроизводит запуск в порядке запуска агентов, и каждый агент либо возвращает свой сохранённый результат, либо работает снова:
- Завершено: возвращает свой сохранённый результат. Первый агент, чей запрос отличается от предыдущего запуска, потому что вы отредактировали скрипт или более ранний агент вернул что-то другое, работает снова, и так же поступает каждый агент после него, даже те, которые завершились.
- Всё ещё работал, когда вы остановили: начинает заново. Остановка всего запуска не считает ни одного агента неудачным.
- Не удалось: работает снова, и так же поступает каждый агент, который запустился после него, даже те, которые завершились. Остановка одного агента отдельно, выбрав его в
/workflowsи нажавx, считается неудачей.
Последний случай означает, что сбой в середине fan-out повторно запускает работу, которая уже завершилась. Если скрипт запускает A, B, C и D в этом порядке и B не удаётся, перезапуск возвращает A из кэша и снова запускает B, C и D.
Вы можете возобновить запуск в той же сессии Claude Code. То, что происходит с работающим workflow, когда вы покидаете сессию, зависит от того, как вы выходите:
- Если вы переводите сессию в фоновый режим, Claude Code воспроизводит запуск таким же образом в фоновой сессии и продолжает его.
- Если вы выходите из Claude Code, пока workflow работает, и представление агента включено, диалог выхода предлагает
Move to background and exit, который переносит запуск таким же образом. Если вы вместо этого выберетеExit and stop tasks, или опция не предлагается, запуск останавливается с сессией. Claude Code сохраняет сохранённые результаты запуска в каталоге этой сессии в~/.claude/projects/, поэтому сессия, которую вы возобновляете с помощьюclaude --resume, может воспроизвести их, когда вы попросите Claude перезапустить workflow. В сессии, которую вы запускаете заново, Claude не имеет более ранних запусков для перезапуска и запускает workflow заново как новый запуск.
В облачной сессии Claude Code также сохраняет результаты запуска с историей беседы сессии, которая сохраняется, когда виртуальная машина сессии освобождается. Когда вы повторно открываете такую сессию и просите Claude перезапустить workflow, завершённые агенты по-прежнему возвращают свои сохранённые результаты.
В локальных и облачных сессиях одинаково, когда Claude перезапускает более ранний запуск и Claude Code вообще не может найти сохранённые результаты этого запуска, перезапуск не удаётся с ошибкой nothing to resume вместо самостоятельного запуска запуска. Попросите Claude запустить workflow заново как новый запуск.
Когда запуск достигает вашего лимита использования
Когда агент достигает вашего лимита использования usage limit на claude.ai, запуск приостанавливается, а не отказывает этому агенту: агенты, которые достигли лимита, ждут сброса, и новые агенты не запускаются. Вскоре после сброса лимита ожидающие агенты работают снова и запуск продолжается самостоятельно. Требуется Claude Code v2.1.271 или позже; в более ранних версиях затронутые агенты отказывают.
Пока запуск ждёт, его строка прогресса в панели задач и заголовок /workflows показывают, когда лимит сбросится.
Запуск приостанавливается только когда все эти условия выполняются; когда одно из них не выполняется, затронутый агент отказывает вместо этого:
- Сессия интерактивна и вы вошли с подпиской claude.ai. Запуск не приостанавливается в неинтерактивном режиме с
claude -pили в Agent SDK, в фоновой сессии, или в сессии товарища по команде Remote Control или agent team. autoContinueAtUsageLimitвключена, тот же параметр, который позволяет самой сессии ждать сброса лимита использования. Если вы отключите его во время ожидания, ожидание заканчивается и ожидающие агенты отказывают.- Лимит сбросится в течение 24 часов. Еженедельный лимит может сбросится позже.
- Запуск ещё не ждал дважды. Когда он достигает лимита в третий раз, агент отказывает.
Стоимость
Workflow создаёт множество агентов, поэтому один запуск может использовать значительно больше токенов, чем работа через ту же задачу в беседе. Запуски считаются в сторону использования вашего плана и ограничений скорости.
Чтобы оценить расходы перед выполнением крупной задачи, сначала запустите workflow на небольшом срезе: один каталог вместо всего репозитория или узкий вопрос вместо широкого. Представление /workflows показывает использование токенов каждым агентом по мере выполнения запуска, и вы можете остановить запуск там в любое время, обычно без потери завершённой работы. Возобновить после паузы охватывает то, что сохраняет остановленный запуск. Ограничения агентов среды выполнения ограничивают количество агентов, которых может создать один запуск, что ограничивает стоимость неконтролируемого скрипта. Чтобы сохранить запуски с меньшим количеством агентов, выберите рекомендацию по размеру small size guideline.
Claude Code также отмечает запуск, который растёт необычно быстро. Когда workflow планирует более 25 агентов, или его прогнозируемый общий объём токенов превышает 1,5 миллиона, его строка прогресса в панели задач ниже поля ввода показывает предупреждение Large workflow. Предупреждение указывает вам на /workflows, где вы можете остановить запуск.
Предупреждение носит рекомендательный характер: оно не приостанавливает и не ограничивает запуск. Два параметра изменяются, когда вы его видите:
- Если вы выберете рекомендацию по размеру самостоятельно, количество агентов рекомендации заменяет порог в 25 агентов. Встроенная рекомендация по умолчанию оставляет порог на уровне 25.
- Сессии с включённым ultracode не показывают предупреждение, потому что включение ultracode уже означает согласие на крупные запуски.
Claude Code выбирает модель каждого агента workflow в том же порядке, который он использует для подагентов. Модель, которую скрипт называет для этапа, считается моделью для каждого вызова в этом порядке. Когда ничто другое не назначает её, агент работает на модели вашей сессии.
Чтобы контролировать стоимость модели:
- Проверьте
/modelперед крупным запуском, если вы обычно переключаетесь на меньшую модель для рутинной работы - Попросите Claude использовать меньшую модель для этапов, которые не требуют самой сильной, когда вы описываете задачу
Когда список разрешённых моделей availableModels вашей организации блокирует модель, которую скрипт запрашивает для агента, этот агент работает на замещённой модели вместо этого, следуя тем же правилам замещения, что и подагенты. Представление прогресса запуска в /workflows показывает предупреждение, называющее как запрошенную, так и замещённую модели.
Установить рекомендацию по размеру
Рекомендация по размеру говорит Claude, на сколько агентов нужно нацеливаться при написании динамического workflow. Claude Code отправляет рекомендацию Claude в качестве совета, а не ограничения, поэтому подсказка, которая требует другого масштаба, по-прежнему переопределяет её. Требуется Claude Code v2.1.202 или позже.
Каждое значение соответствует количеству агентов:
| Значение | Количество агентов, на которое Claude нацеливается |
|---|---|
unrestricted |
Нет рекомендации: Claude определяет размер workflow в соответствии с задачей |
small |
Менее 5 агентов |
medium |
Менее 10 агентов |
large |
Менее 50 агентов |
По умолчанию используется medium, или small когда вы вошли в Pro план с Claude Code v2.1.271 или позже. До тех пор, пока вы не выберете значение, строка /config показывает значение как значение по умолчанию, и строка Running in background workflow показывает размер в силе. Требуется Claude Code v2.1.219 или позже; более ранние версии по умолчанию используют unrestricted.
Чтобы изменить рекомендацию, выберите значение для параметра Dynamic workflow size в /config, или запустите /config workflowSizeGuideline=small. На v2.1.219 и позже вы также можете установить ключ workflowSizeGuideline в любом файле параметров; это значение имеет приоритет над /config, и Claude Code скрывает строку /config, пока файл параметров предоставляет один.
Изменения вступают в силу при следующем запросе. Ограничения агентов среды выполнения по-прежнему применяются независимо от параметра.
Отключить workflows
Workflows доступны в CLI, приложении Desktop, расширениях IDE, неинтерактивном режиме с claude -p и Agent SDK. Те же параметры отключения применяются на каждой поверхности.
Чтобы отключить workflows для себя:
- Переключите Dynamic workflows в
/config. Сохраняется между сессиями. - Установите
"disableWorkflows": trueв~/.claude/settings.json. Сохраняется между сессиями. - Установите
CLAUDE_CODE_DISABLE_WORKFLOWS=1. Читается при запуске, поэтому применяется везде, где вы это установите.
Чтобы отключить workflows для всей вашей организации, установите "disableWorkflows": true в управляемые параметры, или используйте переключатель на странице параметров администратора Claude Code.
Когда workflows отключены, встроенные команды workflow и skill /workflow-authoring недоступны, ключевое слово ultracode больше не запускает запуск, и ultracode удаляется из меню /effort.
Связанные ресурсы
- Запустить агентов параллельно: сравнить подагентов, представление агента, команды агентов и workflows
- Создать пользовательские подагенты: примитив рабочего, который оркестрируют workflows
- Управлять затратами: как многоагентные запуски считаются в сторону ограничений использования