Пояснение для каждой задачи: динамические рабочие процессы в Claude Code
Автор оригинала: @trq212
Компиляция: Peggy
Редакторская заметка: Claude Code превращается из помощника по коду в настраиваемую рабочую станцию агента.
Представленные в этой статье рабочие процессы (workflows) имеют ключевую ценность в том, что позволяют Claude больше не ограничиваться лишь «мышлением, а затем действием» в пределах одного окна контекста, а динамически генерировать набор исполнительных рамок: разбивать задачи, назначать под-агенты, обрабатывать параллельно, проводить перекрестную проверку, циклически итерировать и даже заставлять разных агентов конкурировать друг с другом, прежде чем объединить результаты.
Это означает, что сферы применения Claude Code явно расширяются. Он подходит не только для миграции кода, рефакторинга, воспроизведения тестов и код-ревью, но также для глубоких исследований, проверки фактов, отбора резюме, анализа инцидентов, формализации правил, оценки бизнес-планов и мозгового штурма названий — то есть для нетехнических задач. Многие сложные задачи по своей сути схожи с программированием: они требуют разбиения проблемы, изоляции контекста, проверки гипотез, работы с большим объемом деталей и выбора между несколькими альтернативными путями.
Динамические рабочие процессы решают несколько распространенных проблем крупных моделей при выполнении длинных задач: «лень агента», когда он объявляет о завершении задания еще до его окончания, «субъективное предвзятое восприятие», когда он склонен одобрять собственные выводы, и «смещение цели», когда после нескольких циклов выполнения задача постепенно отклоняется от первоначальной цели. Передавая задачу нескольким Claude с независимыми контекстами, он преобразует сложную задачу из «одиночного марафона агента» в «совместную работу нескольких агентов».
Конечно, рабочие процессы — не панацея. Они обычно потребляют больше токенов и не всегда подходят для каждой обычной задачи программирования. Но они указывают на важное направление: конкуренция между инструментами ИИ в будущем может заключаться не только в том, насколько умна отдельная модель, а в том, способна ли она организовать надежный, повторно используемый и проверяемый процесс выполнения для сложных целей.
Следующий текст:
Хотя стандартная выполненная среда Claude Code была создана для программирования, она также подходит для многих других типов задач. Оказалось, что многие задачи структурно похожи на задачи программирования. Однако для достижения наилучших результатов в некоторых специфических типах задач, таких как исследования, анализ безопасности, взаимодействие команд агентов или проверка кода, нам все же необходимо создавать на основе Claude Code специализированные выполненные среды.
Рабочие процессы позволяют вам динамически создавать исполняемые рамки, чтобы Claude мог более естественно решать вышеуказанные и другие типы задач внутри Claude Code. Вы также можете делиться этими рабочими процессами и повторно использовать их.
В этой статье я поделюсь своим первоначальным опытом и впечатлениями от использования workflows, чтобы помочь вам максимально эффективно использовать его возможности.
Однако следует отметить, что соответствующие лучшие практики пока еще формируются. Динамические рабочие процессы обычно потребляют больше токенов, поэтому вам нужно внимательно продумать, когда и как их использовать.
Примечание: эта статья также опубликована на блоге Claude.
Пример запроса
Прежде чем перейти к техническим деталям, я хочу привести несколько примеров prompt, чтобы помочь вам понять возможности рабочих процессов:
Этот тест сбивается примерно один раз на 50 запусков. Создайте рабочий процесс для воспроизведения этой ошибки, сформулируйте гипотезу и проведите контрольные тесты в разных рабочих деревьях. /goal Не останавливайтесь, пока одна из гипотез не будет подтверждена.
Используйте workflow, чтобы просмотреть мои последние 50 сессий, выявить повторяющиеся исправления, которые я делаю, и превратить эти повторяющиеся проблемы в правила CLAUDE.md.
Используйте workflow, чтобы просмотреть канал #incidents в Slack за последние шесть месяцев и выявить повторяющиеся основные причины, по которым никто не создавал тикеты.
Запустите мой бизнес-план в рабочий процесс, чтобы разные агенты разобрали его с точки зрения инвесторов, клиентов и конкурентов.
Здесь есть папка с 80 резюме. Используйте workflow, чтобы отсортировать их в соответствии с требованиями к позициям бэкенда, и проверьте десять лучших. Задайте мне вопросы с помощью инструмента AskUserQuestion, чтобы помочь мне установить критерии оценки.
Мне нужно придумать название для этого CLI-инструмента. Используя workflow, проведите мозговой штурм списка вариантов, а затем выберите три лучших с помощью турнирной системы.
Используйте workflow, чтобы переименовать нашу модель User в Account во всех местах.
Прочитайте черновик моего блога и проверьте каждое техническое утверждение с помощью рабочего процесса, сопоставив его с репозиторием кода. Я не хочу публиковать никакую неверную информацию.
Как работает динамический рабочий процесс
Динамический рабочий процесс выполняет JavaScript-файл, содержащий несколько специальных функций для генерации и координации подагентов.

