РуководствоGuideПосібник

Работать с несколькими агентами одновременноWork with several agents at onceПрацювати з кількома агентами одночасно

Лишние читатели стоят токенов, лишние пишущие стоят работы. Руководство идёт от одного оркестратора и более узких агентов, которым он передаёт работу, через читателей, которых можно запускать веером свободно, к границе, не дающей пишущим откатывать друг друга, с проверкой стоимости перед каждой волной, и заканчивается прогонами, за которыми никто не следит. Начните с одного агента, работающего в основной сессии, и добавляйте других, только когда работа их заслужит.Extra readers cost tokens; extra writers cost work. This guide goes from one orchestrator and the narrower agents it hands work to, through readers that fan out freely, to the boundary that keeps writers from reverting each other, with a cost check before every wave, and ends with runs nobody watches. Start with one agent working inline and add more only when a job earns them.Зайві читачі коштують токенів, зайві агенти, що пишуть, коштують роботи. Посібник іде від одного оркестратора й вужчих агентів, яким він передає роботу, через читачів, яких можна запускати віялом вільно, до межі, що не дає тим, хто пише, відкочувати одне одного, з перевіркою вартості перед кожною хвилею, і закінчується прогонами, за якими ніхто не стежить. Почніть з одного агента, що працює в основній сесії, і додавайте інших, лише коли робота їх заслужить.

Функции в этом руководствеFunctions in this guideФункції в цьому посібнику

