Методы API агентов

В данном разделе описываются доступные методы для работы с агентами Аммы.

Через методы API агентов интеграция может создавать своих агентов в аккаунте, получать список агентов, изменять их параметры, а также удалять их из аккаунта. О том, что такое агенты Аммы и как с ними работать в аккаунте, читайте в статье Возможности агентов Аммы.

Интеграция идентифицируется посредством проверки переданного Access Token в заголовке Authorization: Bearer ACCESS_TOKEN.

Оглавление

Требования к работе с API агентов

Для работы с API агентов у интеграции должен быть установлен scope – Амма. Подробнее об ограничениях выдачи этого доступа читайте в статье Разрешения и доступы.

Работа с агентами доступна в аккаунтах, где доступна Амма. Если на аккаунте Амма недоступна, любой метод API агентов вернёт ошибку 402.

Лимиты:

  • не более 2 агентов от одной интеграции в аккаунте;
  • не более 10 агентов в аккаунте суммарно по всем интеграциям;
  • выключенные агенты учитываются в лимитах наравне с активными.

Добавление агентов

Метод

POST /api/v4/amma/agents

Описание

Метод позволяет добавлять агентов в аккаунт пакетно.

При создании агента проверяется корректность адреса MCP-сервера. Требования к адресу описаны в статье Возможности агентов Аммы.

Ограничения

Метод доступен только интеграциям.
Метод доступен интеграциям, у которых установлен scope – Амма.
Одна интеграция может создать не более 2 агентов в аккаунте.
В аккаунте может быть не более 10 агентов суммарно по всем интеграциям.

Заголовок запроса

Content-Type: application/json

Параметры запроса

Метод принимает массив агентов. Обязательные поля – name, description, system_prompt и mcp[url].

Параметр Тип данных Описание
name string Название агента, которое видит пользователь. Длина поля до 255 символов. Обязательный параметр
description string Описание агента для пользователя. Длина поля до 1024 символов. Обязательный параметр
ai_instructions string Инструкции для Аммы: когда ей следует передать запрос этому агенту. Длина поля до 1024 символов. Если не заданы, Амма принимает решение по описанию
system_prompt string Системный промпт агента – его характер и правила работы. Длина поля до 10000 символов. Обязательный параметр
avatar string Ссылка на изображение агента. Длина поля до 2048 символов
model_size string Уровень модели агента. Чем сложнее задачи агента, тем выше уровень. Доступные значения – S, M, L. Значение по умолчанию – M
mcp object Параметры MCP-сервера агента. Обязательный параметр
mcp[url] string Адрес MCP-сервера. Поддерживается только схема https. Длина поля до 2048 символов. Обязательный параметр
mcp[transport] string Транспорт MCP. Доступные значения – streamable-http, sse. Значение по умолчанию – streamable-http
mcp[headers] object Заголовки, которые amoCRM будет отправлять в запросах к MCP-серверу. Имя заголовка – до 128 символов, значение – до 1024 символов
is_active bool Активен ли агент. Значение по умолчанию – true

