Подключите AI-агента к любому API без кода

Piotr Grudzień
Опубликовано Обновлено Время чтения: 18 мин
Подключите AI-агента к любому API простым языком: одна введенная фраза превращается в проверенное, документированное API Action

API Action builder в Quickchat AI подключает вашего AI-агента к REST API из одного предложения на простом английском. Вы описываете API, который хотите вызвать, например “проверить статус доставки заказа и сообщить клиенту, когда он прибудет”, а LLM с веб-поиском читает живую документацию этого API и собирает полное рабочее действие, заполняя метод, URL, заголовки, параметры и описание, которое сообщает вашему агенту, когда его использовать. Он цитирует документацию, которую прочитал, а когда не может подтвердить реальный endpoint, сообщает об этом вместо догадок.

В этом руководстве мы создадим два живых действия из двух введенных предложений, на бесплатном аккаунте, и подтвердим оба реальными вызовами, записанными в Inbox. По ходу мы объясним, что вызов API фактически делает для вашего агента и что такое “function calling”, механизм, на котором работает эта функция.

Все ниже было создано и протестировано на реальном агенте. Каждый скриншот, сгенерированное поле и вызов API взяты из этой сборки, и вы можете воспроизвести все это.

Путешественник спрашивает о погоде в Интерлакене, и агент Wanderlark отвечает с живыми числами прогноза Готовый результат: путешественник спрашивает о выходных, агент вызывает погодный API в середине разговора и отвечает живыми числами.

Что вы создадите

Агента поддержки для Wanderlark Tours, вымышленного оператора альпийских походов в малых группах, который отвечает из своих знаний и вызывает два реальных API в середине разговора. Создание обоих действий, их тестирование и просмотр живых вызовов занимает около пятнадцати минут:

  1. Запрос прогноза погоды через Open-Meteo, созданный из одного предложения. Без ключа, поэтому для завершения нужен только аккаунт Quickchat.
  2. Astronomy Picture of the Day от NASA через api.nasa.gov, для дополнения Wanderlark по наблюдению за звездами. Для него нужен API-ключ, поэтому он здесь: он показывает процесс с заполнителем [[secret]], где активация остается заблокированной, пока вы не вставите ключ.

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

Что вам нужно:

  • Бесплатный аккаунт Quickchat AI (зарегистрироваться здесь).
  • Без кода и без сервера. Для второго действия, API-ключ NASA: NASA поддерживает общий DEMO_KEY с ограничением скорости для проб, он используется на скриншотах, и мгновенно выдает личные ключи на api.nasa.gov.

Что значит, что AI-агент вызывает API?

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

Со стороны конечного пользователя ничего не меняется, кроме ответа. Путешественник спрашивает: “какая будет погода в Интерлакене в субботу?” и видит индикатор печати пару секунд, затем ответ с фактическими температурами. Он не видит инструмент, запрос или JSON-полезную нагрузку. Эти две секунды между вопросом и ответом выглядят так:

Временная шкала, показывающая, что видит путешественник, и невидимые шаги: модель выбирает действие, заполняет значения, Quickchat отправляет HTTP-запрос, а ответ использует response Путешественник видит вопрос и ответ. Между ними модель выбрала действие, заполнила значения, и Quickchat сделал реальный HTTP-запрос: 280 ms из примерно двух секунд.

Вы даже можете настроить, что посетитель видит во время этой паузы. Каждое действие может содержать thinking message, короткую строку, которую виджет сайта показывает вместо стандартного “Thinking…” во время выполнения вызова. Действие прогноза Wanderlark задает такую строку, поэтому именно это путешественник видит в эти две секунды:

Виджет сайта во время вызова, с вопросом посетителя и пользовательским thinking message "Checking the live forecast for you..." Вид со стороны путешественника во время вызова: пользовательская строка обдумывания мерцает там, где скоро появится ответ. Вы зададите эту строку в редакторе действия позже.

Все это не относится только к погоде. Любая система, предоставляющая HTTP API, может быть на другом конце действия: ваша база заказов, система бронирования, CRM, тикетная система, платформа сообщений. Запросы чтения отвечают на вопросы живыми данными; запросы записи что-то меняют и оставляют запись.

Двенадцать примеров действий в два ряда: запросы чтения, такие как статус заказа, уровень запасов, погода, обменный курс, статус рейса и отправление, и записи, такие как создание тикета, бронирование слота, уведомление Slack, контакт CRM, начало возврата и вызов человека Каждая плитка, это один описанный HTTP-запрос. Это руководство создает два запроса чтения; паттерны записи рассмотрены в руководствах по ссылкам в конце.

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