Динамические рабочие процессы также включают стандартные функции JavaScript, такие как JSON, Math и Array, для обработки данных.
Особо стоит отметить, что динамический рабочий процесс может определять, какую модель использует агент, а также решать, будут ли подагенты работать в собственном рабочем дереве. Это позволяет Claude самостоятельно выбирать необходимый уровень интеллекта и степень изоляции в зависимости от задачи.
Если рабочий процесс прерван, например, из-за ручного действия пользователя или выхода из терминала, после восстановления сессии этот рабочий процесс может быть продолжен с места прерывания.
Почему необходимы динамические рабочие процессы?
Когда вы используете стандартную среду выполнения Claude Code для выполнения задачи, она должна одновременно планировать и выполнять задачу в пределах одного окна контекста. Для многих программных задач этот подход очень эффективен, но в случае длительных, масштабных параллельных или высокоструктурированных конкурентных задач он иногда теряет эффективность.
Причина в том, что чем дольше Claude обрабатывает сложные задачи в одном окне контекста, тем более подвержен он определенным типам сбоев:
Агентная лень — это когда Claude прекращает обработку особенно сложных, многоступенчатых задач до их полного завершения и заявляет о выполнении, несмотря на то, что достигнут только частичный прогресс. Например, при проверке безопасности обработав только 20 из 50 пунктов и объявив работу завершенной.
Самообусловленная предвзятость — это склонность Claude отдавать предпочтение собственным результатам или выводам, особенно когда его просят проверить или оценить собственный контент по определённым критериям.
Goal drift (отклонение от цели) — это постепенное снижение степени приверженности Claude первоначальной цели в процессе многократного выполнения, особенно после сжатия контекста. Каждое резюме приводит к потере информации, и некоторые детальные требования, например, крайние случаи или ограничения вроде «не делайте X», могут быть утеряны.
Создание рабочего процесса помогает смягчить эти проблемы, поскольку позволяет оркестрировать несколько независимых Claude, предоставив каждому собственное окно контекста и сосредоточив их на изолированных, четко определенных задачах.
Dynamic workflows and static workflows
Ранее вы могли уже создавать статические рабочие процессы с помощью Claude Agent SDK или claude -p для координации нескольких экземпляров Claude Code.
Однако статические рабочие процессы, требующие охвата различных крайних случаев, как правило, более универсальны. С появлением Claude Opus 4.8 и динамических рабочих процессов Claude теперь достаточно умен, чтобы создать настраиваемую исполняемую структуру для вашего конкретного сценария использования.

Практические шаблоны при использовании динамических рабочих процессов
Вы можете напрямую попросить Claude создать динамический рабочий процесс, либо использовать триггерное слово «ultracode», чтобы убедиться, что Claude Code создаст рабочий процесс.
Однако, если вы сможете сформировать мысленную модель того, как работает динамический рабочий процесс, вам будет легче определить, когда его следует использовать, а также легче направлять Claude с помощью запросов.
Клауд при создании рабочих процессов часто использует и комбинирует следующие шаблоны:

Классифицировать и выполнить: используйте агента классификации для определения типа задачи, а затем направьте ее к соответствующему агенту или действию в зависимости от типа задачи. Также можно использовать классификатор в конце процесса для оценки выходных данных.
Разветвление и агрегация: разбейте задачу на несколько более мелких шагов, чтобы каждый шаг выполнялся отдельным агентом, а затем объедините результаты. Этот подход особенно подходит для задач, содержащих множество мелких шагов, или когда каждый шаг требует чистого контекстного окна, чтобы избежать взаимных помех или перекрестного загрязнения. Этап агрегации действует как «барьер»: он ожидает завершения всех разветвленных агентов, а затем объединяет их структурированные выходные данные в один результат.
Адверсарная проверка: для каждого сгенерированного агента запускается отдельный агент, который проверяет его вывод в соответствии с определенными критериями или стандартами.
Генерация и отбор: создайте множество идей вокруг темы, затем отфильтруйте их по критериям оценки или процессу проверки, устраните дубликаты и верните только проверенные, наивысшего качества идеи.
Турнир: не разбивать задачу, а заставить агентов конкурировать друг с другом. Создайте N агентов, чтобы каждый из них попытался выполнить одну и ту же задачу разными методами. Затем prompt или модель проведет попарное сравнение результатов агентов, пока не будет выбран победитель.
Повторяйте до завершения: для задач с неизвестным объемом работы не устанавливайте фиксированное количество циклов, а продолжайте создавать агентов, пока не будет выполнено условие остановки, например, пока не перестанут появляться новые обнаружения или ошибки в логах.
Сценарии использования
Вы можете более креативно подумать о том, когда и как заставить Claude Code создавать динамические рабочие процессы. Я обнаружил, что рабочие процессы иногда даже полезнее в нетехнической работе.

