Назад к подкастамClaude
Claude Code subagents
Как проектировать эффективных субагентов
Now that you know how to create sub aents, let's look at patterns that lead to effective sub aents.
Теперь, когда вы знаете, как создавать субагентов, рассмотрим паттерны, которые делают их эффективными.
First, let's get a better idea of how subit data in the sub aent config file is used.
Сначала давайте лучше разберёмся, как используются данные конфигурации субагента.
Whenever you send a message to the main context window agent, the name and description of each sub aent is included in the system prompt.
Каждый раз, когда вы отправляете сообщение основному агенту, имя и описание каждого субагента включаются в system prompt.
So, if you want to better control when the main agent launches a sub agent automatically, you should modify the name and description.
Чтобы лучше управлять тем, когда основной агент автоматически запускает субагента, нужно изменить имя и описание.
Next, remember that when a sub agent is launched, the main agent writes an input prompt.
Помните также: когда субагент запускается, основной агент составляет входной промпт.
When writing this input prompt, it uses the description as guidance.
При написании этого промпта он использует описание как руководство.
So, if you want to better control when the main agent launches a sub agent automatically, you should modify the name and description.
Так что если хотите лучше контролировать момент автоматического запуска субагента, измените имя и описание.
Let's consider our review sub aent again.
Вернёмся к нашему субагенту для ревью.
Right now, when the main agent runs this sub agent, the sub aent is given an input prompt telling it to use get diff to find the current changes.
Сейчас, когда основной агент запускает этого субагента, тот получает входной промпт с указанием использовать git diff для поиска текущих изменений.
If we wanted the main agent to more reliably tell the sub agent exactly which files to review, we would update the description.
Если бы мы хотели, чтобы основной агент надёжнее сообщал субагенту, какие именно файлы ревьюить, нужно обновить описание.
You must tell the agent precisely which files you want it to review.
Вы должны точно указать агенту, какие файлы нужно проверить.
Now, if we ask claw to run the code reviewer agent, we'll see a different input.
Теперь если попросить Claude запустить агента-ревьюера кода, мы увидим другой входной промпт.
You can also influence what the main thread tells a sub agent through the description.
Через описание можно также влиять на то, что основной поток передаёт субагенту.
So adding return sources that can be cited to a web search sub aents description causes the main thread to include that instruction when delegating the task.
Добавив в описание субагента для веб-поиска «возвращай источники, которые можно процитировать», мы заставим основной поток включать эту инструкцию при делегировании задачи.
The most important improvement that you can make is defining an output format in the system prompt.
Самое важное улучшение, которое можно сделать, это задать формат вывода в system prompt.
This creates natural stopping points for the sub aent.
Это создаёт для субагента естественные точки остановки.
Without a defined output format, sub aents struggle to decide when enough research has been done and they tend to run much much longer than sub agents that are given an output format.
Без заданного формата вывода субагенты не могут определить, когда достаточно исследований, и работают гораздо дольше тех, у которых формат задан.
When a sub agent discovers a workaround to some issue like solving a dependency issue or finding that a certain command needs particular flags, these details should appear in the summary.
Когда субагент находит решение проблемы, например разрешает конфликт зависимостей или обнаруживает, что команде нужны определённые флаги, эти детали должны попасть в сводку.
Otherwise, the main thread has to rediscover the same solutions, obstacles encountered, any setup issues, workarounds discovered or environment quirks, commands that needed special flags or configuration, dependencies or imports that cause problems.
Иначе основному потоку придётся заново открывать те же решения: встреченные препятствия, проблемы с настройкой, найденные обходные пути, особенности среды, команды со специальными флагами, зависимости и импорты, вызвавшие проблемы.
Explicitly asking for obstacle reporting in the output format surfaces this information.
Явный запрос отчёта о препятствиях в формате вывода делает эту информацию видимой.
A readonly sub aent using just glob grap read cannot accidentally modify files.
Субагент только для чтения, использующий лишь glob, grep и read, не сможет случайно изменить файлы.
This constraint clarifies that the sub aents role and prevents unintended side effects.
Это ограничение проясняет роль субагента и предотвращает непреднамеренные побочные эффекты.
So think about what sub aents actually needs to do.
Подумайте, что субагенту действительно нужно делать.
If it's just researching it only needs to read files.
Если он только исследует данные, ему нужно лишь читать файлы.
So keep it read only.
Значит, держите его в режиме только для чтения.
That way it can't accidentally modify anything while exploring.
Так он не сможет случайно ничего изменить при обходе.
A reviewer needs to run get diff to see what changed.
Ревьюер должен запустить git diff, чтобы увидеть изменения.
So give it bash access, but it still doesn't need to edit files.
Дайте ему доступ к bash, но редактировать файлы ему всё равно не нужно.
Only give edit and write to sub aents that should actually change your code, like a styling agent applying CSS updates.
Права на edit и write давайте только субагентам, которые действительно должны изменять код, например агенту стилизации, применяющему обновления CSS.
This also helps clarify what each sub aent is for when you have several of them.
Это также помогает понять назначение каждого субагента, когда их несколько.
So effective sub aents use structured output report obstacles have specific descriptions and limit tool access.
Итак, эффективные субагенты используют структурированный вывод, сообщают о препятствиях, имеют конкретные описания и ограниченный доступ к инструментам.