tools / tool_choice в стиле OpenAI работает с каждым провайдером,
поддерживающим чат. Шлюз транслирует запрос в нативный формат вызова
инструментов вышестоящего провайдера.
Минимальный пример
Поведение у разных провайдеров
Один и тот же клиентский код работает у любого провайдера с поддержкой чата — OrcaRouter адаптирует вашиtools в стиле OpenAI к
нативному формату каждого upstream:
- OpenAI / Grok / DeepSeek: нативная цель —
toolsостаётся в формате OpenAI на проводе - Anthropic:
toolsOpenAI отображается вtoolsAnthropic сinput_schema, сохраняя JSON Schemapropertiesиrequired - Gemini:
toolsOpenAI отображается в Geminitools[].functionDeclarations, при этомname/description/parametersпробрасываются
Зарезервированные имена функций Gemini
Для целей Gemini шлюз распознаёт три зарезервированных значенияfunction.name и превращает их в нативные встроенные инструменты
Gemini вместо пользовательских объявлений функций:
| Зарезервированное имя | Отображается в |
|---|---|
googleSearch | Grounding Gemini через Google Search (см. Веб-поиск) |
codeExecution | Встроенное выполнение кода Gemini |
urlContext | Встроенный инструмент URL-контекста Gemini |
parameters — передайте
{type: "function", function: {name: "googleSearch"}}, и Gemini сам
разберётся. Для своих пользовательских инструментов выбирайте другие
имена, чтобы не конфликтовать с этими встроенными.