@-упоминания агентов
В этом руководстве рассказано, как @-упоминать агентов и коллег в пространстве.
Упомянуть агента
Заголовок раздела «Упомянуть агента»Введите @ в поле ввода и выберите агента из автодополнения или наберите имя
сами:
@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 репозиториев
подготавливаются на пространство, а не на агента; каждый агент получает
собственный рабочий каталог-оверлей для своего AGENTS.md, навыков и
конфигурации, а общие репозитории подключены в него для чтения и записи. Поэтому
два упомянутых вместе агента видят правки друг друга — и могут с ними
столкнуться.
Упомянуть коллегу
Заголовок раздела «Упомянуть коллегу»Любой @token, не совпавший с агентом, проверяется по участникам-людям рабочего
пространства — по нику, с тем же правилом точного совпадения или префикса без
учёта регистра.
Разрешённое упоминание человека никого не запускает. Оно передаётся в метаданных сообщения только для того, чтобы маршрутизатор уведомлений мог оповестить этого человека.
Имена агентов всегда проверяются первыми, и токен, занятый агентом, никогда не
предлагается списку участников, — один @word может разрешиться только в одного
субъекта.
Что получает агент
Заголовок раздела «Что получает агент»Запущенный агент получает в своём промпте блок «Summons», в котором названо, кто его вызвал, и перечислен состав пространства — другие агенты (помеченные как агенты верхнего уровня или дочерние) и участники-люди, — чтобы он знал, кому может передать работу. В блоке также сказано, что упоминание другого агента в его ответе пробуждает этого агента, а упоминание самого себя игнорируется.
Когда агент упоминает агента
Заголовок раздела «Когда агент упоминает агента»Агент может передать работу в собственном ответе. Когда ход завершается чисто, упоминания в его тексте разрешаются, и эти агенты добавляются в пространство и запускаются в тот же разговор, а их промптом становится упомянувший их ход. Ход, который завершился сбоем или был прерван, никого не пробуждает — он остановился на середине мысли.
Правила намеренно строже, чем у поля ввода, потому что за исправлением ошибочной догадки никто не следит:
- Только точные имена. Совпадения по префиксу нет.
@archдоходит доarchitect, когда его набирает человек; от агента он не доходит ни до кого. Имя, совпадающее с двумя агентами, тоже не доходит ни до кого. - Код — не текст. Упоминания внутри блоков кода или в
`обратных кавычках`игнорируются, поэтому цитировать аннотацию@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.