Миграция и рефакторинг
Bun был переписан с Zig на Rust с использованием workflows. Вы можете прочитать пост Jarred на X, чтобы узнать подробности.
Суть в том, чтобы разбить задачу на серию шагов, которые нужно выполнить, например, точки вызова, тесты на сбои, модули и т.д. Для каждой задачи по исправлению запустите подагент в worktree, чтобы он выполнил исправление; затем пусть другой агент проведет контрольную проверку, после чего объедините результаты. Вы можете явно указать агенту не использовать ресурсоемкие команды, чтобы максимизировать параллелизм, не исчерпывая ресурсы локальной машины.
Глубокое исследование
В Claude Code мы выпустили навык глубокого исследования (/deep-research), который использует динамический рабочий процесс. Конкретно, он выполняет параллельный поиск в интернете, извлекает источники, проводит контрольную проверку соответствующих утверждений и составляет итоговый отчет с цитатами.
Но такие исследования применимы не только к веб-поиску. Например, вы также можете попросить Claude составить отчет о состоянии на основе контекста Slack или изучить, как работает определенная функция, глубоко проанализировав кодовую базу.
Deep verification

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

У вас может быть набор проектов, которые вы хотите отсортировать по некоторому качественному показателю, и вы считаете, что Claude Code хорошо справляется с оценкой такого показателя. Например, отсортировать тикеты поддержки по степени серьезности ошибок.
Но если вы пытаетесь отсортировать более 1000 строк в одном запросе, качество снижается, и контекстное окно не вмещает их. Лучше использовать турнирный механизм, создав конвейер из агентов, выполняющих попарные сравнения, поскольку сравнительные суждения обычно надежнее абсолютных оценок; или сначала выполнить параллельную сортировку по корзинам, а затем объединить результаты. Каждое сравнение выполняется отдельным агентом, поэтому детерминированный цикл может поддерживать структуру всего турнира, сохраняя в контексте только текущий порядок выполнения.
Память и соблюдение правил

Если у вас есть набор конкретных правил, и Claude даже при наличии этих правил в CLAUDE.md часто их пропускает или плохо выполняет, можно создать рабочий процесс, в котором эти правила перечислены, а агент по проверке проверяет их по одному — каждое правило имеет своего агента по проверке. Создание подагента с личностью «скептика», который проверяет обоснованность этих правил, также помогает избежать излишних ложных срабатываний.
Также можно сделать наоборот: проанализируйте свои последние сессии и комментарии к код-ревью, чтобы выявить повторяющиеся исправления; пусть параллельный агент сгруппирует эти проблемы; затем проведите контрастную проверку каждого потенциального правила, чтобы определить, действительно ли оно предотвращает конкретную реальную ошибку; в конце концов, отфильтрованные правила снова интегрируйте в CLAUDE.md.
Root cause investigation
Самый эффективный способ отладки — сформулировать несколько независимых гипотез и протестировать их по очереди. Однако, если вы используете только одно окно контекста, Claude может впасть в предвзятость в пользу собственных предпочтений.
Workflow может предотвратить такую ситуацию на структурном уровне: он может запустить несколько агентов, которые будут генерировать гипотезы на основе непересекающихся доказательств. Например, разные агенты могут анализировать логи, файлы и данные отдельно. Затем каждая гипотеза подвергается проверке группой валидаторов и оппонентов.
Это применимо не только к коду. Рабочие процессы также можно использовать для анализа продаж, например: «Почему продажи в марте снизились?»; для данных инженерии, например: «Почему этот конвейер завершился с ошибкой?»; или для любого пост-мортема.
Mass triage

