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

Спілкуватися з агентом

Цей посібник показує, як працювати з агентом у просторі.

  1. Перейдіть до Простори на бічній панелі
  2. Натисніть кнопку + поряд із заголовком «Простори»
  3. Введіть назву — це обов’язково. Порожню назву відхилено; діалог залишається відкритим
  4. За бажанням додайте агентів із робочого простору
  5. Якщо в робочому просторі є хоч один репозиторій, з’являється вибір репозиторіїв. Спочатку вибрано всі репозиторії; звузьте вибір (зокрема знявши позначку з окремого репозиторію) до тих, для яких цей простір має готувати worktree
  6. Підтвердьте

Control Center відкриває простір і у фоновому режимі починає готувати по одному worktree з copy-on-write для кожного вибраного репозиторію.

Введіть повідомлення в редакторі повідомлень і натисніть Enter. Агента запущено, і він починає потоково передавати свою відповідь.

Якщо простір ще готується, ваше повідомлення не втрачається, а притримується — редактор повідомлень тримає його й надсилає автоматично, щойно завершиться підготовка worktree.

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

Поки агент працює, звичайний розмовний текст не ставить новий хід у чергу. Він стає карткою коригування в черзі на смузі над редактором повідомлень і вставляється в активний запуск на наступній межі ходу. Жодного спливного повідомлення немає — сама картка і є зворотним зв’язком.

Три речі змінюють цю поведінку:

  • Повідомлення з @-згадкою завжди надсилається як повідомлення, ніколи як коригування
  • Повідомлення, що починається зі slash-команди, завжди обробляється як ця команда
  • Повідомлення з вкладенням завжди надсилається як повідомлення — черга коригування приймає лише текст
  • Якщо всі активні запуски вже завершилися, текст проходить далі й надсилається як звичайне повідомлення

Коли агент натрапляє на дію, яку пропускають через обмеження — руйнівну команду, привілейований інструмент — сервер блокує запуск і публікує запит на схвалення всім під’єднаним клієнтам. Якщо в цей момент у вас відкрито цю розмову, запит з’являється у чаті, над редактором повідомлень, у вигляді тієї самої картки з пронумерованими варіантами, що й для ask_user (відхилити, схвалити і, за бажанням, схвалити на 8 годин). Пропустити не можна: заблокований агент чекає на рішення.

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

Тут немає тайм-ауту: заблокований агент чекає, доки хтось ухвалить рішення. Той самий запит також з’являється на смузі уваги у «Вхідних» і в мобільному клієнті.

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

Торкніться одного варіанта, щоб надіслати його (кінцева цифра перетворюється на стрілку під час наведення). Для вибору кількох варіантів і введених відповідей використовуйте Продовжити (⌘↵ / Ctrl↵). Пропустити каже агенту вибрати розумний типовий варіант і більше не питати.

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

Поки запуски тривають, кнопка надсилання в редакторі повідомлень стає кнопкою Зупинити. Очистьте редактор і натисніть її — це зупиняє всіх агентів, які працюють у цій розмові.

У заголовку простору немає елемента керування зупинкою, як і гарячої клавіші для неї. Щоб зупинити лише один запуск, коли їх триває кілька, відкрийте вкладку активності цього запуску — у її заголовку є призупинення/відновлення й зупинка в межах запуску (зупинка просить підтвердження). Спостережуваність → Наживо перелічує кожного агента, який працює в робочому просторі, з тим самим елементом керування.

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

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

Команда Що вона робить
/plan Перемикає простір у режим плану. Сам /plan лише вмикає режим; /plan <request> вмикає його й надсилає решту як ваше повідомлення
/goal <text> Записує робочу ціль розмови
/loop <text> Ітерує завдання, доки його не завершено
/compact Згортає старішу історію в закріплений підсумок і продовжує на стисненому контексті
/todo … Переглядає та редагує збережений список завдань цієї розмови

Навички з’являються в тому самому списку у власному просторі назв skill:, тож вони ніколи не збігаються з командами вище — навичка з назвою plan чи compact залишається доступною:

Команда Що виконується
/skill:<name> Навичка, встановлена в робочому просторі або прикріплена до агента
/skill:<repo>:<name> Навичка, яку постачає один із репозиторіїв, вивантажених у цьому просторі

Навички репозиторію позначено значком того репозиторію, з якого вони походять, бо сама назва не каже, чиї домовленості вона відображає, а два репозиторії можуть кожен постачати навичку testing. Щоб знайти таку навичку, не потрібно вводити префікс: введення самої назви навички також збігається із записами з простором назв.

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

/compact і /todo перехоплює клієнт, і вони ніколи не зберігаються як повідомлення — рядок /compact у транскрипті відсунув би межу наступної компакції на один хід назад. /plan перемикає збережений режим простору, а не подорожує як текст. Тож жодна з цих трьох не є «повідомленням, яке ви надсилаєте агенту»; не сподівайтеся побачити їх в історії.

Перед складною зміною перемкніть простір у режим плану за допомогою /plan, випадаючого списку режимів на панелі інструментів редактора повідомлень або Shift+Tab. Тоді агент досліджує в режимі лише для читання й видає типізований план, який ви схвалюєте, перш ніж почнеться будь-яка робота. Див. Використовувати режим плану.

Дістаньтеся агента без окремого простору

Розділ із назвою «Дістаньтеся агента без окремого простору»

Вам не потрібен окремий простір для кожного агента. У будь-якому просторі:

@alice can you look at the failing tests in src/auth_test.dart?

Згаданого агента додають до простору й запускають із контекстом цього простору. Про те, як зіставляються імена, див. @-згадувати агентів.