Как работает конструктор действий на простом английском?

Вы описываете API одним предложением, а LLM с живым веб-поиском превращает это предложение в полное действие. Он ищет по документации API во время генерации, составляет метод, URL, заголовки, query-параметры и описание, которое сообщает вашему агенту, когда вызывать действие, и возвращает результат со ссылками на страницы документации, которые прочитал. Генерация занимает около полминуты, и результат открывается в диалоге, когда готов.

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

Три свойства делают его безопасным в использовании:

  • Ничего не запускается, пока вы не активируете действие. Каждое сгенерированное действие приходит выключенным, чтобы вы его проверили.
  • Неизвестные значения становятся заполнителями, а не догадками. Значения, которые модель должна заполнять при каждом вызове (дата, город), становятся пустыми местами {{param}}; константы, которые знаете только вы (API-ключ), становятся пустыми местами [[secret]], и активация блокируется, пока вы их не замените.
  • Он показывает свою работу. Результат перечисляет страницы документации, которые он прочитал, каждая с примечанием о том, что эта страница подтвердила, поэтому проверка начинается с доказательств, а не с доверия:

Раздел Sources в диалоге результата: страница документации Open-Meteo и раздел документации, каждый с цитатой и примечанием о том, что он подтвердил Цитаты из второй генерации того же предложения о погоде, использованной позже в этом руководстве: страница документации и ее API-разделы, каждый с тем, что конструктор там подтвердил.

Шаг 1: Создайте туристического агента

Сначала создайте агента, чтобы действиям было к чему принадлежать. После регистрации назовите агента (в этой сборке используется Wanderlark) и задайте ему задачу в поле AI Main Prompt в разделе Identity в dashboard:

Вы помощник Wanderlark Tours, оператора альпийских походов в малых группах. Wanderlark проводит три тура с гидом: Interlaken Classic, Zermatt Highline и Dolomites Traverse, а также дополнение Dark-Sky Nights для наблюдения за звездами. Помогайте путешественникам выбирать тур, понимать даты, цены, сложность и что взять с собой, а также отвечайте на вопросы о бронировании и отмене. Будьте доброжелательны, практичны и кратки, держите ответы короткими.

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

Затем добавьте несколько фактов в Knowledge Base, чтобы ему было из чего отвечать. В демо используются пять коротких статей (туры и цены, дополнение Dark-Sky Nights, бронирование и отмена, упаковка, места встречи); полный текст есть в блоке для копирования в конце. Мы расширим этот prompt двумя строками, связанными с действиями, после создания действий. Если вам нужен пошаговый разбор prompt и knowledge с нуля, основной рецепт по ссылке ниже проходит это шаг за шагом.

Шаг 2: Опишите API одним предложением

В боковой панели откройте Actions & MCPs, нажмите Add Action и выберите API Action, первый пункт в меню.

Меню Add Action на странице Actions, где API Action является первым пунктом Пользовательские действия находятся в Actions & MCPs. Пункт API Action открывает диалог описания.

Открывшийся диалог просит описать API, который должно вызывать это действие, и назвать endpoint или дать ссылку на его документацию. Вот точное предложение для действия погоды:

