Вызов инструментов

Прокси принимает определения OpenAI tools / function. Многие хосты Gonka уже отдают нативные tool calls. Если нет, и на сервере включён SIMULATE_TOOL_CALLS, прокси переписывает запрос в структурированный промпт и разбирает JSON обратно в tool_calls.

Этот флаг вы сами не переключаете. С клиента отправляйте обычный payload с tools.

response = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-V4-Flash-0731",
    messages=[{"role": "user", "content": "What's the weather in Berlin?"}],
    tools=[{
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get current weather for a location",
            "parameters": {
                "type": "object",
                "properties": {"location": {"type": "string"}},
                "required": ["location"],
            },
        },
    }],
)
print(response.choices[0].message.tool_calls[0].function.arguments)

Цикл

  1. Модель возвращает tool_calls
  2. Вы выполняете функцию
  3. Отправляете сообщение role: tool с tool_call_id
  4. Повторяете, пока content не станет финальным ответом

DeepSeek и инструменты

Если токены рассуждения утекают в content, парсеры в Cursor / OpenCode ломаются. Включите совместимость reasoning для DeepSeek в настройках.

Это не MCP

type: "function" — ваши инструменты на стороне клиента. type: "mcp" — удалённый сервер, который вызывает прокси. См. MCP. { "type": "web_search" } тоже забирает прокси — см. Веб-поиск. { "type": "deep_research" } — цикл исследования, см. Глубокое исследование.