ПрактикаPracticeПрактика Дисциплина параллельной работы агентовParallel-agent disciplineДисципліна паралельної роботи агентів

Пустить работу без присмотра циклом свежих процессовRun unattended work as a loop of fresh processesПустити роботу без нагляду циклом свіжих процесів

Агент не может сбросить собственный контекст, поэтому цикл внутри одной сессии тащит каждый завершённый элемент в следующий: тикет 1 всё ещё в контексте, пока идёт тикет 9, и с каждым элементом прогон становится медленнее и дороже. Сделайте сбросом границу процесса. Kit описывает эту схему и не поставляет скрипт-драйвер.An agent cannot reset its own context, so a loop that runs inside one session carries every finished item into the next: ticket 1 is still there while ticket 9 runs, and the run gets slower and more expensive with each item. Make the process boundary the reset. The kit describes this shape and ships no driver script.Агент не може скинути власний контекст, тому цикл усередині однієї сесії тягне кожен завершений елемент у наступний: тікет 1 усе ще в контексті, поки йде тікет 9, і з кожним елементом прогін стає повільнішим і дорожчим. Зробіть скиданням межу процесу. Kit описує цю схему й не постачає скрипт-драйвер.

Когда это нужноWhen to reach for itКоли це потрібно

Очередь рабочих элементов, например тикетов, остаётся работать, пока никто не смотрит.A queue of work items, such as tickets, is left running while nobody watches.Черга робочих елементів, наприклад тікетів, лишається працювати, поки ніхто не дивиться.

ТребованияRequirementsВимоги

Где доступноAvailable inДе доступно
Каждая загрузка kitEvery download of the kitКожне завантаження kit
К чему обращаетсяWhat it touchesДо чого звертається
  • Читает файлы проектаReads the files of your projectЧитає файли проєкту
  • Правит файлы проектаEdits files in your projectЗмінює файли проєкту
  • Запускает команды (проверки, git)Runs commands (checks, git)Запускає команди (перевірки, git)
Работает сWorks withПрацює з
Любой агент, который читает и пишет ваши файлыAny agent that reads and writes your filesБудь-який агент, що читає й пише ваші файли
Где выполняются шагиWhere the steps happenДе виконуються кроки
Чат вашего агента и ваши собственные файлы. Ни то ни другое не интерфейс этого сайта, поэтому шаги описаны текстом, а не скриншотами.Your agent's chat and your own files. Neither is an interface of this site, so the steps are text and not screenshots.Чат вашого агента і ваші власні файли. Ні те, ні інше не є інтерфейсом цього сайту, тому кроки описано текстом, а не скриншотами.
Где это лежит в kitWhere it lives in the kitДе це лежить у kit
docs/PARALLEL.md
Прежде чем начатьBefore you startПерш ніж почати

Драйвер, не отличающий «сбой» от «не пробовали», либо бесконечно перезапускает завершённую работу, либо теряет работу при первом падении. Состояние, лежащее только в контексте, теряется на каждой границе.A driver that cannot tell "failed" from "not attempted" either re-runs finished work forever or drops work on the first crash. State kept only in the context is lost at every boundary.Драйвер, що не відрізняє «збій» від «не пробували», або нескінченно перезапускає завершену роботу, або губить роботу при першому падінні. Стан, що лежить лише в контексті, губиться на кожній межі.

ШагиStepsКроки

  1. Вынесите драйвер за пределы сессии. Он берёт из очереди следующий рабочий элемент, запускает его в свежем headless-процессе и повторяет, чем бы ни закончился запуск. Каждый элемент начинается с пустого контекста, и сброс нельзя забыть.Put the driver outside the session. It takes the next work item off the queue, runs it in a fresh headless process, and repeats however that run ended. Every item starts on an empty context, and the reset cannot be forgotten.Винесіть драйвер за межі сесії. Він бере з черги наступний робочий елемент, запускає його у свіжому headless-процесі і повторює, чим би не закінчився запуск. Кожен елемент починається з порожнього контексту, і скидання не можна забути.
  2. Держите всё состояние, нужное циклу, в файле: кэш пропусков (что уже пробовали и повторять нельзя), корзины отчёта (что удалось, что упало, что пропущено и почему) и позицию в очереди. Состояние в контексте не переживает границу, в этом и смысл её пересечения.Keep every piece of state the loop needs in a file: the skip cache (what was already attempted and must not be retried), the report buckets (what succeeded, what failed, what was skipped and why) and the queue position. State in the context does not survive the boundary, which is the point of crossing it.Тримайте весь стан, потрібний циклу, у файлі: кеш пропусків (що вже пробували й повторювати не можна), кошики звіту (що вдалося, що впало, що пропущено і чому) та позицію в черзі. Стан у контексті не переживає межу, в цьому й сенс її перетину.
  3. Научите драйвер различать «сбой» и «не пробовали» и записывайте исход каждого элемента до перехода дальше, а не после старта следующего.Make the driver distinguish "failed" from "not attempted", and write each item's outcome before moving on, not after the next item starts.Навчіть драйвер розрізняти «збій» і «не пробували» та записуйте результат кожного елемента до переходу далі, а не після старту наступного.
  4. Повторяйте, как бы элемент ни завершился. Падение, лимит или отказ - всё равно конец этого элемента, а цикл, который останавливается на первом плохом элементе, ждёт человека, которого рядом нет.Repeat regardless of how an item exited. A crash, a limit or a refusal is still an end of that item, and a loop that stops at the first bad item waits for a human who is not there.Повторюйте, як би елемент не завершився. Падіння, ліміт чи відмова - усе одно кінець цього елемента, а цикл, що зупиняється на першому поганому елементі, чекає на людину, якої поруч немає.
  5. Используйте то, что даёт граница. Модель можно выбирать под каждый элемент, а не фиксировать на весь прогон, и можно запускать несколько экземпляров одновременно; очередь блокировок, описанная в бюджетном шлюзе, не даёт им мешать друг другу.Use what the boundary buys. You can choose the model per item instead of fixing one for the whole run, and you can run several instances at once; the lock queue described in the budget gate keeps them off each other.Використовуйте те, що дає межа. Модель можна обирати під кожен елемент, а не фіксувати на весь прогін, і можна запускати кілька екземплярів одночасно; черга блокувань, описана в бюджетному шлюзі, не дає їм заважати одне одному.
  6. Выбор стека оставьте за собой: какой формат очереди, какая оболочка, какой вызов headless-режима. Интерактивный цикл оставьте для работы, за которой смотрит человек, а всё, что работает без присмотра, лучше отдавать драйверу.Leave the stack choices to yourself: which queue format, which shell, which headless invocation. Keep the interactive loop for work a human is watching, and prefer the driver for anything left running unattended.Вибір стеку лишіть за собою: який формат черги, яка оболонка, який виклик headless-режиму. Інтерактивний цикл лишіть для роботи, за якою стежить людина, а все, що працює без нагляду, краще віддавати драйверові.
