Подключения агента

Явная связь агента с коннектором и политики поверх неё

Агент получает доступ к инструментам коннектора только при явной связи коннектора с этим агентом. Пока связи нет, инструментов подключения для агента не существует: обращение отклоняется до того, как платформа пойдёт во внешний сервис. После связывания для агента настраиваются индивидуальные политики доступа к инструментам коннектора и его триггерам.

Связь заводится на странице агента, вкладка «Подключения» → «Добавить подключение». Она живёт отдельно у каждого агента: одно и то же подключение может быть открыто одному и закрыто другому. Внутренние возможности платформы (память, доска, таблицы) существуют в одном экземпляре на пользователя и открываются вместе с навыками, которые их требуют.

Связи мало, чтобы инструменты дошли до агента. В его контекст они попадают через навыки, поэтому подключение, на которое не ссылается ни один навык агента, помечается «Не используется» — его инструменты агенту не отдаются.

Из чего состоит политика

  • Тип — тул или триггер. Типы считаются отдельно: правило для тулов ничего не говорит о триггерах, и наоборот.
  • Имя — конкретный тул или триггер. Пустое имя («Все (весь коннектор)») применяет правило ко всему подключению.
  • ЭффектALLOW или DENY.
  • Фильтр параметров — необязательный плоский JSON-объект «путь параметра → ожидаемое значение»: правило сработает только на вызове с такими аргументами.

Правило с точным именем выигрывает у правила на весь коннектор. На этом и строятся оба способа настройки ниже.

Всё разрешено, кроме перечисленного

Пока политик нет, связанное подключение разрешено целиком — все его тулы и все триггеры. Добавьте DENY на отдельные имена, и останется всё, кроме них.

Так удобно, когда закрыть нужно две-три опасные операции: удаление, отправку наружу, списание денег. Новый тул, который появится у коннектора завтра, при этом окажется разрешён — вы запрещали не его.

Всё запрещено, за исключением перечисленного

Обратный порядок, если агенту нужен узкий набор:

  1. Заведите правило на весь коннектор — имя пустое, тип «Тул», эффект DENY.
  2. Добавьте ALLOW на каждое имя, которое агенту действительно нужно.

Точное имя перебивает правило на весь коннектор, поэтому получится белый список: ничего, кроме названного. Новый тул коннектора в него сам не попадёт — в этом и смысл.

Триггеры закрываются такой же парой правил с типом «Триггер»: одно правило на весь коннектор не закрывает оба типа сразу.

Когда политика проверяется

До обращения к внешнему сервису. Запрещённый вызов туда не уходит вовсе, а агент получает отказ и пишет о нём в ответе.

Забрать доступ

«Удалить подключение» на вкладке снимает связь, и агент теряет доступ к коннектору. Политики этой связи удаляются вместе с ней — если потом открыть подключение снова, ограничения придётся завести заново.

Что остаётся в журнале

Каждый вызов инструмента — строка в журнале: что агент вызвал, с какими параметрами, что ответил сервис и не отклонила ли вызов политика. Отказы видно на вкладке «Вызовы инструментов» агента и в общем разделе «Логи инструментов».