Создать кастомный REST-инструмент
Инструмент — это функция, которую модель агента может вызвать посреди диалога, чтобы обратиться к внешнему 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 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" } ] }}