Создать кастомный REST-инструмент

POST
/api/bot/tools

Инструмент — это функция, которую модель агента может вызвать посреди диалога, чтобы обратиться к внешнему REST API. Один вызов может развернуться в до 5 запросов (actions).

  • parameters — это объект JSON Schema (формат OpenAI function-calling), а не строка.
  • {placeholder} в url/payload подставляется из соответствующего аргумента в момент вызова; допустимыми плейсхолдерами являются только имена, объявленные в parameters.properties.
  • payload применяется только к POST/PUT/PATCH.
  • Каждый url должен быть публичным http(s)-адресом — localhost, приватные диапазоны и эндпоинты метаданных облака отклоняются с 400, поскольку запрос выполняют серверы платформы без присмотра.
  • Значения заголовков сохраняются как переданы и считываются обратно через GET /api/bot/tools/{id} любым держателем ключа с правом manage.
  • Не передавайте assignedAgentIds, чтобы создать инструмент без назначения.

Лимит — 50 инструментов на бота. Метод не идемпотентен — уникального ограничения на имя нет, поэтому слепой повтор после таймаута может создать дубликат, и удалить его можно только из дашборда. Записывает событие бота create_function.

Authorization

ApiKeyAuth
Authorization<token>

API-ключ интеграции со страницы бота Settings → API Keys, передаётся как есть, без префикса Bearer.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/bot/tools" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "description": "string",    "parameters": {      "type": "object",      "properties": {        "orderId": {          "type": "string"        }      },      "required": [        "orderId"      ]    },    "actions": [      {        "method": "GET",        "url": "https://api.example.com/orders/{orderId}"      }    ]  }'
{  "tool": {    "id": 0,    "name": "string",    "description": "string",    "parameters": {},    "actions": [      {        "name": "string",        "method": "GET",        "url": "https://api.example.com/orders/{orderId}",        "headers": [          {            "key": "string",            "value": "string"          }        ],        "payload": "string"      }    ]  }}