Агентский доступ

Агентский доступ позволяет ИИ-агенту работать с Gigma через обычный API управления: читать разрешённые данные, готовить сводки и выполнять подтверждённые операции.

Для агента создаётся отдельная техническая учётная запись и Agent Token. Доступ ограничивается проектом, ролью, правами учётной записи и списком методов, разрешённых на вашем агентском сервере.

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

Что вы настроите

После подключения агент сможет:

  • отправить запрос владельцу проекта;
  • получить первый Agent Token без ручной передачи через чат или письмо;
  • проверить фактически выданные права;
  • вызывать только заранее разрешённые методы Gigma;
  • безопасно остановиться, если токен отозван или действие запрещено.

Кто что делает

УчастникЗадача
Агентский клиентсоздаёт запрос доступа, сохраняет request_token, проверяет статус и один раз получает Agent Token
Владелец или администратороткрывает ссылку из письма, проверяет назначение агента и одобряет только нужные права
Агентский серверхранит Agent Token, применяет строгие схемы инструментов и вызывает обычные /api/* методы
Gigmaсоздаёт учётную запись агента, проверяет проект и права, выдаёт и отзывает токены

Быстрый старт

Шаг 1. Определите минимальные права

Для первого подключения используйте профиль только для чтения:

[
	"view-orders",
	"view-counterparties"
]

Не запрашивайте права «на будущее». Владелец может одобрить только подмножество запрошенных permissions, но не может расширить запрос.

Шаг 2. Агент создаёт запрос

POST /api/agent-access-requests HTTP/1.1
Host: api.gigma.ru
Content-Type: application/json
Accept: application/json
{
	"owner_email": "owner@example.com",
	"agent_name": "Order Assistant",
	"agent_login": "agent-order-assistant",
	"permissions": [
		"view-orders",
		"view-counterparties"
	],
	"purpose": "Читать заказы и готовить сводки"
}

Сразу сохраните request.public_id и request.request_token. Они нужны для проверки статуса и получения первого токена.

Полный сценарий, ответы и обработка ошибок описаны на странице Подключение агента.

Шаг 3. Владелец подтверждает доступ

Gigma отправляет письмо человеку, чей login совпадает с owner_email и который имеет право одобрить запрос. Владелец проверяет имя, назначение и permissions, затем одобряет или отклоняет запрос.

Пока решение не принято, агентский клиент опрашивает POST /api/agent-access-requests/{publicId}/status.

Шаг 4. Агент один раз получает токен

После статуса approved агентский клиент вызывает POST /api/agent-access-requests/{publicId}/consume.

agent_token.value возвращается только один раз. Сохраните его в хранилище секретов до завершения операции. Повторный consume подтвердит состояние consumed, но не вернёт секрет снова.

Шаг 5. Проверьте подключение

Проверить Agent Token

Метод
GET
URL
https://api.gigma.ru/api/user
Авторизация
Agent Bearer
Headers
Accept: application/json; Authorization: Bearer {agent_token}
Успешный ответ
200

Отправьте полученный Agent Token. Ответ показывает текущую роль, филиал, состояние блокировки и права учётной записи.

Пример запроса

GET /api/user HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <agent_token>
Accept: application/json

Ответ

Сокращённый пример:

{
	"user": {
		"id": 214,
		"login": "agent-order-assistant",
		"first_name": "Order Assistant",
		"branch": null,
		"department": null,
		"is_banned": false,
		"permissions": [
			{
				"name": "view-orders"
			},
			{
				"name": "view-counterparties"
			}
		],
		"last_activity_at": null
	}
}

GET /api/user не возвращает is_agent и project_id. Ожидаемый проект и тип подключения храните в собственной конфигурации, сформированной во время выдачи доступа.

Ошибки

  • 401 — токен недействителен, истёк или отозван;
  • 403 — запрос остановлен middleware или policy.

При 401 прекратите остальные запросы. Не пытайтесь автоматически получить новый токен через вход сотрудника: учётная запись агента не поддерживает одноразовый пароль.

Настройте рабочие методы

Agent Token используется не в отдельном «агентском API», а в обычных методах Gigma. Агентский сервер должен разрешать конкретные пары HTTP method + path.

Рекомендуемый профиль только для чтения

ЗадачаМетоды
Проверить подключениеGET /api/user
Получить заказыGET /api/orders, GET /api/tables/orders, GET /api/orders/{order}
Получить состав заказаGET /api/tables/orders/{order}/nomenclatures, GET /api/tables/orders/{order}/files
Получить историю заказаGET /api/orders/{order}/history
Получить клиентовGET /api/counterparties, GET /api/tables/counterparties, GET /api/counterparties/{counterparty}
Получить справочникитолько нужные GET-методы, например order_statuses, delivery_types, sales_channels, vats

Полные параметры и ответы находятся в разделах Заказы и исполнение и Клиенты и контрагенты.

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

Операции записи

Начинайте с чтения. Записывающий инструмент подключайте отдельно, только когда:

  1. нужное право существует и назначено учётной записи агента;
  2. метод проверен на данных текущего и чужого проекта;
  3. инструмент использует фиксированную схему запроса;
  4. человек видит итоговые method, path и JSON;
  5. выполнение требует явного подтверждения;
  6. после записи сервер повторно читает объект и сверяет результат.

POST /api/orders/calculator выполняет расчёт и не создаёт бизнес-сущность. Его можно подключить раньше остальных записывающих инструментов, но payload всё равно должен проходить строгую схему.

Не повторяйте автоматически POST, PATCH или DELETE после timeout, 401, 403, 404, 409 или 422.

Что не включать в обычный профиль

ОбластьПричина
Универсальный HTTP- или curl-проксимодель сможет выбрать любой URL, method и payload
Управление агентами и токенамиэто административная поверхность; выпуск и отзыв токенов выполняет человек
Приложения и webhooksтекущие application responses могут содержать App Token и интеграционные настройки
Сотрудникиответы содержат персональные и кадровые данные
Задачиотдельные detail и update routes пока не имеют достаточной object-level проверки
Остатки: detail и writeотдельные операции Inventory пока не применяют resource policy
Вложенные контакты и история контрагентатекущие nested routes требуют дополнительного scope-hardening

Для отдельного специализированного агента сначала проверьте соответствующий controller, policy, response и отрицательный сценарий на объект другого проекта.

Обязательные правила агентского сервера

Точный список разрешённых методов

Храните фиксированные пары:

GET /api/orders
GET /api/orders/{order}

Не принимайте от модели готовый URL или HTTP-метод.

Строгая схема

Удаляйте неизвестные поля. Не используйте 0 вместо отсутствующего ID: middleware может преобразовать его в null. Отправляйте null только для полей, где инструмент явно поддерживает очистку.

Секреты

Не передавайте в логи, аналитику и контекст модели:

  • Agent Token;
  • request_token;
  • approval_token;
  • ответ первого consume;
  • App Token приложения.

Один профиль — одна учётная запись

Разные токены одной учётной записи агента используют одни и те же роль и права. Отдельный токен подходит для ротации или второй установки, но не изолирует полномочия. Для другого набора прав создайте отдельного агента.

Выберите задачу

ЗадачаСтраница
Агент сам начинает подключение и получает первый токенПодключение агента
Владелец создаёт агента вручную, меняет права или ротирует токенУправление агентами и токенами
Настроить методы заказовЗаказы и исполнение
Настроить методы клиентовКлиенты и контрагенты
Проверить общие правила ошибок и повторовПравила API

Если токен потерян или истёк

Значение Agent Token нельзя прочитать повторно. Человек с permission manage-agent-tokens выпускает новый токен, проверяет его через GET /api/user, переводит агентский сервер на новый секрет и отзывает старый.