Актуальные данные во время звонка
Пусть агент спрашивает у вашей системы заказ, остаток на складе или данные аккаунта, пока звонящий ждёт.
С API-инструментом RAG агент прямо посреди разговора запрашивает у вашей системы актуальные данные — статус заказа, остаток товара, данные аккаунта — и отвечает по ним. Когда его вызвать, агент решает сам по вашему описанию.
Настройка
- Добавьте инструмент
Откройте агента → Действия → Добавить инструмент → CRM и сервисы → API-инструмент RAG.
- Опишите его и направьте на ваш эндпоинт
Поле Что указать Название например, Поиск заказа Общее условие Когда его использовать, например, клиент спрашивает о статусе заказа URL API-эндпоинта например, https://api.yourshop.com/orders/{order_id}—{placeholders}заполняются значениями, которые собрал агентHTTP-метод GET,POST,PUT,DELETEилиPATCHСообщение при выполнении Что агент говорит, пока ждёт, например, Секунду, проверяю ваш заказ Таймаут запроса (мс) Сколько ждать ответа; по умолчанию 5000 Заголовки, Query-параметры Необязательные постоянные значения, например ваш API-ключ - Укажите, что агент должен узнать
Схема параметров (JSON) перечисляет значения, которые агент узнаёт у звонящего и отправляет, — см. ниже. Если обязательного значения не хватает, агент сначала спросит его.
Всегда заполняйте Сообщение при выполнении — тишина, пока идёт запрос, звучит как оборвавшийся звонок.
Схема параметров
Это не само тело запроса, а JSON Schema значений, которые нужно собрать. Куда они попадают:
| Случай | Куда идёт значение |
|---|---|
В URL есть {name} | В URL |
GET, DELETE | Остальное — как ?key=value |
POST, PUT, PATCH | Остальное — как тело JSON |
Поиск заказа по номеру:
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"description": "Номер заказа, о котором спрашивает клиент, обычно от 6 до 10 цифр. Если не назвал, спроси."
}
},
"required": ["order_id"]
}
Бронирование с несколькими значениями:
{
"type": "object",
"properties": {
"product_id": { "type": "string", "description": "ID товара из предыдущего поиска." },
"quantity": { "type": "integer", "minimum": 1, "maximum": 10, "description": "Сколько штук. По умолчанию 1." },
"delivery_method": { "type": "string", "enum": ["pickup", "home_delivery", "locker"], "description": "Как клиент хочет получить товар." },
"customer_email": { "type": "string", "format": "email", "description": "Email для подтверждения. Если не назвал, спроси." }
},
"required": ["product_id", "delivery_method", "customer_email"]
}
Статичный эндпоинт, например часы работы: { "type": "object", "properties": {} }.
Хорошие схемы для голоса:
- Держите схему плоской: 3–5 значений.
- Пишите
descriptionдля каждого значения, с примерами, — именно они лучше всего направляют агента. - Для фиксированных вариантов используйте
enum: агент сопоставит «синий» сblue. - Помечайте значение как
required, только если без него запрос не сработает. - Используйте имена в
snake_case, совпадающие с{placeholders}в URL.
Примеры использования
- Статус заказа — «Где мой заказ 482913?»
- Наличие — проверить остаток или свободный столик в вашей собственной системе.
- Вопросы по аккаунту — баланс, конец договора, открытые тикеты.
Частые проблемы
| Проблема | Что проверить |
|---|---|
| Агент его не вызывает | Пусть Общее условие называет конкретный запрос |
| Ваш эндпоинт получает пустые значения | Имена в схеме должны в точности совпадать с {placeholders} |
| Агент говорит, что не смог проверить | Ваш эндпоинт отвечал дольше таймаута или вернул ошибку |
См. также
- Узнать звонящего до начала звонка — данные до приветствия
- MCP-серверы — много инструментов с одного сервера