Перейти до вмісту

@-згадувати агентів

Цей посібник показує, як @-згадувати агентів і колег у просторі.

Введіть @ у редакторі повідомлень і виберіть агента з автодоповнення або введіть ім’я вручну:

@alice fix the login bug

Згаданий агент додається до простору як учасник, якщо його там ще немає, і запускається з контекстом і режимом простору. Не згадані учасники бачать повідомлення, але не запускаються.

Якщо ви надсилаєте повідомлення без згадки агента, Control Center сам обирає того, хто відповість: агента, який говорив останнім у розмові; інакше — власника розмови, якщо він є; інакше — першого агента верхнього рівня серед учасників простору. У просторі з одним агентом це завжди єдиний агент.

Токен згадки зіставляється без урахування регістру, за точною назвою або префіксом. Тож @arch досягає агента на ім’я architect, а @Alice — alice.

Два наслідки, які варто врахувати заздалегідь:

  • Короткий токен — не помилка. Якщо два агенти мають спільний префікс, перемагає перший знайдений, і хто саме це буде, залежить від порядку — а не від якогось правила розв’язання нічиєї. Якщо назви збігаються, вживайте повне ім’я.
  • До токена входять лише літери, цифри й підкреслення. Парсер зіставляє @(\w+), тож @code-reviewer читається як токен code, а @my agent — як my. Агента, чия назва містить дефіс, крапку або пробіл, неможливо згадати надійно — зокрема через автодоповнення, яке вставляє ім’я як звичайний текст. Називайте агентів одним словом або з підкресленнями.

Згадки вилучаються з тексту, перш ніж він дійде до агента. Тож повідомлення, яке складається лише зі згадок (@alice), нічого не запускає — додайте йому якусь роботу.

@alice refactor the auth module. @bob write tests for it.

Обидва агенти запускаються паралельно в ту саму розмову, і обидва отримують повне повідомлення.

Вони також спільно використовують worktree цього простору. Worktree репозиторіїв готуються на рівні простору, а не агента; кожен агент отримує власний overlay-робочий каталог для свого AGENTS.md, навичок і конфігурації, а спільні репозиторії під’єднано з правом читання й запису. Тож два агенти, згадані разом, бачать правки одне одного — і можуть конфліктувати з ними.

Будь-який @token, що не збігається з агентом, перевіряється проти людей-учасників робочого простору, за псевдонімом, за тим самим правилом: без урахування регістру, точна назва або префікс.

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

Імена агентів завжди перевіряються першими, і токен, який уже належить агенту, ніколи не пропонується списку учасників — один @word може розпізнаватися лише як один принципал.

Запущений агент отримує у своєму промпті блок «Summons», який називає того, хто його викликав, і перелічує склад простору — інших агентів (позначених як агент верхнього рівня або підлеглий) і людей-учасників — щоб він знав, кому може передати роботу. Блок також каже йому, що згадка іншого агента у відповіді пробуджує того агента, а згадка себе — ігнорується.

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

Правила навмисно суворіші, ніж у редакторі повідомлень, бо ніхто не стежить, щоб виправити хибне припущення:

  • Лише точні назви. Без зіставлення за префіксом. @arch досягає architect, коли його вводить людина; від агента він не досягає нікого. Ім’я, яке збігається з двома агентами, теж не досягає нікого.
  • Код — не проза. Згадки всередині блоків у потрійних лапках або `backticks` ігноруються, тож цитувати анотацію @Override чи pip install foo@1.2 безпечно. Незакритий блок стирає все після себе.
  • @, приліплений до попереднього токена, — не згадка — sam@host.com, pkg/@scope і node@20 не розпізнаються ніким.
  • Дефіси зберігаються, тож @code-reviewer розпізнається як він сам, а не як токен code.
  • Щонабільше три агенти на хід. Агент, який перелічує шістьох колег у підсумку, саме перелічує їх, а не викликає.

Ланцюг пробуджень обмежено так само, як делегування: глибина 3, і агента, який уже в ланцюзі, він не може розбудити знову (жодного A → B → A). Впорядковану пару також обмежено за частотою між ланцюгами. Відмовлене пробудження публікує в розмові системне повідомлення про те, яка згадка не дійшла і чому — а нерозпізнане ім’я цього не робить, бо інакше будь-який @ у реченні розповідав би сам про себе.

Для передачі роботи, яка не повинна залежати від прози — запит/відповідь або досягнення агента поза простором, — натомість використовуйте інструменти send_to_agent, ask_agent і delegate_task.