← Все инструкции

РУКОВОДСТВО · ОБНОВЛЕНО 2026-11-15

Как связать вызов инструмента и результат по ID

Храните ID каждого вызова вместе с результатом инструмента. В Chat Completions верните tool_call_id, а в Responses укажите call_id в function_call_output. При параллельной обработке сопоставляйте результаты по ID.

Храните ID каждого вызова вместе с результатом инструмента. В Chat Completions верните tool_call_id, а в Responses укажите call_id в function_call_output. При параллельной обработке сопоставляйте результаты по ID.

1. Сохраните идентификатор вызова

Извлеките его из конкретного сообщения или элемента ответа модели. Запишите отдельно имя функции и аргументы. Два вызова одной функции могут иметь разные аргументы и идентификаторы.

2. Сопоставьте поля протокола

В Chat Completions передайте сообщение с ролью tool и tool_call_id из соответствующего вызова. В Responses передайте элемент function_call_output с call_id. ID элемента ответа и ID вызова хранятся отдельно.

3. Обработайте параллельные результаты

В учебном примере вызовите поиск статуса для двух разных номеров в локальной таблице. Если второй поиск завершится первым, он всё равно должен получить исходный ID второго вызова. Перед отправкой проверьте пропущенные и повторные ID.

4. Проверьте последовательность сообщений

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

Частые вопросы

Можно ли использовать имя функции как ID?

Одна функция может быть вызвана несколько раз. Используйте ID полученного вызова.

Куда указать ID в Responses?

В поле call_id элемента function_call_output.

Нужно ли менять порядок выполнения?

Обычно можно выполнять независимо и сопоставлять результаты по ID. Проверьте требования своего протокола.

Что проверять при No tool output found?

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

Источники

Калькулятор стоимости →