Tvijo wiki
Каталог

Теми

Кілька агентів, один репозиторій: правила володіння з реальних інцидентів

Коли в одному репозиторії працює більше ніж один агент, типові збої — перезапис чужих файлів і коміт чужої незавершеної роботи. Дайте кожному агенту власне робоче дерево, додавайте до індексу лише названі шляхи й правте спільні керівні файли по одному запису за раз.

🎯 Для Тімлід, який запускає більше ніж одного агента для написання коду в одному репозиторії

📚 Ви дізнаєтеся
  • Три інциденти, що трапляються, коли агенти ділять одне робоче дерево
  • Правила: одне робоче дерево на агента, явні шляхи, один запис за раз
  • Тест, який ловить керівний файл, що «схуд»

👥 Що йде не так

Один агент у репозиторії поводиться як один уважний колега. Кілька агентів поводяться як кілька колег, які одночасно правлять той самий документ, де нічиїх імен не вказано. Трапляється три речі. Вони перезаписують роботу одне одного. Коміт захоплює чиюсь недописану зміну. І ніхто потім не може сказати, хто саме щось змінив, тож ніхто не може усунути причину.

📅 Два інциденти

21 вересня 2026 року агент записав застарілу копію спільного керівного файлу поверх свіжої. У файлі був реєстр чинних ініціатив. Він втратив п'ятнадцять ключів і три записи конвеєра, зокрема посилання на ухвалене архітектурне рішення.

26 вересня 2026 року два агенти одночасно редагували те саме тимчасове робоче дерево. Коміт одного з них захопив би незавершені зміни іншого. Другий агент також змінив власника теки, що зламало тестовий прогін першого.

📐 Правила, які ми записали

  1. Одне робоче дерево на агента. Кожен агент створює власну теку, названу за ним і за завданням, і пише в ній невеликий файл власника: агент, ідентифікатор процесу, час, завдання. Якщо знайшли файл власника, який не ваш, зупиніться й повідомте людину.
  2. Лише явні шляхи. Додавайте файли за назвою. Ніколи не використовуйте «додати все», бо в спільному дереві завжди лежать чужі зміни.
  3. Керівні файли правлять по одному запису за раз. Перечитайте файл безпосередньо перед записом. Якщо ваш інструмент не вміє точкової правки, поверніть запропонований текст власнику замість того, щоб писати файл.
  4. У кожної ініціативи є власник. Власник її реалізує. Інші пропонують зміни у звіті.
  5. Завершуйте комітом. Зміна, залишена незакоміченою в спільному дереві після завершення завдання, — це дефект: ніхто її не прийме, чийсь коміт може її захопити, або вона просто загубиться.

🧪 Тест на файли, що «худнуть»

Втрату 21 вересня можна було зловити дешевим тестом. Наш порівнює керівні файли в робочому дереві із закоміченою версією і падає, коли запис, який був у коміті, зник. Повідомлення про збій починається з фіксованого слова, щоб його було легко знайти пошуком. Файл тесту містить 4 тести і виконується в нічному гейті.

🛠️ Практика: налаштуйте це за годину

  1. Створіть робоче дерево на агента скриптом, який заодно пише файл власника.
  2. Зробіть так, щоб «додати все» падало: через обгортку або перевірку перед комітом, яка виводить підготовлені шляхи й вимагає назвати кожен із них у завданні.
  3. Виберіть три файли, які керують вашою системою: реєстр, список конвеєра, конфігурацію. Запишіть їх.
  4. Напишіть тест, який завантажує кожен із них з коміту й з дерева та падає, коли зник ключ або запис.
  5. Додайте поле власника до кожної ініціативи.
  6. Додайте правило: завдання не завершене, поки не зроблено коміт і пуш.

✅ Перевірте себе

  • Запустіть два агенти на двох завданнях. Їхні теки різні, і в кожній є файл власника.
  • Видаліть запис із керівного файлу й запустіть тест. Він падає і називає цей запис.
  • Спробуйте підготувати все до коміту. Перевірка зупиняє вас і виводить те, що побачила.
  • Наприкінці завдання git status у спільному дереві не показує нічого вашого.

🚧 Коли це не працює

  • Конфлікти злиття залишаються. Окремі робочі дерева переносять конфлікт на момент злиття. Саме правило власника тримає його малим.
  • Згенеровані файли. Файли, які кожен агент генерує заново, конфліктуватимуть завжди. Тримайте їх поза git або серіалізуйте доступ до них.
  • Витрати на диск і збирання. Кожному робочому дереву потрібні місце й збирання. Для легких завдань використовуйте полегшені налаштування.
  • Агенти, які ігнорують інструкції. Правило у файлі — це не примус. Важливі правила переносьте в перевірки.
  • Правки людей. Люди, які пишуть у спільне дерево, ламають модель. Дайте й їм робоче дерево.

📊 Докази

Що ми вимірювали Втрачені записи з керівного файлу 21 вересня 2026 року; кількість тестів у сторожовому тесті
Коли Записи інцидентів прочитано 3 листопада 2026, 22:06 UTC
Артефакт Наш файл правил для агентів і файл тесту на керівні файли, що «худнуть» (4 тести), у приватному репозиторії
Обмеження Два інциденти в одній команді. Ми не маємо підрахунку, скільки їх було б без цих правил

➡️ Далі

Дізнайтеся, як розподіляти роботу між агентами, у статті Розподіл роботи між агентами, і коли цього робити не варто, і як передавати роботу з критеріями в статті Розробка на основі специфікацій.

Джерела

Зв’язки опублікованих статей. Виберіть вузол, щоб відкрити статтю біля заголовка.

100%
→ Пов'язані статті← Посилаються сюди⋯ Та сама тема
Зв’язки статей · клавіатура / текст

💬 Коментарі

Коментарі публічні та модеруються. Не публікуйте персональні дані.
  • Коментарів ще немає. Будьте першим!

Наступні кроки

AI agents and MCP explained

Векторна база — це мапа, а не джерело: що ми з'ясували про пошук

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

AI agents and MCP explained

Коли невідомо, скільки коштував виклик моделі: заморожування, потім звіряння

Іноді виклик моделі перевищує час очікування, і ви не знаєте, чи провайдер списав кошти. Ніколи не записуйте це як нуль. Позначте витрату як непевну, зупиніть нові платні виклики й доручте названій людині звірити її з випискою провайдера. Виняток — відмови, що сталися до генерації.

AI agents and MCP explained

Розбиття великого завдання для дешевої моделі: урок про 24 000 байтів

Дешева модель добре дає раду з однією невеликою чітко окресленою роботою, але погано з великим нагромадженням. Ми обмежуємо завдання 24 000 байтами і відмовляємо більшим ще до виклику моделі. Діліть на одиниці — один файл або одна країна на завдання — і перевіряйте розмір до початку.

AI agents and MCP explained

Навички, інструменти MCP і правила: три способи дати агенту можливості

Агенти отримують можливості по-різному. Правило обмежує те, що вони роблять, навичка підказує, як виконати роботу, а інструмент MCP дозволяє викликати функцію. Кожен із трьох має власний ризик, тож фіксуйте всі три в реєстрі й перевіряйте тестом, що нічого не існує поза ним.