Требования к изображению в avatar: размер до 2 МБ, MIME-тип image/*. Ссылка должна использовать схему https, а её хост – быть публичным, как и адрес MCP-сервера. Изображение загружается в amoCRM, поэтому в ответе возвращается ссылка на файл в amoCRM, а не исходная ссылка.

Если изображение не удалось загрузить — оно недоступно, не является картинкой или превышает лимит размера, — метод вернёт ошибку 400, и агент не будет создан или изменён.

Агенты создаются целиком: если хотя бы один агент из массива не прошёл проверку, ни один агент не будет создан.

Если тело запроса не прошло валидацию, метод вернёт ошибку 400.

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

[
  {
    "name": "Помощник по записям",
    "description": "Проверяет записи клиентов и подсказывает свободные слоты",
    "ai_instructions": "Передавай этому агенту вопросы о записи клиента, расписании и свободных слотах",
    "system_prompt": "Ты — ассистент по онлайн-записи. Помогаешь проверить запись клиента и найти свободное время.",
    "avatar": "https://cdn.partner.com/agents/booking.png",
    "model_size": "M",
    "mcp": {
      "url": "https://mcp.partner.com/booking",
      "transport": "streamable-http",
      "headers": {
        "X-Partner-Key": "ваш ключ"
      }
    },
    "is_active": true
  }
]

Заголовок типа данных при успешном результате

Content-Type: application/json

Заголовок типа данных при ошибке

Content-Type: application/json

HTTP коды ответа

Код ответа Условие
201 Агенты успешно созданы
400 Переданы некорректные данные, превышен лимит агентов или не удалось загрузить изображение. Подробности доступны в теле ответа
401 Неудачная аутентификация
402 На аккаунте недоступна Амма
403 У интеграции нет scope Амма

Параметры ответа

Метод возвращает коллекцию созданных агентов.

Параметр Тип данных Описание
id string UUID агента
name string Название агента
description string Описание агента для пользователя
system_prompt string Системный промпт агента
ai_instructions string Инструкции для Аммы
avatar string Ссылка на изображение агента в amoCRM
model_size string Уровень модели агента. Возможные значения – S, M, L
mcp object Параметры MCP-сервера агента
mcp[url] string Адрес MCP-сервера
mcp[transport] string Транспорт MCP
mcp[has_headers] bool Признак того, что для MCP-сервера заданы заголовки. Сами заголовки не возвращаются
is_active bool Активен ли агент
client_uuid string UUID интеграции, создавшей агента
created_by int ID пользователя, от имени которого агент создан
created_at int Дата создания агента, передаётся в Unix Timestamp
updated_at int Дата последнего изменения агента, передаётся в Unix Timestamp

Пример ответа

{
  "_total_items": 1,
  "_embedded": {
    "agents": [
      {
        "id": "b1f2c3d4-0000-4a5b-8c9d-000000000001",
        "name": "Помощник по записям",
        "description": "Проверяет записи клиентов и подсказывает свободные слоты",
        "system_prompt": "Ты — ассистент по онлайн-записи. Помогаешь проверить запись клиента и найти свободное время.",
        "ai_instructions": "Передавай этому агенту вопросы о записи клиента, расписании и свободных слотах",
        "avatar": "https://drive-b.amocrm.ru/download/aff5603a-28b1-4c17-8e98-16e473b323b3/367b9f38-5f01-4cea-947e-dfab47aea522/avatar.png",
        "model_size": "M",
        "mcp": {
          "url": "https://mcp.partner.com/booking",
          "transport": "streamable-http",
          "has_headers": true
        },
        "is_active": true,
        "client_uuid": "a0c11111-2222-4333-8444-555566667777",
        "created_by": 123456,
        "created_at": 1753305600,
        "updated_at": 1753305600,
        "_links": {
          "self": {
            "href": "https://example.amocrm.ru/api/v4/amma/agents/b1f2c3d4-0000-4a5b-8c9d-000000000001"
          }
        }
      }
    ]
  }
}

Список агентов

Метод

GET /api/v4/amma/agents

Описание

Метод позволяет получить список агентов, созданных вашей интеграцией.

Ограничения

Метод доступен только интеграциям.
Метод доступен интеграциям, у которых установлен scope – Амма.

GET параметры

Параметр Тип данных Описание
page int Страница выборки, целое число от 1. Значение по умолчанию – 1
limit int Количество агентов в ответе, целое число от 1 до 50. Значение по умолчанию – 50

Заголовок типа данных при успешном результате

Content-Type: application/json

Заголовок типа данных при ошибке

Content-Type: application/json

HTTP коды ответа

Код ответа Условие
200 Запрос выполнен успешно
204 Выборка пуста: у интеграции нет агентов либо запрошенная страница за пределами выборки
400 Переданы некорректные значения page или limit
401 Неудачная аутентификация
402 На аккаунте недоступна Амма
403 У интеграции нет scope Амма

Параметры ответа

Метод возвращает коллекцию агентов, рассмотрим ниже свойства агента.

Параметр Тип данных Описание
id string UUID агента
name string Название агента
description string Описание агента для пользователя
avatar string Ссылка на изображение агента в amoCRM
model_size string Уровень модели агента. Возможные значения – S, M, L
mcp object Параметры MCP-сервера агента
mcp[url] string Адрес MCP-сервера
mcp[transport] string Транспорт MCP
mcp[has_headers] bool Признак того, что для MCP-сервера заданы заголовки. Сами заголовки не возвращаются
is_active bool Активен ли агент
client_uuid string UUID интеграции, создавшей агента
created_at int Дата создания агента, передаётся в Unix Timestamp
updated_at int Дата последнего изменения агента, передаётся в Unix Timestamp

Свойства system_prompt, ai_instructions и created_by в списке не возвращаются – получить их можно методом получения агента по ID.

Пример ответа

{
  "_total_items": 1,
  "_page": 1,
  "_page_count": 1,
  "_links": {
    "self": {
      "href": "https://example.amocrm.ru/api/v4/amma/agents?page=1&limit=50"
    }
  },
  "_embedded": {
    "agents": [
      {
        "id": "b1f2c3d4-0000-4a5b-8c9d-000000000001",
        "name": "Помощник по записям",
        "description": "Проверяет записи клиентов и подсказывает свободные слоты",
        "avatar": "https://drive-b.amocrm.ru/download/aff5603a-28b1-4c17-8e98-16e473b323b3/367b9f38-5f01-4cea-947e-dfab47aea522/avatar.png",
        "model_size": "M",
        "mcp": {
          "url": "https://mcp.partner.com/booking",
          "transport": "streamable-http",
          "has_headers": true
        },
        "is_active": true,
        "client_uuid": "a0c11111-2222-4333-8444-555566667777",
        "created_at": 1753305600,
        "updated_at": 1753305600,
        "_links": {
          "self": {
            "href": "https://example.amocrm.ru/api/v4/amma/agents/b1f2c3d4-0000-4a5b-8c9d-000000000001"
          }
        }
      }
    ]
  }
}

Получение агента по ID

Метод

GET /api/v4/amma/agents/{id}

Описание

Метод позволяет получить агента по его UUID. В отличие от списка агентов, этот метод дополнительно возвращает системный промпт агента, инструкции для Аммы и ID пользователя, от имени которого агент создан.

Ограничения

Метод доступен только интеграциям.
Метод доступен интеграциям, у которых установлен scope – Амма.

Заголовок типа данных при успешном результате

Content-Type: application/json

Заголовок типа данных при ошибке

Content-Type: application/json

HTTP коды ответа

Код ответа Условие
200 Запрос выполнен успешно
401 Неудачная аутентификация
402 На аккаунте недоступна Амма
403 У интеграции нет scope Амма
404 Агент не найден

Параметры ответа

Метод возвращает модель агента, рассмотрим ниже её свойства.

Параметр Тип данных Описание
id string UUID агента
name string Название агента
description string Описание агента для пользователя
system_prompt string Системный промпт агента
ai_instructions string Инструкции для Аммы
avatar string Ссылка на изображение агента в amoCRM
model_size string Уровень модели агента. Возможные значения – S, M, L
mcp object Параметры MCP-сервера агента
mcp[url] string Адрес MCP-сервера
mcp[transport] string Транспорт MCP
mcp[has_headers] bool Признак того, что для MCP-сервера заданы заголовки. Сами заголовки не возвращаются
is_active bool Активен ли агент
client_uuid string UUID интеграции, создавшей агента
created_by int ID пользователя, от имени которого агент создан
created_at int Дата создания агента, передаётся в Unix Timestamp
updated_at int Дата последнего изменения агента, передаётся в Unix Timestamp

Пример ответа

{
  "id": "b1f2c3d4-0000-4a5b-8c9d-000000000001",
  "name": "Помощник по записям",
  "description": "Проверяет записи клиентов и подсказывает свободные слоты",
  "system_prompt": "Ты — ассистент по онлайн-записи. Помогаешь проверить запись клиента и найти свободное время.",
  "ai_instructions": "Передавай этому агенту вопросы о записи клиента, расписании и свободных слотах",
  "avatar": "https://drive-b.amocrm.ru/download/aff5603a-28b1-4c17-8e98-16e473b323b3/367b9f38-5f01-4cea-947e-dfab47aea522/avatar.png",
  "model_size": "M",
  "mcp": {
    "url": "https://mcp.partner.com/booking",
    "transport": "streamable-http",
    "has_headers": true
  },
  "is_active": true,
  "client_uuid": "a0c11111-2222-4333-8444-555566667777",
  "created_by": 123456,
  "created_at": 1753305600,
  "updated_at": 1753305600,
  "_links": {
    "self": {
      "href": "https://example.amocrm.ru/api/v4/amma/agents/b1f2c3d4-0000-4a5b-8c9d-000000000001"
    }
  }
}

Редактирование агента

Метод

PATCH /api/v4/amma/agents/{id}

Описание

Метод позволяет изменить параметры агента. Передавайте только те свойства, которые нужно изменить.

Изменить можно свойства name, description, ai_instructions, system_prompt, avatar, model_size, mcp и is_active.

Свойство mcp заменяется целиком. Если передать mcp без заголовков, ранее заданные заголовки будут удалены.

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

Ограничения

Метод доступен только интеграциям.
Метод доступен интеграциям, у которых установлен scope – Амма.

Заголовок запроса

Content-Type: application/json

Параметры запроса

Обязательные поля отсутствуют, тело запроса должно содержать хотя бы одно изменяемое свойство.

Параметр Тип данных Описание
name string Название агента, которое видит пользователь. Длина поля до 255 символов. Очистить нельзя
description string Описание агента для пользователя. Длина поля до 1024 символов. Очистить нельзя
ai_instructions string Инструкции для Аммы: когда ей следует передать запрос этому агенту. Длина поля до 1024 символов. Чтобы очистить, передайте пустую строку
system_prompt string Системный промпт агента – его характер и правила работы. Длина поля до 10000 символов. Очистить нельзя
avatar string Ссылка на изображение агента. Длина поля до 2048 символов. Чтобы очистить, передайте пустую строку
model_size string Уровень модели агента. Доступные значения – S, M, L
mcp object Параметры MCP-сервера агента. Заменяется целиком
mcp[url] string Адрес MCP-сервера. Поддерживается только схема https. Длина поля до 2048 символов. Обязательный параметр при передаче mcp
mcp[transport] string Транспорт MCP. Доступные значения – streamable-http, sse. Значение по умолчанию – streamable-http
mcp[headers] object Заголовки, которые amoCRM будет отправлять в запросах к MCP-серверу. Имя заголовка – до 128 символов, значение – до 1024 символов
is_active bool Активен ли агент

Требования к изображению в avatar: размер до 2 МБ, MIME-тип image/*. Ссылка должна использовать схему https, а её хост – быть публичным, как и адрес MCP-сервера. Изображение загружается в amoCRM, поэтому в ответе возвращается ссылка на файл в amoCRM, а не исходная ссылка.

Если изображение не удалось загрузить — оно недоступно, не является картинкой или превышает лимит размера, — метод вернёт ошибку 400, и агент не будет изменён.

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

{
  "model_size": "L",
  "system_prompt": "Обновлённый системный промпт агента.",
  "is_active": false
}

Заголовок типа данных при успешном результате

Content-Type: application/json

Заголовок типа данных при ошибке

Content-Type: application/json

HTTP коды ответа

Код ответа Условие
200 Агент успешно изменён
400 Переданы некорректные данные или не удалось загрузить изображение. Подробности доступны в теле ответа
401 Неудачная аутентификация
402 На аккаунте недоступна Амма
403 У интеграции нет scope Амма
404 Агент не найден

Параметры ответа

Метод возвращает модель изменённого агента, рассмотрим ниже её свойства.

Параметр Тип данных Описание
id string UUID агента
name string Название агента
description string Описание агента для пользователя
system_prompt string Системный промпт агента
ai_instructions string Инструкции для Аммы
avatar string Ссылка на изображение агента в amoCRM
model_size string Уровень модели агента. Возможные значения – S, M, L
mcp object Параметры MCP-сервера агента
mcp[url] string Адрес MCP-сервера
mcp[transport] string Транспорт MCP
mcp[has_headers] bool Признак того, что для MCP-сервера заданы заголовки. Сами заголовки не возвращаются
is_active bool Активен ли агент
client_uuid string UUID интеграции, создавшей агента
created_by int ID пользователя, от имени которого агент создан
created_at int Дата создания агента, передаётся в Unix Timestamp
updated_at int Дата последнего изменения агента, передаётся в Unix Timestamp

Пример ответа

{
  "id": "b1f2c3d4-0000-4a5b-8c9d-000000000001",
  "name": "Помощник по записям",
  "description": "Проверяет записи клиентов и подсказывает свободные слоты",
  "system_prompt": "Обновлённый системный промпт агента.",
  "ai_instructions": "Передавай этому агенту вопросы о записи клиента, расписании и свободных слотах",
  "avatar": "https://drive-b.amocrm.ru/download/aff5603a-28b1-4c17-8e98-16e473b323b3/367b9f38-5f01-4cea-947e-dfab47aea522/avatar.png",
  "model_size": "L",
  "mcp": {
    "url": "https://mcp.partner.com/booking",
    "transport": "streamable-http",
    "has_headers": true
  },
  "is_active": false,
  "client_uuid": "a0c11111-2222-4333-8444-555566667777",
  "created_by": 123456,
  "created_at": 1753305600,
  "updated_at": 1753309200,
  "_links": {
    "self": {
      "href": "https://example.amocrm.ru/api/v4/amma/agents/b1f2c3d4-0000-4a5b-8c9d-000000000001"
    }
  }
}

Удаление агента

Метод

DELETE /api/v4/amma/agents/{id}

Описание

Метод позволяет удалить агента. Удалять агента может только интеграция, которая его создала.

Массовое удаление агентов не поддерживается – агенты удаляются по одному.

Ограничения

Метод доступен только интеграциям.
Метод доступен интеграциям, у которых установлен scope – Амма.

Заголовок типа данных при ошибке

Content-Type: application/json

HTTP коды ответа

Код ответа Условие
204 Агент успешно удалён
401 Неудачная аутентификация
402 На аккаунте недоступна Амма
403 У интеграции нет scope Амма
404 Агент не найден

Параметры ответа

Метод не возвращает тело

Формат ошибок

Пример ошибки

{
  "title": "Forbidden",
  "type": "https://httpstatus.es/403",
  "status": 403,
  "detail": "Integration is missing the 'amma' scope"
}

Ошибки валидации

Если ошибка относится к конкретным свойствам агента, в ответе дополнительно возвращается массив validation-errors.

Параметр Тип данных Описание
validation-errors array Массив ошибок валидации
validation-errors[0] object Ошибки одного агента из переданного массива
validation-errors[0][request_id] int Порядковый номер агента в переданном массиве. При редактировании всегда 0
validation-errors[0][errors] array Массив некорректных свойств агента
validation-errors[0][errors][0][code] string Код ошибки. Возможные значения – NotBlank, Url, Choice, Invalid
validation-errors[0][errors][0][path] string Путь к свойству, например name или mcp.url
validation-errors[0][errors][0][detail] string Описание ошибки

Коды ошибок:

Код Условие
NotBlank Обязательное свойство не передано или передано пустым
Url Адрес некорректен или использует схему, отличную от https
Choice Значение не входит в список допустимых
Invalid Остальные ошибки: превышена длина, неизвестное свойство, неверный тип

Часть ошибок возвращается без массива validation-errors — с описанием в свойстве detail. Так возвращаются ошибки формы запроса (тело не является массивом, некорректный JSON, некорректные page и limit) и превышение отдельных лимитов.

Пример ошибки валидации

{
  "validation-errors": [
    {
      "request_id": 0,
      "errors": [
        {
          "code": "NotBlank",
          "path": "name",
          "detail": "This value should not be blank."
        },
        {
          "code": "Url",
          "path": "mcp.url",
          "detail": "This value is not a valid URL."
        }
      ]
    }
  ],
  "title": "Bad Request",
  "type": "https://httpstatus.es/400",
  "status": 400,
  "detail": "Request validation failed"
}