> Для получения чистого Markdown любой страницы добавьте .md к URL страницы.  
> Для полного индекса документации см. https://api.vega.chat/docs/llms.txt.  
> Для полного содержания документации см. https://api.vega.chat/docs/llms-full.txt.  
> Для интеграции AI‑клиентов (Claude Code, Cursor и др.) подключитесь к MCP‑серверу по адресу https://api.vega.chat/docs/_mcp/server.

# Серверные инструменты

Серверные инструменты находятся в бета‑версии. API и их поведение могут измениться.

Серверные инструменты — это специализированные инструменты, управляемые **VEGA**, которые любая модель может вызвать во время запроса. Когда модель решает использовать серверный инструмент, **VEGA** выполняет его на сервере и возвращает результат модели — реализация на клиенте не требуется.

## Серверные инструменты vs Плагины vs Пользовательские инструменты

|                           | Серверные инструменты    | Плагины          | Пользовательские инструменты |
| ------------------------- | ------------------------ | ---------------- | ---------------------------- |
| **Кто решает использовать** | Модель                   | Всегда выполняется | Модель                       |
| **Кто выполняет**          | VEGA                     | VEGA             | Ваше приложение               |
| **Частота вызовов**        | 0 до N раз за запрос     | Один раз за запрос | 0 до N раз за запрос          |
| **Указывается через**      | `tools` array            | `plugins` array  | `tools` array                |
| **Префикс типа**           | `openrouter:*`           | N/A              | `function`                   |

**Серверные инструменты** — это инструменты, которые модель может вызывать ноль или более раз в течение запроса. **VEGA** обрабатывает выполнение прозрачно.

**Плагины** внедряют или изменяют запрос/ответ, добавляя функциональность (например, исправление ответа, парсинг PDF). Они всегда запускаются один раз при включении.

**Пользовательские инструменты** — это стандартные инструменты вызова функций, когда модель предлагает вызов, а *ваше* приложение его исполняет.

## Доступные серверные инструменты

| Инструмент                                                                    | Тип                          | Описание                                                    |
| ----------------------------------------------------------------------------- | --------------------------- | ----------------------------------------------------------- |
| [**Web Search**](/docs/guides/features/server-tools/web-search)               | `openrouter:web_search`     | Поиск в интернете актуальной информации                     |
| [**Datetime**](/docs/guides/features/server-tools/datetime)                 | `openrouter:datetime`       | Получение текущих даты и времени                            |
| [**Image Generation**](/docs/guides/features/server-tools/image-generation)   | `openrouter:image_generation`| Генерация изображений по текстовым подсказкам                |
| [**Web Fetch**](/docs/guides/features/server-tools/web-fetch)                 | `openrouter:web_fetch`      | Получение и извлечение содержимого по URL                    |
| [**Apply Patch**](/docs/guides/features/server-tools/apply-patch)           | `openrouter:apply_patch`    | Предложение правок файлов через V4A‑diff патчи (только Responses API) |

## Как работают серверные инструменты

1. Вы включаете один или несколько серверных инструментов в массив `tools` вашего API‑запроса.  
2. Модель решает, будет ли и когда вызывать каждый серверный инструмент, исходя из подсказки пользователя.  
3. **VEGA** перехватывает вызов инструмента, выполняет его на сервере и возвращает результат модели.  
4. Модель использует результат для формирования своего ответа. При необходимости она может вызвать инструмент повторно.  

Серверные инструменты работают рядом с вашими пользовательскими инструментами — их можно включать в один и тот же запрос.

## Быстрый старт

Добавьте серверные инструменты в массив `tools`, используя префикс типа `openrouter:`:

```typescript title="TypeScript"
const response = await fetch('https://api.vega.chat/api/v1/chat/completions', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer {{API_KEY_REF}}',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    model: '{{MODEL}}',
    messages: [
      {
        role: 'user',
        content: 'What are the latest developments in AI?'
      }
    ],
    tools: [
      { type: 'openrouter:web_search' },
      { type: 'openrouter:datetime' }
    ]
  }),
});

const data = await response.json();
console.log(data.choices[0].message.content);
```

```python title="Python"
import requests

response = requests.post(
  "https://api.vega.chat/api/v1/chat/completions",
  headers={
    "Authorization": f"Bearer {{API_KEY_REF}}",
    "Content-Type": "application/json",
  },
  json={
    "model": "{{MODEL}}",
    "messages": [
      {
        "role": "user",
        "content": "What are the latest developments in AI?"
      }
    ],
    "tools": [
      {"type": "openrouter:web_search"},
      {"type": "openrouter:datetime"}
    ]
  }
)

data = response.json()
print(data["choices"][0]["message"]["content"])
```

```bash title="cURL"
curl https://api.vega.chat/api/v1/chat/completions \
  -H "Authorization: Bearer {{API_KEY_REF}}" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "{{MODEL}}",
    "messages": [
      {
        "role": "user",
        "content": "What are the latest developments in AI?"
      }
    ],
    "tools": [
      {"type": "openrouter:web_search"},
      {"type": "openrouter:datetime"}
    ]
  }'
```

## Комбинирование с пользовательскими инструментами

Серверные инструменты и пользовательские инструменты можно использовать в одном запросе:

```json
{
  "model": "openai/gpt-5.2",
  "messages": [...],
  "tools": [
    { "type": "openrouter:web_search", "parameters": { "max_results": 3 } },
    { "type": "openrouter:datetime" },
    {
      "type": "function",
      "function": {
        "name": "get_stock_price",
        "description": "Get the current stock price for a ticker symbol",
        "parameters": {
          "type": "object",
          "properties": {
            "ticker": { "type": "string" }
          },
          "required": ["ticker"]
        }
      }
    }
  ]
}
```

Модель может вызывать любую комбинацию серверных и пользовательских инструментов. **VEGA** автоматически исполняет серверные инструменты, тогда как ваше приложение обрабатывает вызовы пользовательских инструментов как обычно.

## Отслеживание использования

Использование серверных инструментов фиксируется в объекте `usage` ответа:

```json
{
  "usage": {
    "input_tokens": 105,
    "output_tokens": 250,
    "server_tool_use": {
      "web_search_requests": 2
    }
  }
}
```

## Следующие шаги

* [Web Search](/docs/guides/features/server-tools/web-search) — Поиск в интернете в реальном времени  
* [Datetime](/docs/guides/features/server-tools/datetime) — Получение текущих даты и времени  
* [Image Generation](/docs/guides/features/server-tools/image-generation) — Генерация изображений по текстовым подсказкам  
* [Web Fetch](/docs/guides/features/server-tools/web-fetch) — Получение и извлечение содержимого по URL  
* [Apply Patch](/docs/guides/features/server-tools/apply-patch) — Предложение правок файлов через V4A‑diff патчи  
* [Tool Calling](/docs/guides/features/tool-calling) — Изучение вызова пользовательских инструментов