ШагиStepsКроки

  1. Начните с оркестратора, rd-lead. Это ведущий агент kit на сильном уровне (model: opus), доступный как субагент на выбор: он классифицирует запрос, мелкую правку отправляет в /quick, узкий баг в /fix, для проектной работы ведёт конвейер спек, остальное передаёт другим и перепроверяет вернувшееся. Чтобы сделать его агентом всей сессии, запустите Claude Code как claude --agent rd-lead: это добровольный режим, он заменяет системный промпт по умолчанию его инструкцией, поэтому settings.json из kit его не задаёт. Сначала заполните плейсхолдеры в его файле.Start with the orchestrator, rd-lead. It is the kit's lead on the strong tier (model: opus) and a selectable subagent: it classifies the request, sends a trivial edit to /quick and a narrow bug to /fix, runs the spec pipeline for design work, delegates the rest and re-checks what comes back. To make it the whole session's agent, start Claude Code with claude --agent rd-lead: an opt-in that replaces the default system prompt with its brief, which is why the kit's settings.json does not set it. Fill the placeholders in its file first.Почніть з оркестратора, rd-lead. Це ведучий агент kit на сильному рівні (model: opus), доступний як субагент на вибір: він класифікує запит, дрібну правку відправляє до /quick, вузький баг до /fix, для проєктної роботи веде конвеєр спек, решту передає іншим і перевіряє те, що повернулося. Щоб зробити його агентом усієї сесії, запустіть Claude Code як claude --agent rd-lead: це добровільний режим, він замінює типовий системний промпт його інструкцією, тому settings.json із kit його не задає. Спершу заповніть плейсхолдери в його файлі.
  2. Узкие задачи отдавайте узким агентам. solution-researcher на лёгком уровне (model: haiku) только читает (tools: Read, Grep, Glob, без Bash) и перед спекой возвращает отчёт с доказательствами, на каждое утверждение давая реальный путь к файлу. implementer на среднем уровне (model: sonnet) выполняет запланированный шаг, исправление с известной причиной или тесты, держится рамок промпта шага и отчитывается по каждой проверке: expected | actual.Give narrow jobs to the narrower agents. solution-researcher, on the light tier (model: haiku), is read-only (tools: Read, Grep, Glob, no Bash) and returns an evidence-based report before a spec, citing a real file path for every claim. implementer, on the mid tier (model: sonnet), executes a planned step, a fix with a known cause or tests, stays inside the step's prompt and reports each check as expected | actual.Вузькі завдання віддавайте вузьким агентам. solution-researcher на легкому рівні (model: haiku) лише читає (tools: Read, Grep, Glob, без Bash) і перед спекою повертає звіт із доказами, до кожного твердження даючи реальний шлях до файлу. implementer на середньому рівні (model: sonnet) виконує заплановий крок, виправлення з відомою причиною чи тести, тримається рамок промпту кроку й звітує за кожною перевіркою: expected | actual.
  3. Пройдите бюджетный шлюз перед любой волной. По умолчанию работайте в основной сессии: субагент стоит полного запуска контекста плюс его собственные токены, а его отчёт - утверждение, которое придётся перепроверять. Оцените число агентов и примерную стоимость в токенах, держите потолок около 6-8 агентов на прогон, а выше него берите явное GO с числом, стоимостью и причиной, по которой меньшим числом не обойтись. Волну, убитую лимитом, молча не возобновляйте: сообщите, что завершилось, а что нет, и решайте.Pass the budget gate before any wave. Work inline by default: a subagent costs a full context spin-up plus its own tokens, and its report is a claim you must re-validate. Estimate the agent count and the rough token cost, keep a ceiling of about 6-8 agents per run, and above it get an explicit GO that states the count, the cost and why fewer will not do. Never silently resume a wave that a limit killed: report what completed and what did not, then decide.Пройдіть бюджетний шлюз перед будь-якою хвилею. За замовчуванням працюйте в основній сесії: субагент коштує повного запуску контексту плюс його власні токени, а його звіт - твердження, яке доведеться перевіряти. Оцініть кількість агентів і приблизну вартість у токенах, тримайте стелю близько 6-8 агентів на прогін, а вище неї беріть явне GO з кількістю, вартістю й причиною, чому меншою кількістю не обійтися. Хвилю, вбиту лімітом, мовчки не відновлюйте: повідомте, що завершилося, а що ні, і вирішуйте.
  4. Запускайте читателей веером одновременно: поиск по локальным символам, запрос документации фреймворка и просмотр issues, отвечающие на один вопрос, не ждут друг друга. Выстраивайте волну по этапам: сначала находите, потом проверяйте, и не запускайте веер проверки по находкам без дедупликации. Громоздкие свидетельства уходят одноразовому дочернему агенту, который возвращает короткий вердикт, так что они не оседают в контексте родителя.Fan the readers out in the same breath: a local symbol search, a framework docs fetch and an issue lookup that answer one question do not wait for each other. Stage the wave, find first and verify second, and do not fan out verification over findings you have not deduplicated. Bulky evidence goes to a throwaway child that returns a compact verdict, so it stays out of the parent's context.Запускайте читачів віялом одночасно: пошук за локальними символами, запит документації фреймворку й перегляд issues, що відповідають на одне питання, не чекають одне одного. Вибудовуйте хвилю за етапами: спершу знаходьте, потім перевіряйте, і не запускайте віяло перевірки по знахідках без дедуплікації. Громіздкі свідчення йдуть одноразовому дочірньому агентові, який повертає короткий вердикт, тож вони не осідають у контексті батьківського.
  5. С пишущими обращайтесь иначе: пишущим нужна граница. Команда над всем деревом от одного пишущего (stash, checkout, reset, restore или clean) откатывает несохранённые правки всех остальных, даже в файлах, которых он не касался, а пострадавший не видит ошибки, а видит лишь исчезновение собственной готовой работы. «Они правят разные файлы» необходимо, но совершенно недостаточно. Если файлы откатываются, перед любой переделкой перечитайте их с диска.Treat writers differently, because writers need a boundary. A whole-tree command run by one writer (stash, checkout, reset, restore or clean) reverts every other writer's uncommitted edits, even on files it never touched, and the victim sees no error, only its own finished work gone. 'They are editing different files' is necessary and nowhere near sufficient. If files keep reverting, re-read them from disk before redoing anything.З тими, що пишуть, поводьтеся інакше: тим, що пишуть, потрібна межа. Команда над усім деревом від одного з них (stash, checkout, reset, restore чи clean) відкочує незбережені правки всіх інших, навіть у файлах, яких він не торкався, а постраждалий не бачить помилки, а бачить лише зникнення власної готової роботи. «Вони правлять різні файли» потрібно, але далеко не достатньо. Якщо файли відкочуються, перед будь-якою переробкою перечитайте їх із диска.
  6. Решите, кто владеет командами контроля версий, сборки и индекса, и запишите решение. Либо ими владеет оркестратор и запускает их только между волнами, а параллельным пишущим они запрещены. Либо у каждого пишущего своя рабочая копия, обычно связанное рабочее дерево: она обязательна, как только нужна своя ветка, своя сборка или долгий запуск. В Claude Code isolation: worktree во frontmatter субагента делает это для каждого запуска, ветвясь от ветки по умолчанию, а не от вашего HEAD. Не делите выходной каталог, устройство и порт.Decide who owns version-control, build and index commands, and write it down. Either the orchestrator owns them and runs them only between waves, and parallel writers are forbidden them. Or each writer gets its own checkout, usually a linked worktree, required once a writer needs its own branch, its own build or a long run. On Claude Code, isolation: worktree in a subagent's frontmatter does it per spawn, branching from the default branch, not your HEAD. Do not share an output directory, a device or a port.Вирішіть, хто володіє командами контролю версій, збірки та індексу, і запишіть рішення. Або ними володіє оркестратор і запускає їх лише між хвилями, а паралельним агентам, що пишуть, вони заборонені. Або в кожного, хто пише, своя робоча копія, зазвичай пов'язане робоче дерево: вона обов'язкова, щойно потрібна своя гілка, своя збірка чи довгий запуск. У Claude Code isolation: worktree у frontmatter субагента робить це для кожного запуску, відгалужуючись від гілки за замовчуванням, а не від вашого HEAD. Не діліть вихідний каталог, пристрій і порт.
  7. Одно оставьте общим и назовите того, кто возвращает работу домой. Путь рекомендательной блокировки берите из общего каталога git, а не из рабочего дерева: блокировка на каждое дерево ничего не упорядочивает и не выдаёт ошибки. До начала волны запишите, как возвращается результат каждого: своя ветка и свой коммит, патч оркестратору или слияние в интеграционную ветку. Работа, оставленная незакоммиченной в рабочем дереве, - сирота, а волна при этом остаётся зелёной.Keep one thing shared and name who brings the work home. Resolve the advisory lock path from the shared git directory, not the working tree: a per-worktree lock serializes nothing and raises no error. Before the wave, record how each result returns: its own branch and commit, a patch to the orchestrator, or a merge into an integration branch. Work left uncommitted in a worktree is an orphan, and the wave still scores green.Одне залиште спільним і назвіть того, хто повертає роботу додому. Шлях рекомендаційного блокування беріть зі спільної теки git, а не з робочого дерева: блокування на кожне дерево нічого не впорядковує й не видає помилки. До початку хвилі запишіть, як повертається результат кожного: своя гілка й свій коміт, патч оркестраторові або злиття в інтеграційну гілку. Робота, залишена незакоміченою в робочому дереві, - сирота, а хвиля при цьому лишається зеленою.
  8. Дайте каждому пишущему точный список его файлов в его промпте, а не папку и не «файлы фазы 2»: иначе он правит за своей границей, а пересечение проявляется лишь как пропавшая работа. Когда волна вернулась, оркестратор её перепроверяет: отчёт дочернего агента - утверждение в обе стороны, будь то призрачный сбой устаревшей сборки или успех, не проверенный на слитом дереве. Он заново запускает проверку по набору файлов каждого пишущего, и сбой попадает к владельцу файла; изменённый файл, которого нет ни в чьём списке, - уже находка.Give each writer its exact file list in its own prompt, not a folder or 'the phase 2 files', or it edits past its boundary and the overlap shows up only as missing work. When the wave returns, the orchestrator re-validates it: a child's report is a claim in both directions, a phantom failure from a stale build or a success never checked on the merged tree. It re-runs the checker over each writer's file set, so a failure lands on the file's owner; a changed file on nobody's list is itself a finding.Дайте кожному, хто пише, точний список його файлів у його промпті, а не теку й не «файли фази 2»: інакше він править за своєю межею, а перетин проявляється лише як зникла робота. Коли хвиля повернулася, оркестратор її перевіряє: звіт дочірнього агента - твердження в обидва боки, чи то примарний збій застарілої збірки, чи успіх, не перевірений на злитому дереві. Він знову запускає перевірку по наборі файлів кожного, хто пише, і збій потрапляє до власника файлу; змінений файл, якого немає в нічийому списку, - уже знахідка.
  9. Для очереди, которая работает без присмотра, крутите в цикле процесс, а не сессию. Агент не может сбросить собственный контекст, поэтому драйвер вне сессии отдаёт по одному элементу свежему headless-процессу, держит кэш пропусков, разделы отчёта и позицию в очереди в файлах и отличает «сбой» от «не пробовали». Kit описывает эту схему, цикл свежих процессов, и не поставляет скрипт-драйвер.For a queue left running while nobody watches, loop the process, not the session. An agent cannot reset its own context, so a driver outside the session feeds one item at a time to a fresh headless process, keeps the skip cache, the report buckets and the queue position in files, and tells 'failed' from 'not attempted'. The kit describes the shape, a loop of fresh processes, and ships no driver script.Для черги, що працює без нагляду, крутіть у циклі процес, а не сесію. Агент не може скинути власний контекст, тому драйвер поза сесією віддає по одному елементу свіжому headless-процесу, тримає кеш пропусків, розділи звіту й позицію в черзі у файлах та відрізняє «збій» від «не пробували». Kit описує цю схему, цикл свіжих процесів, і не постачає скрипт-драйвер.
Что вы должны увидетьWhat you should seeЩо ви маєте побачити

Каждая часть работы ушла подходящему агенту, волна началась после записанных числа, стоимости и потолка, каждый пишущий работал там, куда не дотянется чужая команда над всем деревом, оркестратор сверил каждый вернувшийся отчёт со слитым деревом, а безнадзорная очередь шла свежими процессами с состоянием в файлах.Each piece of work went to the agent that fits it, the wave started after a written count, cost and ceiling, every writer worked where another's tree-wide command cannot reach it, the orchestrator checked each returned report against the merged tree, and an unattended queue ran as fresh processes with its state in files.Кожна частина роботи дісталася відповідному агентові, хвиля почалася після записаних кількості, вартості й стелі, кожен, хто пише, працював там, куди не дотягнеться чужа команда над усім деревом, оркестратор звірив кожен повернутий звіт зі злитим деревом, а безнаглядна черга йшла свіжими процесами зі станом у файлах.

Термины на этой страницеTerms on this pageТерміни на цій сторінці

Поиск по порталуSearch the portalПошук по порталу