Получите ежедневный прогноз погоды для места из Open-Meteo API (документация: https://open-meteo.com/en/docs), чтобы, когда путешественник спрашивает, какая будет погода в одном из наших направлений, агент мог ответить реальными температурами и вероятностью дождя для запрошенных дней.

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

В этом предложении есть три вещи, нужные хорошему описанию:

  1. Конкретный API, endpoint или URL документации. “The Open-Meteo API” плюс ссылка на документацию дает конструктору что-то реальное для чтения. Без этого вы получите отказ вместо действия.
  2. Когда агент должен его использовать. “When a traveler asks what the weather will be like” почти дословно попадает в описание, которое позже запускает действие.
  3. Что делать с результатом. “Answer with real temperatures and rain chances” определяет, как агент использует response.

Поле принимает до 500 символов, что больше, чем нужно хорошему описанию; каждое предложение в этом руководстве помещается с большим запасом.

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

Анимация ввода предложения, отправки и появления диалога результата Весь процесс в реальном времени, с сокращенным ожиданием: описать, отправить и проверить результат.

Что внутри сгенерированного действия?

Диалог результата, это поверхность проверки. Слева, preview card нового действия, ровно как оно появится на странице Actions. Справа, Details: конструктор объясняет, что он построил, какие значения модель заполняет во время выполнения и какие допущения сделал, если ваше предложение оставило что-то открытым. Ниже, Sources: документация, которую он прочитал, в виде ссылок.

Диалог результата для действия погоды с preview card и объяснением Details Конструктор объясняет свою работу поле за полем. При прокрутке диалога раздел Sources перечисляет, что он прочитал для этого действия: страницу документации Open-Meteo и спецификацию OpenAPI проекта на GitHub, каждая с примечанием о том, что она подтвердила.

Для предложения о погоде конструктор сгенерировал действие с именем get_open_meteo_daily_forecast (имена конструктора выглядят так, будто их написал инженер; вы можете переименовать в редакторе). Нажмите Edit Action на preview, чтобы увидеть все поля, которые он заполнил:

Редактор действия, показывающий сгенерированное имя, таблицу параметров и поля API endpoint Все, что есть у действия, созданного вручную, уже заполнено: имя, таблица параметров в разделе “What to ask the user first” и endpoint.

Читаем сверху вниз:

  • API Action Name: имя инструмента, которое видит модель.
  • What to ask the user first: таблица параметров. Конструктор объявил семь параметров, каждый с типом и описанием: latitude, longitude, timezone, start_date, end_date, плюс необязательные единицы измерения. Это значения {{param}}, которые модель заполняет при каждом вызове. Обратите внимание, чего здесь нет: параметра “city”. Конструктор подключил endpoint так, как реально работает Open-Meteo, по координатам, и оставил географию модели. Через минуту мы увидим, как она правильно заполнит эти координаты.
  • API Endpoint: GET https://api.open-meteo.com/v1/forecast, с подключенными query-параметрами. Фиксированные значения остаются литералами, например список daily переменных прогноза, который выбрал конструктор; значения, заполняемые моделью, отображаются как цветные chips {{...}}.

Раздел API Endpoint с методом GET, URL и query-параметрами, где смешаны фиксированные значения и parameter chips Фиксированные части остаются фиксированными; цветные chips, это пустые места, которые заполняет модель. Chips, это собственная легенда UI о том, откуда что берется.

Четвертая вкладка редактора endpoint, Test Response, выполняет реальный запрос до того, как действие встретит посетителя. У каждого параметра есть поле “Your test value”; заполните его правдоподобными значениями, нажмите кнопку play (“Test the API”), и фактический response вернется со status code. Переключатель Show cURL показывает, в формулировке интерфейса, “the exact HTTP request that would be triggered when this AI Action runs with these parameters”. Вот тест этой сборки, снова с координатами Интерлакена:

Вкладка Test Response после запуска: JSON response с бейджем 200 Ok и раскрытый блок cURL, показывающий полностью подставленный request Реальный 200 от Open-Meteo, запущенный из редактора, с полностью раскрытым запросом под ним. Проверьте, протестируйте, затем активируйте.

  • API Action Description: предложение, которое решает, когда агент обращается к этому действию. Конструктор написал его из вашей фразы “when a traveler asks”. Это поле выполняет большую часть работы во время выполнения, и его стоит настраивать первым, если агент когда-либо запускает действие не в тот момент.
  • Thinking message: строка со стороны путешественника из более ранней временной шкалы. Редактор описывает ее как “a thinking preloader that will be displayed to the user when this action is invoked”; действие прогноза Wanderlark задает ее как “Checking the live forecast for you…”.

Действие пришло выключенным. Откройте его в редакторе, и Quickchat покажет баннер, что действие выключено, с кнопкой Enable; или переключите тумблер на его карточке на странице Actions. Поскольку для этого действия ничего не нужно было заполнять, оно активируется сразу.

Баннер редактора, сообщающий, что это Action выключено, с кнопкой Enable Сначала проверка, затем включение. Ничего ничего не вызывает, пока вы это не сделаете.

Если вы предпочитаете создать это же действие вручную, поле за полем, и понять каждое поле с первых принципов, вот базовое руководство: Создайте бесплатного AI-агента, который выполняет действия. Конструктор и ручной редактор создают один и тот же тип действия; эта статья описывает сгенерированный путь.

Шаг 3: Протестируйте и посмотрите, как происходит вызов

Задайте агенту вопрос, который должен запустить действие. Приведенные здесь транскрипты были выполнены через тестовый pipeline Quickchat и записаны в Inbox как любой разговор; в вашем аккаунте панель AI Preview в боковой панели дает тот же цикл в браузере.

Тестовое сообщение:

Привет! Мы идем на Interlaken Classic в следующие выходные. Какая будет погода в Интерлакене в субботу 25 июля и воскресенье 26 июля?

Агент ответил реальным прогнозом: около 27,7°C и почти без дождя в субботу, прохладнее и до 18 mm дождя вероятно в воскресенье, плюс совет по вещам, взятый из его знаний.

Подтверждение находится в Inbox. Под ответом агента есть маркер “1 action called”; раскройте его, и вы получите полную запись того, что произошло:

Раскрытая карточка вызова действия, показывающая имя действия, HTTP 200, 280 ms, каждый заполненный моделью параметр и JSON result Запись вызова: get_open_meteo_daily_forecast, HTTP 200 за 280 ms и каждое значение, которое заполнила модель.

Прочитайте параметры, которые выбрала модель: latitude: 46.6863, longitude: 7.8632, timezone: Europe/Zurich, start_date: 2026-07-25, end_date: 2026-07-26. Никто не вводил координаты. Путешественник сказал “Интерлакен”, и модель перевела это в значения, нужные API, достаточно точно, чтобы попасть в город. Это оценочная половина системы выполнила свою работу; детерминированная половина (URL, метод, фиксированный список переменных daily) ушла ровно так, как было проверено.

Что такое function calling в AI-агентах?

Запись выше показывает механизм, который в индустрии называется function calling: языковая модель в середине разговора выбирает не писать предложение, а выдать структурированный вызов заранее определенного инструмента, платформа выполняет его, и модель продолжает, имея результат.

Три зоны, показывающие function calling на реальном погодном вызове: модель принимает решение и заполняет значения, Quickchat выполняет фиксированный request, а API отвечает обычным JSON Function calling на реальном вызове из этого руководства. Модель когда-либо создает только структурированные значения; платформа владеет request; API, это обычный HTTP.

Из диаграммы следуют несколько вещей:

  • Модель решает, платформа выполняет. Модель никогда не отправляет байты в Open-Meteo. Она создает {"latitude": 46.6863, ...}, а Quickchat вставляет эти значения в запрос, который вы проверили. Части, которые вы зафиксировали, URL, метод, любой секрет, не принадлежат модели и не могут быть изменены ею.
  • “Tool calling”, это то же самое. Эти два названия описывают один механизм; tool calling, более новый и более общий термин. AI Action, это определение инструмента: его имя, описание и таблица параметров, ровно то, что читает модель, когда решает, вызывать ли его и как. Поэтому поле описания так важно. Концептуально все определение, которое видит модель, сводится к этому:
name:        get_open_meteo_daily_forecast
description: Используйте это действие, когда путешественник спрашивает, какая будет погода в конкретные ближайшие дни в направлении...
parameters:  latitude (number, required), longitude (number, required), timezone (text, required), start_date (text, required), end_date (text, required), temperature_unit (text), precipitation_unit (text)
  • Сторона API обычная. Open-Meteo не добавлял поддержку AI для этого. Любой endpoint, говорящий по HTTP и возвращающий JSON, может быть инструментом, поэтому рецепт из одного предложения обобщается на ваш собственный backend.

Каждое крупное семейство моделей поддерживает этот механизм. Между платформами отличается то, кто пишет определения инструментов. В developer platforms и custom GPT actions это вы, вручную, в схеме. Конструктор, который вы использовали на шаге 2, это function calling без написания схемы: ваше предложение стало определением инструмента. Инженерный взгляд на эту область, от протоколов вроде MCP до пользовательских endpoints, смотрите в APIs for AI Agents: From MCP to Custom Endpoints.

Шаг 4: API, которому нужен ключ

Большинство реальных API требуют учетные данные. Здесь появляется второй тип заполнителя конструктора, а дополнение Wanderlark для наблюдения за звездами дает естественный повод: гости Dark-Sky Nights любят спрашивать про Astronomy Picture of the Day от NASA.

Откройте Add Action, снова выберите API Action и опишите его, на этот раз заранее сказав конструктору, что вы предоставите ключ:

Получите Astronomy Picture of the Day от NASA из NASA APOD API (GET https://api.nasa.gov/planetary/apod), чтобы гости, интересующиеся нашим дополнением Dark-Sky Nights, могли спросить о сегодняшнем астрономическом изображении и услышать его название и что на нем показано. Я предоставлю свой собственный API-ключ NASA.

Диалог API Action с введенным предложением NASA Фраза “I will provide my own API key” говорит конструктору оставить чистое пустое место вместо догадок об auth.

Через полминуты открывается диалог результата, и он отличается одной важной вещью: янтарной панелью “Replace before activating”, где перечислен ровно один элемент: [[nasa_api_key]]. На preview card есть красный бейдж Incomplete, а переключатель активации выключен и остается выключенным.

Диалог результата для действия NASA с янтарной панелью Replace before activating, где указан заполнитель api key, и бейджем Incomplete Конструктор подключил все действие и оставил одно пустое место, которое не мог заполнить: ваш ключ. Пока вы не замените его, действие нельзя включить.

На странице Actions переключатель полностью отключен, с tooltip, объясняющим причину:

Карточка действия с отключенным переключателем и tooltip, говорящим, что действие невалидно, заполните отсутствующие поля Активация блокируется на уровне платформы, пока остается любой [[secret]]. Действие с заполнителем на месте ключа не может упасть в 3 часа ночи, потому что оно не может запуститься.

У двух типов заполнителей разные владельцы:

Два типа заполнителей в URL NASA: параметр date, который модель заполняет при каждом вызове, и секрет api key, который вы вставляете один раз Один URL, оба типа: {{date}}, это пустое место модели, заполняемое из разговора при каждом вызове; [[nasa_api_key]], ваше, вставляемое один раз.

Теперь заполните его. NASA мгновенно выдает личные ключи (имя и email на api.nasa.gov, ключ приходит по почте) и документирует общий DEMO_KEY для проб, он используется в этой сборке:

  1. На карточке действия нажмите Edit Action, затем откройте вкладку Query Params в разделе API Endpoint.
  2. В строке api_key находится янтарный chip [[nasa_api_key]]. Нажмите в значение и замените его своим ключом.
  3. Нажмите Save changes.

До и после на вкладке Query Params: янтарный chip-заполнитель, затем вставленный реальный ключ Заполнитель, это обычное редактируемое значение. Замените его и сохраните.

Затем обратите внимание, чего вам не пришлось делать: переключать тумблер. Когда сохранение впервые делает действие read-only GET полным и валидным, Quickchat активирует его за вас. Действия, которые записывают данные (POST, PUT, PATCH, DELETE), никогда этого не делают; они ждут намеренной активации, что является правильным поведением по умолчанию для всего, что меняет данные.

Карточка действия NASA до и после: Incomplete с отключенным переключателем, затем active с включенным переключателем Вставьте, сохраните, и read-only lookup включится сам. Действия записи всегда оставляют финальное решение вам.

Протестируйте его так же, как прогноз:

Мы добавили дополнение Dark-Sky Nights к нашей поездке Zermatt Highline. О чем сегодняшнее астрономическое изображение?

Разговор, где агент описывает сегодняшнее Astronomy Picture of the Day Агент получил сегодняшнее изображение, “Shadow and Rainbow”, и кратко описал, что на нем показано.

И снова подтверждение в Inbox:

Раскрытая карточка вызова для действия NASA, показывающая HTTP 200 и параметр date HTTP 200 от api.nasa.gov. Единственное значение, заполненное моделью, это date, оставленное пустым, чтобы NASA использовала today по умолчанию. Ключа нигде нет в этой записи: это не параметр, поэтому модель никогда не может заполнить или раскрыть его.

Что происходит, когда конструктор не может найти API?

Конструктор не всегда создает действие, и это сделано намеренно. Введите предложение, которое описывает поведение, но не называет API:

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

Конструктор ищет, не находит единого API, который мог бы ответственно выбрать за вас, и возвращается с другим диалогом: “We need a bit more detail”. Действие не создается. Панель Details точно объясняет, чего не хватает (какой поставщик погоды? какая система бронирования?) и моделирует переформулировку, вплоть до примерного предложения с конкретным endpoint.

Диалог needs-more-detail, объясняющий, что не был назван конкретный погодный API или система бронирования, с предложенной конкретной переформулировкой Отказ с набором для исправления: что было неоднозначным, почему гадать было бы неправильно, и пример предложения, которое сработает.

Есть второй тип отказа. Опишите то, что Quickchat уже делает нативно:

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

Конструктор распознает это как встроенную область и, вместо того чтобы оборачивать решенную задачу во внешний API, указывает на функцию, с кнопкой Set up Human Handoff прямо в диалоге:

Диалог, объясняющий, что handoff является встроенной функцией, с кнопкой Set up Human Handoff Не каждая возможность должна быть пользовательским действием. Эскалация к человеку встроена, и конструктор направляет вас туда вместо дублирования.

Точные предложения и настройки для копирования

Все, что использовало демо, в одном месте. Два предложения, которые сгенерировали действия:

Получите ежедневный прогноз погоды для места из Open-Meteo API (документация: https://open-meteo.com/en/docs), чтобы, когда путешественник спрашивает, какая будет погода в одном из наших направлений, агент мог ответить реальными температурами и вероятностью дождя для запрошенных дней.
Получите Astronomy Picture of the Day от NASA из NASA APOD API (GET https://api.nasa.gov/planetary/apod), чтобы гости, интересующиеся нашим дополнением Dark-Sky Nights, могли спросить о сегодняшнем астрономическом изображении и услышать его название и что на нем показано. Я предоставлю свой собственный API-ключ NASA.

AI Main Prompt, включая две строки о действиях, добавленные после создания действий. Указание имен действий и моментов их запуска в prompt делает срабатывание заметно надежнее, а имена действий, которые нужно использовать, это сгенерированные имена, которые вы видели в редакторе:

Вы помощник Wanderlark Tours, оператора альпийских походов в малых группах. Wanderlark проводит три тура с гидом: Interlaken Classic, Zermatt Highline и Dolomites Traverse, а также дополнение Dark-Sky Nights для наблюдения за звездами. Помогайте путешественникам выбирать тур, понимать даты, цены, сложность и что взять с собой, а также отвечайте на вопросы о бронировании и отмене. Будьте доброжелательны, практичны и кратки, держите ответы короткими.

Когда путешественник спрашивает, какая будет погода в направлении в ближайшие дни, вызовите get_open_meteo_daily_forecast и ответьте реальными числами для запрошенных дней. Когда гость спрашивает о сегодняшнем астрономическом изображении или о том, что он может увидеть на Dark-Sky Night, вызовите get_tonights_nasa_apod и опишите название изображения и что на нем показано.

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

Сгенерированные API Action Descriptions, как их написал конструктор (настраивайте их, а не URL, когда нужно исправить поведение запуска):

Используйте это действие, когда путешественник спрашивает, какая будет погода в конкретные ближайшие дни в направлении, и вам нужны реальные ежедневные данные прогноза (максимальные/минимальные температуры и вероятность дождя) из Open-Meteo API. Ассистент должен вызвать его с широтой/долготой направления, диапазоном дат и предпочтительными единицами измерения, затем использовать JSON response, чтобы описать прогнозируемые температуры и вероятности осадков для запрошенных дней естественным языком.
Используйте это действие, когда гость спрашивает о сегодняшнем Astronomy Picture of the Day, связанном с вашим дополнением Dark-Sky Nights, чтобы вы могли получить официальные метаданные APOD от NASA и описать название и что показывает изображение. Действие вызывает NASA APOD API для указанной даты (по умолчанию сегодня, если дата не указана) и возвращает JSON, включая URL изображения или видео, title, explanation и media type, которые ассистент должен кратко изложить гостю в разговорной форме.

Thinking message, заданный для действия прогноза (строка, которую виджет показывает во время выполнения вызова):

Проверяю для вас живой прогноз...

Пять статей Knowledge Base, сокращенные до фактов:

Туры: Interlaken Classic, 3 дня, легкий или умеренный уровень, 890 евро, максимум 10 гостей, с мая по октябрь. Zermatt Highline, 4 дня, умеренный или сложный уровень, 1 290 евро, максимум 8, с июня по сентябрь. Dolomites Traverse, 5 дней, сложный уровень, 1 590 евро, максимум 8, с конца июня до середины сентября, от хижины к хижине. Цены включают гида, проживание, завтраки.

Dark-Sky Nights: дополнение для наблюдения за звездами на Zermatt Highline и Dolomites Traverse, 120 евро за человека, ночная прогулка с гидом и телескопом, планируется вокруг новолуния; сеансы, отмененные из-за облачности, переносятся или возвращаются.

Бронирование: депозит 200 евро, остаток оплачивается за 30 дней до начала. Бесплатная отмена до 30 дней; возврат 50 процентов за 29-14 дней; в течение 14 дней возврата нет, но есть одно бесплатное перебронирование в течение 12 месяцев.

Снаряжение: слои одежды, водонепроницаемая куртка, разношенные ботинки, дневной рюкзак 30 литров; палки и кошки предоставляются; вечера холодные даже летом.

Места встречи: станция Interlaken Ost; станция Zermatt (без автомобилей, shuttle из Taesch); Cortina d'Ampezzo, трансфер из аэропорта Venice 45 евро в одну сторону.

Как описать API, чтобы конструктор понял правильно?

Три правила покрывают все, с чем столкнулась эта сборка, а диалог отказа учит тому же с другой стороны:

Две переписанные версии предложения: расплывчатое поведение, отклоненное с подсказкой, и предложение с конкретным endpoint, которое сгенерировало рабочее действие Паттерн за каждым исходом в этом руководстве: конкретный API на входе, рабочее действие на выходе; только поведение на входе, подсказка обратно.

  1. Назовите API, endpoint или вставьте URL документации. “The Open-Meteo API (docs: …)” создал корректное действие, основанное на двух процитированных источниках. “Reschedule their tour when the weather looks bad” создало отказ, потому что это называет желание, а не API. Конструктору нужно что-то конкретное, что он может прочитать, и на этом правиле держатся два других.
  2. Скажите, когда агент должен использовать его и что сказать дальше. Ваша фраза-триггер почти дословно становится описанием действия, а описание запускает действие во время выполнения. “When a traveler asks what the weather will be like”, это сигнал, который модель может распознать в середине разговора.
  3. Скажите, как будет работать credential, если он есть. “I will provide my own NASA API key” привела auth к чистому [[secret]]. Конструктор и сам склоняется к этому: он предпочитает статические долгоживущие учетные данные, такие как ключи и webhook URLs, вместо краткоживущих OAuth tokens, потому что действие выполняется как есть при каждом вызове, без механизма refresh token.

И одно не-правило: вам не нужно указывать параметры, форматы или поля response. Конструктор прочитал документацию Open-Meteo и выбрал семь параметров, разумные defaults и правильные daily variables без просьбы. Проверяйте, что он выбрал, в редакторе, вместо того чтобы диктовать это заранее.

Итерация сама по себе дешевая. Кнопки regenerate нет; когда draft получается неправильным, удалите его и отправьте более точное предложение, около полминуты на попытку. Аккаунты хранят до 15 созданных actions, поэтому удаляйте черновики по ходу.

Запуск в production

Активация уже сделала это. Actions принадлежат агенту, а не каналу, поэтому два созданных вами запроса чтения запускаются одинаково из виджета сайта, WhatsApp, Messenger, Slack, Telegram, Discord или любого другого места, где развернут агент, а каждый вызов записывается в Inbox. Если виджет сайта, это основной канал, вы можете white-label the AI chatbot без изменения действия. То же касается того, на что он не может ответить: если спросить о зимних турах на снегоступах, Wanderlark скажет, что не проводит их, вместо импровизации.

Агент честно отвечает, что Wanderlark не проводит зимние туры, и предлагает летние альтернативы Когда его спрашивают о чем-то вне его знаний, агент говорит об этом вместо импровизации. Та же сдержанность распространяется на его вызовы API.

Два естественных следующих шага после запуска первых действий:

  • Сделайте запуск детерминированным там, где это важно. Описания действий решают, когда модель вызывает их; для действий, которые должны запускаться только при определенных условиях, добавьте server-side run conditions и memory captures: Как сделать действия вашего AI-агента надежными.
  • Используйте one-click integrations для инструментов, у которых они есть. То же меню Add Action содержит другие пути: HubSpot Action, Discord Action и Google Sheets поставляются как готовые galleries, Shopify MCP подключает каталог магазина, а MCP подключает любой remote MCP server, из каталога 240+ или по вставленному URL, импортируя tools этого server. Руководства ниже проходят galleries.

Три пути к одному месту, одно практическое правило:

One-click integrations и MCPКонструктор на простом английскомРучной редактор
Лучше всего дляПопулярные tools с gallery или любой MCP serverЛюбой документированный REST API, включая long tailВнутренние API или полный контроль над каждым полем
Вы предоставляетеПодключение аккаунта или server URLОдно предложение, плюс ключ, если API его требуетКаждое поле самостоятельно
Агент получаетКурируемый набор готовых toolsОдно проверенное, процитированное действие на предложениеРовно то, что вы ввели
Рассмотрено вРуководства нижеЭто руководствоАнатомия выше и основной рецепт, на который она ссылается

Похожие руководства

Часто задаваемые вопросы

Как подключить AI-агента к API без написания кода?

В Quickchat AI откройте Actions & MCPs, нажмите Add Action, выберите API Action и опишите API одним предложением на простом английском. LLM с живым веб-поиском прочитает документацию API и сгенерирует полное действие: метод, URL, параметры и описание. Вы проверяете его, заполняете значения-заполнители, например API-ключ, и включаете.

Что такое function calling в AI-агентах?

Function calling, это механизм, при котором языковая модель в середине разговора выводит структурированный запрос на запуск заранее определенного инструмента вместо обычного текста. Платформа выполняет инструмент, в этом случае HTTP-запрос, и передает результат обратно модели, которая затем пишет ответ на основе реальных данных. Каждый вызов AI Action в этом руководстве, это один function call.

Function calling и tool calling, это одно и то же?

Да. Function calling и tool calling называют один и тот же механизм; tool calling, более новый и более общий термин. AI Action, это один из таких инструментов: описанный HTTP-запрос, который модель может выбрать для вызова во время разговора.

Как конструктор узнает, как выглядит API?

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

В чем разница между заполнителями {{param}} и [[secret]]?

Значение {{param}} заполняется моделью из разговора при каждом вызове, например дата или город. Значение [[secret]], это константа, которую вы вставляете один раз перед активацией, например API-ключ. Модель никогда не выбирает и не редактирует секреты, и это не параметры, которые она может заполнить.

Куда вставлять API-ключ, и может ли посетитель получить его от агента?

Вы заменяете заполнитель [[secret]] внутри действия, в редакторе, перед активацией. Ключ становится частью фиксированного запроса, который отправляет Quickchat. Это не параметр, поэтому модель не может изменить его, и он не появляется в записи вызова действия в разговоре.

Конструктор создает только GET-запросы для чтения, или агент тоже может записывать данные?

И то, и другое. Тот же процесс из одного предложения генерирует действия POST, PUT, PATCH и DELETE. Действия GET только для чтения включаются сами, когда они полные и валидные; действия записи всегда ждут, пока вы намеренно активируете их.

Можно ли подключить частные или внутренние API?

Да, если endpoint доступен по HTTPS со стороны Quickchat. Конструктор опирается на публичную документацию, поэтому для внутреннего API опишите endpoint явно в своем предложении или сгенерируйте близкий шаблон и настройте URL и поля в редакторе.

Что будет, если я опишу поведение, а не конкретный API?

Конструктор завершится безопасным отказом. Вместо того чтобы выдумывать endpoint, он объяснит, чего не хватает, и покажет, как переформулировать запрос, обычно назвав конкретного поставщика, endpoint или URL документации. Если ваш запрос соответствует встроенной функции, например Human Handoff, он укажет на эту функцию вместо создания пользовательского действия.

Что будет, если вызов API завершится ошибкой во время разговора?

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

Могут ли ChatGPT, Claude или Gemini подключаться к API таким способом?

Все их модели поддерживают function calling, но подключение, это работа разработчика: вы сами пишете схему функции или спецификацию OpenAPI, как в custom GPT actions. Здесь вы вводите одно предложение, и действие генерируется из живой документации API, а затем работает во всех каналах вашего агента. Вы также можете открыть готового агента Quickchat для ChatGPT, Claude и Cursor как MCP server.

Из каких каналов агент может вызывать API?

Из всех. Actions принадлежат агенту, а не каналу, поэтому одно и то же действие запускается из виджета сайта, WhatsApp, Messenger, Slack, Telegram, Discord и любого другого места, где развернут ваш агент.

Бесплатен ли конструктор действий на простом английском?

Да. Генерация, проверка и активация API Actions работают на бесплатном плане, и оба действия в этом руководстве были созданы в бесплатном аккаунте. Платные планы добавляют более высокие лимиты использования и более продвинутые модели, а не доступ к конструктору.

Как агент выбирает между несколькими действиями?

Он читает имя и описание каждого действия и выбирает то, которое соответствует текущему моменту разговора. У демо-агента их два: вопрос о погоде направляется к действию прогноза, а вопрос об астрономии, к действию NASA, потому что их описания называют эти триггеры. Ясные, разные описания делают выбор надежным.

Какую задержку добавляет вызов API к ответу?

Меньшую, чем можно ожидать. Реальный вызов прогноза в этом руководстве вернулся за 280 ms, внутри ответа, который занял около двух секунд от начала до конца. Посетитель видит короткий индикатор обдумывания, который можно заменить пользовательским thinking message, а затем ответ, построенный на живых данных.

Итоги

Два введенных предложения стали двумя живыми, документированными, проверенными API Actions: запросом погоды без ключа и запросом NASA с ключом, каждый подтвержден HTTP 200, записанным в Inbox рядом со значениями, которые заполнила модель. Правила, которые делают это надежным, помещаются в три строки. Назовите реальный API, и конструктор привяжет действие к его документации и процитирует ее. Все, что знаете только вы, приходит как [[secret]], блокирующий активацию, пока вы его не заполните. Все, что конструктор не может подтвердить, становится объяснением и предложенной переформулировкой, а не догадкой.

Для полного списка полей API Actions, run conditions и обработки response держите AI Actions docs под рукой во время сборки.