Что вы должны увидетьWhat you should seeЩо ви маєте побачити

Каждый элемент прошёл в своём процессе с пустым контекстом, а файлы показывают, что удалось, что упало, что пропущено и почему и где стоит очередь. Плохой элемент завершил свой запуск, и драйвер пошёл к следующему.Each item ran in its own process on an empty context, and the files show what succeeded, what failed, what was skipped and why, and where the queue stands. A bad item ended its own run and the driver went on to the next.Кожен елемент пройшов у своєму процесі з порожнім контекстом, а файли показують, що вдалося, що впало, що пропущено і чому та де стоїть черга. Поганий елемент завершив свій запуск, і драйвер пішов до наступного.

СоветыTipsПоради

  • Самонакладываемое «остановлюсь на пороге» не гарантирует сброса: оно зависит от того, что кто-то заметит порог и кто-то потом перезапустит. Граница процесса не зависит ни от того, ни от другого.A self-imposed "I will stop at a threshold" cannot promise the reset, because it depends on somebody noticing the threshold and somebody restarting afterwards. The process boundary depends on neither.Самонакладене «зупинюся на порозі» не гарантує скидання: воно залежить від того, що хтось помітить поріг і хтось потім перезапустить. Межа процесу не залежить ні від того, ні від іншого.
  • Нет headless-режима в вашей среде? Оставьте цикл внутри сессии и сделайте остановку явной: останавливайтесь на заданном пороге и возвращайте ручку возобновления, чтобы перезапуск человеком был нажатием клавиши, а не восстановлением по кусочкам.No headless mode in your runtime? Keep the in-session loop and make the halt explicit: stop at a stated threshold and hand back a resume handle, so the human's restart is a keystroke rather than a reconstruction.Немає headless-режиму у вашому середовищі? Лишіть цикл усередині сесії й зробіть зупинку явною: зупиняйтеся на заданому порозі й повертайте ручку відновлення, щоб перезапуск людиною був натисканням клавіші, а не відновленням по шматках.
  • В Claude Code headless-запуск - это claude -p, и CLAUDE.md из kit называет его родным драйвером для /backlog без присмотра, навыка, который разбирает очередь тикетов. См. разобрать очередь тикетов без вашего участия.On Claude Code a headless run is claude -p, and the kit's CLAUDE.md names it as the native driver for an unattended /backlog, the skill that drains a ticket queue. See drain the ticket queue unattended.У Claude Code headless-запуск - це claude -p, і CLAUDE.md з kit називає його рідним драйвером для /backlog без нагляду, навички, що розбирає чергу тікетів. Див. розібрати чергу тікетів без вашої участі.
  • Обоснование цикла процессов по затратам, с единственным измерением за ним, лежит в бюджетном шлюзе. Если несколько экземпляров пишут в одну рабочую папку, прочтите и как запустить нескольких пишущих агентов, не потеряв работу.The cost case for looping the process, with the one measurement behind it, is in the budget gate. If several instances write to one workspace, read how to run several writing agents without losing work too.Обґрунтування циклу процесів за витратами, з єдиним виміром за ним, лежить у бюджетному шлюзі. Якщо кілька екземплярів пишуть в одну робочу теку, прочитайте й як запустити кількох агентів, що пишуть, не втративши роботи.
  • Третья часть того же документа, о читающих, которые распараллеливаются свободно, потому что стоят только токенов, - запустить независимые поиски параллельно и проверить результат.The third part of the same document, on readers that fan out freely because they cost only tokens, is run independent lookups in parallel and check what comes back.Третя частина того самого документа, про тих, що лише читають і розпаралелюються вільно, бо коштують лише токенів, - запустити незалежні пошуки паралельно й перевірити результат.

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

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