Skip to content

Хід агента ​

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

Що це таке ​

Хід — це кроки, з яких складається одна робота агента: від питання клієнта до відповіді.

У звичайного помічника крок один: подумав — відповів. Але кроків може бути кілька, і саме форма ходу відрізняє «бот, який відповідає» від «бот, який відповідає й перевіряє себе».

Кроки бувають трьох видів:

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

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

Готові форми ​

Створюючи агента, конструктор бере одну з готових заготовок — вона дає і характер, і форму ходу:

ЗаготовкаФормаКому
Помічник на сайтіодин крок: відповідає сам, кличе дії, коли требабільшості
Відповідь із перевіркоюдва кроки: один складає відповідь, другий її перечитуєтам, де ціна помилки висока
Фоновий працівникодин крок, без співрозмовника: результат кладе дієюдля роботи за розкладом

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

Коли варто змінити хід ​

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

Хай перед відповіддю перечитує себе й прибирає все, чого немає в матеріалах

Це коштує дорожче — і вам скажуть наперед ​

Кожен зайвий крок із моделлю — це ще одне звернення до моделі. Перед зміною конструктор покаже й що саме зміниться, і скільки це коштуватиме:

Цей граф — до 2 звернень до моделі на хід і приблизно до 40 с.

Тобто розмова стає приблизно вдвічі дорожчою. Ви бачите це до того, як сказали «так».

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

Що вміє крок-скрипт ​

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

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

Хай щоночі бере наш репозиторій, збирає звіт про залежності й кладе його в гілку reports

Ключів до репозиторію в вас не питають

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

Межі, які варто знати наперед:

  • середовище живе рівно один хід. Файл, створений цього разу, наступного разу вже немає — те, що має зберегтися, кладіть у репозиторій або віддавайте файлом;
  • інтернет у ньому обмежений. Доступні сховища пакетів і репозиторії, а не будь-яка адреса;
  • опубліковано буде лише те, що відпрацювало. Скрипт упав — у репозиторій не поїде нічого, і ви про це дізнаєтесь. Половина роботи під виглядом готової гірша за чесну поламку;
  • один крок має стелю часу — типово дві хвилини. Довше можна попросити, але не понад п’ять. Не встиг — його спиняють, і про це скажуть прямо: «не встиг» і «зламався» — різні відповіді, і лікують їх по-різному;
  • увесь фоновий хід — за розкладом чи тригером — має стелю п’ять хвилин. Кроки всередині нього ділять цей час між собою: довгий скрипт лишає менше решті ходу;
  • файл, який агент віддає, — до 25 МіБ. Більший не піде взагалі, а не поїде обрізаним: побитий файл із упевненим «готово» гірший за відмову.

Файл може отримати не тільки ви

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

Файли, які ви завантажили заздалегідь, — це інше й лежить окремо. Див. Що агент знає.

Зробити те саме з кожним ​

Найчастіша форма роботи, яку не опишеш одним кроком: «знайди все нове й обробі кожне».

Щодня шукай нові оголошення по моїх критеріях і оціни кожне окремо

Крок, позначений як перебірний, виконується один раз на елемент переліку — і це робить платформа, а не модель. Різниця в тому, що модель на сотому елементі вже не памʼятає першого, а платформа рахує: у журналі ходу стоїть «оброблено 137 із 137», а не «зроблено».

Що варто знати:

  • до 200 елементів за раз. Більше — відмова з підказкою звузити вибірку, а не мовчазне обрізання: «оброблено все» про третину роботи гірше за чесне «забагато»;
  • по чотири одночасно. Кожен елемент, який іде до моделі, — це окреме звернення й окремі кредити;
  • поламка одного елемента видна окремо. «Оброблено 340, з них 7 із помилкою» — а не «сталася помилка»;
  • джерело переліку — і записник. Перебирати можна не лише вихід сусіднього кроку, а й картки, які агент назбирав раніше: records:listing?status=нове. Так робота на тисячу елементів іде порціями по 100 — кожен запуск бере до ста карток, які ще не оброблені, якщо крок міняє стан картки (Що агент зібрав);
  • недороблене чутно. Якщо хід скінчився раніше, ніж перелік, це поламка в панелі, а не рядок у трасі: інакше вузол, що підсумовує, звітував би «оброблено все» про третину роботи.

Спитати вас і продовжити ​

Є рішення, які агент не бере на себе: брати обʼєкт чи ні, який із варіантів обрати, давати знижку. Для них у нього є третій спосіб звернутись до вас — окрім «дозволь дію» і «сповісти»:

Якщо не певен, чи обʼєкт вартий уваги, — спитай мене й чекай

Агент ставить питання, робить те, що від відповіді не залежить, і закінчує хід — він не висить, чекаючи. Ви бачите питання в панелі («Питає») і в сповіщенні, відповідаєте під самим питанням, словами конструктору («скажи йому: так, бери»), Reply на повідомлення в Telegram або просто відповіддю на лист, якщо в агента підключена пошта, — і агент продовжує окремим ходом, з вашою відповіддю на вході.

Він прокинеться без памʼяті тієї розмови, тому разом із питанням він записує, що збирався робити з відповіддю. Це видно поруч із питанням.

Питання протухає за тиждень

Відповідь через місяць — відповідь на те, чого вже немає. Протерміноване питання видно окремо, як «не дочекався», і про нього приходить сповіщення: ця робота стояла тиждень.

Повернутись до цього пізніше ​

Агент може відкласти разову роботу й повернутись до неї сам:

Опублікуй пост, а через добу зніми з нього метрики й скажи, що вийшло

Це не розклад: розклад будить агента щоразу, а тут він повертається один раз і до конкретного предмета. Саме цим агент починає бачити результат власної роботи — а не просто робити її.

У панелі це рядок Відкладено. Кожне відкладення можна подивитись і скасувати: там видно, що саме агент зробить і коли.

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

Якщо платформа не прокинулась вчасно

Прострочена робота не виконується й позначається окремо. «Нагадай сьогодні до 18:00», виконане о третій ночі, гірше за невиконане — тож ми показуємо це як нашу поламку, а не як зроблене.

Такий рядок не глухий кут: поруч стоїть Повторити, і робота ставиться заново словами самого агента — не переказаними вашими. У панелі це окремий рядок Не сталося.

Зміна ходу завжди питає ​

Це одна зі змін, які клієнти побачать одразу. Конструктор:

  1. подивиться, як хід влаштований зараз;
  2. скаже словами, що додасть, що прибере, що переставить;
  3. дочекається виразного «так»;
  4. і лише тоді змінить.

Передумали після — скажіть «скасуй», і хід повернеться як був.

Якщо стало гірше ​

Поверни хід як був

Поверни агента до того, як було вчора

Точки повернення знімаються самі перед кожною розмовою, у якій щось міняється. Див. Якщо вийшло не те.

Далі ​

Репетиція: перевірити без наслідків ​

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

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

Три речі, які варто знати:

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

І те саме для розкладу ​

Фоновий агент — той, кому репетиція потрібна найбільше. Він діє без людини поруч: коли о 9:00 він розішле двісті листів, дивитись на це буде нікому, а дізнатись заздалегідь, що саме він зробить, можна було лише дочекавшись девʼятої.

покажи, що зробить ранкове зведення

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

Робіть це щоразу після створення чи зміни розкладу. Конструктор і сам запропонує.

Через API — POST /v1/dashboard/bots/{id}/rehearse з {"message": "…"} для розмови або {"trigger_id": "…"} для розкладу; у відповіді answer і would_do.

Документація платформи YouSelfBot