Каждая команда имеет очередь поддержки, отчеты об ошибках или другие задачи, которые не могут быть полностью обработаны людьми. Рабочий процесс триажа позволяет классифицировать каждый элемент, устранять дубликаты с уже отслеживаемыми проблемами и предпринимать действия. Это может означать попытку устранения проблемы или передачу ее на обработку человеку.
Для рабочего процесса триажа полезной моделью является quarantine (карантин). То есть запрещается агентам, которые читают ненадежный открытый контент, выполнять операции с высокими правами; операции с высокими правами должны выполняться специализированными агентами, отвечающими за действия.
Вы можете использовать диагностические рабочие процессы вместе с /loop, чтобы Claude постоянно выполнял такие задачи.
Исследование и оценка вкуса
Workflows полезны, когда вам нужно исследовать различные пути решения, особенно в задачах, связанных с дизайном и именованием, требующих эстетических суждений, и которые могут извлечь выгоду из набора критериев оценки.
Вы можете позволить Claude исследовать множество вариантов и предоставить агенту по проверке набор критериев оценки «что такое хороший вариант». Когда агент по проверке считает, что результат соответствует критериям, задача завершена. Различные варианты также можно ранжировать или отфильтровать с помощью турнирного механизма на основе этих критериев оценки.
Оценки
Вы можете запустить легкие оценки для конкретной задачи, запустив отдельный агент в worktree, а затем запустив сравнительный агент для оценки и выставления оценок конкретного вывода по заданным критериям. Например, вы можете оценить и улучшить созданный вами навык, чтобы проверить, соответствует ли он определенным требованиям.
Модели и интеллектуальная маршрутизация: вы можете создать классифицирующий агент, оптимизированный под вашу задачу, который будет решать, какую модель использовать. Этот подход полезен, когда задача предполагает множество вызовов инструментов, а предварительное исследование помогает определить наиболее подходящую модель.
Например, для задачи «Объяснить, как работает модуль auth» наиболее подходящая модель зависит от количества файлов в модуле auth и структуры кодовой базы. Агент классификации может сначала провести исследование, а затем направить задачу на Sonnet или Opus в зависимости от ожидаемой сложности.
Когда не следует использовать динамический рабочий процесс
Workflows по-прежнему являются новшеством. Хотя в многих сценариях использования они могут принести эффект, значительно превышающий традиционные методы, не каждая задача требует их использования, и они могут значительно увеличить потребление токенов.
Лучше применять рабочие процессы к задачам, которые позволяют расширить границы возможностей Claude Code новым способом. Для обычных задач программирования сначала задайте себе вопрос: действительно ли эта задача требует больше вычислительных ресурсов? Например, большинство традиционных задач программирования не требуют группы из пяти рецензентов.
Советы по созданию динамических рабочих процессов
Дизайн запроса
При написании промпта для динамического рабочего процесса подробность обычно улучшает результат, особенно при использовании конкретных методов, упомянутых выше.
Рабочие процессы применимы не только к крупным задачам. Вы также можете предложить модели использовать «быстрый рабочий процесс». Например, вы можете создать быстрый контрольный процесс для проверки какой-либо гипотезы.
Используйте вместе с /goal и /loop
Когда вы используете рабочие процессы, которые можно выполнять повторно, такие как рабочие процессы триажа, исследования или верификации, вы можете сочетать их с /loop, чтобы они запускались через фиксированные интервалы времени, а также использовать /goal для установки жестких требований к завершению.
Бюджет на использование токена
Вы можете задать четкий бюджет токенов для динамического рабочего процесса, чтобы ограничить количество токенов, используемых для задачи. Вы можете указать требование к бюджету в запросе, например, «use 10k tokens», что установит лимит на 10 000 токенов.
Сохранение и совместное использование динамических рабочих процессов
Вы можете нажать «s» в меню workflow, чтобы сохранить рабочие процессы. Вы можете отправить их в ~/.claude/workflows или распространить через навыки.

Если вы хотите поделиться ими через skill, поместите файлы JavaScript workflow в папку skill и укажите на них в SKILL.md. Для большей гибкости вы также можете подсказать Claude: рассматривайте workflows из skill как шаблоны, а не как скрипты, которые необходимо выполнять дословно.

Новый мир
Workflows — это полезный новый способ расширения Claude Code. Мы рекомендуем рассматривать это как отправную точку. Мы еще многое не знаем о том, как лучше всего его использовать. Расскажите нам о своих открытиях.
Тарик Шихипар и Сид Бидасария (@sidbid) — члены технической команды Anthropic, отвечающие за работу с Claude Code.
Нажмите, чтобы узнать о вакансиях BlockBeats
Добро пожаловать в официальное сообщество律动 BlockBeats:
Телеграм-канал с подпиской: https://t.me/theblockbeats
Телеграм-чат: https://t.me/BlockBeats_App
Официальный аккаунт Twitter: https://twitter.com/BlockBeatsAsia
