Подключите AITUNNEL к популярным инструментам разработки и автоматизации.

DeepSeek HarnessАгентный харнесс DeepSeek с рабочими пространствами и плагинами — модели через AITUNNEL
Claude CodeТерминальный агент Anthropic — правит код, запускает команды и git-операции через AITUNNEL
Codex CLICodex CLIOpen-source агент OpenAI в терминале — правки кода, ревью и автоматизация задач
Cursor IDEAI-редактор на VS Code с автодополнением Tab, агентом Composer и моделями через AITUNNEL
Qwen CodeCLI-агент для Qwen3-Coder — навигация по проекту, сборка фич и правки через AITUNNEL
OpenCodeОткрытый агент для терминала и IDE с поддержкой 75+ LLM-провайдеров
n8nВизуальная автоматизация с AI-агентами, RAG и интеграциями — модели через AITUNNEL
ClineAI-агент для VS Code — правки файлов, команды в терминале и браузер с подтверждением шагов
OpenClawAI-агент для Telegram, Discord и Slack — модели через один API-ключ AITUNNEL
Все инструменты

Управление пресетами

Создавать, менять и удалять пресеты аккаунта через API. Пресет — имя, которое ставится в поле model и подставляет модели, промпт и параметры.

Адрес
Авторизация
Ключ управления с правами presets:read, presets:write

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

Методы

МетодПравоЧто делает
GET /presetspresets:readВсе пресеты аккаунта, по имени
POST /presetspresets:writeСоздать пресет
GET /presets/{id}presets:readОдин пресет
PATCH /presets/{id}presets:writeИзменить переданные поля
DELETE /presets/{id}presets:writeУдалить пресет

Создать пресет

curl -X POST https://api.aitunnel.ru/v1/aitunnel/presets \
  -H "Authorization: Bearer sk-aitunnel-mgmt-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "support-bot",
    "description": "Ответы поддержки",
    "models": ["claude-sonnet-4.6", "gpt-5.4-mini"],
    "system_prompt": "Ты — ассистент поддержки. Отвечай кратко.",
    "temperature": 0.2,
    "max_tokens": 1024,
    "cache_control": { "type": "ephemeral", "ttl": "1h" },
    "provider": { "sort": "price" }
  }'

Ответ 201 — пресет целиком:

JSON
{
  "id": 318,
  "name": "support-bot",
  "description": "Ответы поддержки",
  "models": ["claude-sonnet-4.6", "gpt-5.4-mini"],
  "system_prompt": "Ты — ассистент поддержки. Отвечай кратко.",
  "temperature": 0.2,
  "top_p": null,
  "frequency_penalty": null,
  "presence_penalty": null,
  "top_k": null,
  "max_tokens": 1024,
  "seed": null,
  "verbosity": null,
  "reasoning_enabled": null,
  "reasoning_effort": null,
  "reasoning_max_tokens": null,
  "reasoning_exclude": null,
  "web_search": null,
  "cache_control": { "type": "ephemeral", "ttl": "1h" },
  "provider": { "sort": "price" },
  "service_tier": null,
  "stop": null,
  "response_format": null,
  "override": true,
  "created_at": "2026-11-14T13:16:00.000Z",
  "updated_at": "2026-11-14T13:16:00.000Z"
}
  • Обязательны name и models. Всё остальное по умолчанию null: пресет этот параметр не задаёт, и запрос сохраняет свой.
  • Пресет работает сразу: запрос с "model": "support-bot" уйдёт в claude-sonnet-4.6 с этим промптом и параметрами.
  • Есть ли модель в каталоге, при сохранении не проверяется: на неизвестную модель ответит сам запрос.
  • В аккаунте — до 50 пресетов.

Поля пресета

Одни и те же поля принимаются в запросе и приходят в ответе. Поле, которого метод не знает, — ошибка 400.

ПолеСмысл
idНомер пресета, для путей /presets/{id}
nameИмя, которым пресет вызывается в поле model. Латинские буквы, цифры, точка, дефис и подчёркивание; начинается с буквы или цифры; до 64 символов. Имя модели каталога занять нельзя. Обязательно
descriptionЗаметка для себя, до 256 символов
modelsОт 1 до 5 моделей: первая основная, остальные запасные по порядку. Обязательно
system_promptСистемный промпт, до 20 000 символов
temperature, top_pОт 0 до 2 и от 0 до 1
frequency_penalty, presence_penaltyОт −2 до 2
top_k, max_tokens, seedЦелые числа; max_tokens — до 1 000 000
verbositylow, medium или high
reasoning_enabled, reasoning_effort, reasoning_max_tokens, reasoning_excludeРассуждения: включить, усилие (minimal, low, medium, high, xhigh), бюджет токенов, скрыть цепочку
web_searchПараметры инструмента aitunnel:web_search: engine, mode, max_results, max_uses, max_total_results, search_context_size, max_characters, user_location, allowed_domains, excluded_domains, x_search
cache_controlКеширование промпта: { "type": "ephemeral" }, с "ttl": "1h" — на час вместо 5 минут
providerВыбор провайдера: sort, order, only, ignore, allow_fallbacks, require_parameters, data_collection, zdr, quantizations, preferred_min_throughput, preferred_max_latency
service_tierflex или priority
stopДо 4 стоп-последовательностей по 256 символов
response_format{ "type": "json_object" } или json_schema с name, strict и schema, как в Chat Completions
overridetrue — значения пресета заменяют значения запроса; false — только заполняют то, что запрос не задал. По умолчанию true
created_at, updated_atКогда пресет создан и изменён

Список и один пресет

curl https://api.aitunnel.ru/v1/aitunnel/presets \
  -H "Authorization: Bearer sk-aitunnel-mgmt-xxx"

Ответ — { "data": [...] } с пресетами в алфавитном порядке имён. GET /presets/{id} возвращает один пресет.

Изменить пресет

PATCH /presets/{id} меняет только переданные поля. null очищает параметр; name и models очистить нельзя. Ответ — пресет целиком.

curl -X PATCH https://api.aitunnel.ru/v1/aitunnel/presets/318 \
  -H "Authorization: Bearer sk-aitunnel-mgmt-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "models": ["claude-sonnet-4.6"],
    "temperature": null
  }'

Изменение действует со следующего запроса, который назовёт пресет. Если пресет переименован, запросы со старым именем перестанут его находить.

Удалить пресет

DELETE /presets/{id} отвечает 204 без тела.

Ошибки

СтатусСмысл
400invalid_request — неверное или неизвестное поле. В error.metadata.fields — каждое поле с объяснением
401authentication_failed — ключа нет, он неверный, отозван или истёк
403permission_denied — у ключа нет нужного права, IP не в списке разрешённых или метод вызван API-ключом
404not_found — «Пресет не найден»
409invalid_request — пресет с таким именем уже есть (в metadata.fields — поле name) или в аккаунте уже 50 пресетов
409
{
  "error": {
    "code": 409,
    "type": "invalid_request",
    "message": "Пресет с именем «support-bot» уже существует",
    "metadata": {
      "fields": [
        {
          "field": "name",
          "message": "Пресет с именем «support-bot» уже существует"
        }
      ]
    },
    "request_id": "req-0J9fQk2vXc8LrT1mNbZa4e"
  }
}

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