# Workflows: сценарий для многих агентов

Курс: Claude Code: уровень профи — https://zero2claude.ru/learn/claude-code-pro
Канонический URL: https://zero2claude.ru/learn/claude-code-pro/4-3-workflows-scenarii-dlya-agentov

Dynamic workflow — скрипт на JavaScript, который Claude пишет под задачу. Скрипт запускает агентов и держит их результаты у себя, а в разговор приходит только итог. План можно прочитать до запуска, а удачный прогон — сохранить как команду /<имя>.

На прошлом уроке ты выбирал схему. Если задаче нужно много агентов, перепроверка находок или повторный запуск, — это dynamic workflow.

## Что это такое

Workflow — это скрипт на JavaScript, который Claude пишет под твою задачу. Скрипт запускается в фоне, и твоя сессия остаётся отзывчивой. Он сам запускает субагентов и держит их результаты в своих переменных, а в разговор попадает только итог. План держит скрипт, а не Claude.

Раз план — это код, его можно:

- прочитать **до** запуска;
- заставить независимых агентов перепроверять находки друг друга;
- сохранить и запускать снова как команду `/<имя>`.

На плане Pro workflows выключены, пока ты не включишь строку **Dynamic workflows** в `/config`.

## Как попросить

Достаточно сказать слово «workflow» в запросе:

```text
use a workflow to audit every file under src/ for errors that are caught and then ignored, and adversarially verify each finding before reporting it
```

Есть и встроенный workflow `/deep-research` — исследование с поиском в интернете.

Перед запуском Claude Code покажет фазы плана и спросит: **Yes, run it**, **View raw script** или **No**. Выбери **View raw script** или нажми `Ctrl+G`, чтобы открыть скрипт в редакторе. В режиме manual Claude Code спрашивает перед каждым прогоном — так ты видишь каждый план до старта.

## Как выглядит скрипт

```javascript
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)
```

- `agent()` запускает одного субагента;
- `pipeline()` запускает по агенту на каждый элемент списка;
- `parallel()` запускает набор агентов одновременно;
- `args` — вход, который ты передаёшь сохранённому workflow.

Первая инструкция — всегда `export const meta`: простой объект-литерал с `name` и `description`. Если туда попадёт переменная, вызов функции или spread, команда `/<имя>` пропадёт из автодополнения.

## Пульт /workflows

Пока workflow работает, набери `/workflows` и выбери прогон:

| Клавиша | Что делает |
|---|---|
| `↑` `↓` | выбрать фазу или агента |
| `Enter` | открыть фазу, потом агента: промпт, вызовы, результат |
| `Esc` | назад |
| `p` | пауза и продолжение |
| `x` | остановить прогон |
| `s` | сохранить скрипт |

При сохранении `Tab` переключает место: `.claude/workflows/` в проекте — общий для всех, кто склонирует репозиторий, когда ты его закоммитишь; `~/.claude/workflows/` — только твой, но во всех проектах. Со следующей сессии сохранённый скрипт запускается как `/<имя>` и принимает вход, например: `Run /todo-audit on src`.

## Размер прогона

```text
/config workflowSizeGuideline=small
```

`small` просит Claude закладывать как можно меньше агентов. Настройка хранится в `~/.claude.json`, а не в репозитории, и действует со следующего запроса. Это **совет**, а не лимит. Если прогон разрастается, в строке прогресса появляется предупреждение `Large workflow`, но оно не ставит прогон на паузу и не ограничивает его. Для экономии запусти сессию с `--model sonnet`: если модель ничем другим не задана, агенты workflow работают на модели сессии.

Остановленный клавишей `x` прогон не продолжится по `p`: попроси Claude перезапустить тот же скрипт.

**Осторожно.** 
В режиме auto Claude Code спрашивает только перед самым первым запуском workflow: любое «Да» записывает согласие в твои пользовательские настройки, и дальше прогоны стартуют без вопроса. Агенты workflow подчиняются твоим правилам разрешений, а в режимах accept-edits, auto и bypass работают в том же режиме. Читай каждый скрипт до одобрения и оставайся в manual для workflow, который ещё не читал. Прогон может стоить заметно больше той же задачи в разговоре — пробуй сначала на одной маленькой папке.
