Все статьи

AI Coding Agent и кастомные API Endpoint: Cursor vs Claude Code vs Devin Desktop — что на самом деле контролирует оператор

Cursor, Claude Code и Devin Desktop (бывший Windsurf) поддерживают кастомные API endpoint — но контроль над routing, governance и совместимость с gateway различаются кардинально. Мы сравнили операторскую конфигурацию шести coding agent, чтобы помочь выбрать инструмент под вашу инфраструктуру.

· TheRouter

В середине 2026 года каждый крупный coding agent заявляет о поддержке «принеси свой API key». Но когда вы пытаетесь направить весь трафик через единый gateway — с ротацией ключей, governance моделей, лимитами расходов и audit trail — различия становятся очевидными. Мы протестировали конфигурацию кастомных endpoint шести инструментов и задокументировали, что оператор действительно может контролировать.

Источники: Cursor Forum — Custom OpenAI Compatible API, получено 2026-07-30; Claude Code — LLM Gateway Docs, получено 2026-07-30; Devin Desktop — AI Models, получено 2026-07-30; Zed — Use API Access, получено 2026-07-30; Codex CLI Configuration (ofox.ai), получено 2026-07-30; GitHub Copilot BYOK — agentgateway.dev, получено 2026-07-30; Cursor Sub-Agent Model Bug Report, получено 2026-07-30; Devin Desktop FAQ — Windsurf Rebrand, получено 2026-07-30.

OpenAI-совместимость означает, что провайдер предоставляет endpoint chat-completions, чей контракт запроса и ответа достаточно близок к API OpenAI, чтобы немодифицированный вызов OpenAI SDK работал после замены трёх значений: API key, base URL, название модели. Минимальная поверхность на практике —POST /v1/chat/completions с messages, model и потоковым ответом в форме OpenAI.

Обзор — контроль оператора

ПараметрCursorClaude CodeDevin DesktopCodex CLIGitHub CopilotZed
Кастомный API endpointOverride OpenAI Base URLПеременная ANTHROPIC_BASE_URLНе поддерживается — managed routerПеременная OPENAI_BASE_URLТолько Enterprise proxyapi_url для каждого provider в settings.json
ПротоколOpenAI-compatibleAnthropic-native (Messages API)Проприетарный (credit-based)OpenAI-compatibleПроприетарный + BYOK (OpenAI-compatible с 2025)OpenAI-compatible + Anthropic-compatible
Routing sub-agentИгнорирует кастомный URL (известный баг)Наследует конфигурацию gatewayN/A — managed routingОдин процесс, routing согласованныйN/AОтдельно от external agent
Управление ключамиSettings UI или env varТолько env varУправляется платформой DevinТолько env varНастройки GitHub orgSystem keychain + env var
Выбор моделиСписок моделей + кастомные моделиТолько семейство ClaudeВыбор модели по creditЛюбая модель на endpointМодели по списку GitHubПолный каталог provider
Governance / auditОтсутствуетЧерез Claude Enterprise на уровне организацииSOC 2, RBACОтсутствуетGitHub org policies, audit logОтсутствует
Совместимость с gatewayЧастичная (только main agent)ПолнаяОтсутствуетПолнаяТолько EnterpriseПолная

Cursor: Base URL переопределяется, sub-agent — нет

Кастомный API endpoint в Cursor настраивается через Settings → Models → OpenAI API Key + Override OpenAI Base URL. Укажите URL вашего gateway и API key — main agent Cursor начнёт маршрутизировать через него.

Проблема: sub-agent runner Cursor полностью игнорирует кастомный base URL. Когда Cursor запускает фоновые agent для многошаговых задач, они используют дефолтный routing Cursor. Это известный и активно обсуждаемый баг по состоянию на июль 2026 года. Если governance требует, чтобы весь LLM-трафик шёл через gateway, Cursor пока не гарантирует этого.

Что можно настроить:

  • Override OpenAI Base URL — endpoint вашего gateway (например, https://gateway.yourcompany.com/v1)
  • OpenAI API Key — ключ для gateway
  • Кастомные имена моделей в выпадающем списке
  • HTTP/1.1 compatibility mode (требуется для некоторых gateway — Settings → Network → HTTP Compatibility Mode)

Что нельзя настроить:

  • Routing sub-agent — всегда использует внутренний endpoint Cursor
  • Правила routing по модели — один base URL для всех кастомных моделей
  • Политика ротации ключей — обновление вручную в Settings UI
  • Audit header на уровне запроса — кастомные header не поддерживаются
# Конфигурация Cursor (Settings UI)
# Override OpenAI Base URL: https://your-gateway.example.com/v1
# OpenAI API Key: sk-your-gateway-key
# HTTP Compatibility Mode: HTTP/1.1 (если gateway требует)

Claude Code: нативная поддержка gateway

Claude Code построен с учётом routing через gateway. Переменная окружения ANTHROPIC_BASE_URL перенаправляет все API-вызовы, включая sub-agent и фоновые задачи, через ваш endpoint.

Что можно настроить:

  • ANTHROPIC_BASE_URL — полный URL gateway (например, https://gateway.yourcompany.com)
  • ANTHROPIC_API_KEY — ключ для gateway
  • Настройки на уровне организации через Claude Enterprise (лимиты расходов, SSO, audit)
  • Модель разрешений — sandboxing, разрешённые инструменты, сетевые ограничения

Что нельзя настроить:

  • Семейство моделей — Claude Code работает только с Anthropic Messages API, gateway должен его поддерживать
  • Переопределение модели на уровне запроса — Claude Code сам выбирает уровень модели (enterprise-администраторы могут ограничить уровни)
# Конфигурация gateway для Claude Code
export ANTHROPIC_BASE_URL="https://your-gateway.example.com"
export ANTHROPIC_API_KEY="sk-your-gateway-key"

# Весь трафик Claude Code — main agent, sub-agent, фоновые задачи —
# теперь проходит через ваш gateway. Без исключений.
claude code

Enterprise-версия Claude Code добавляет governance на уровне организации: принудительный SSO, scoping API key, контроль расходов и интеграцию с audit log. В сочетании с переменной gateway это самый готовый к governance coding agent из протестированных.

Devin Desktop (бывший Windsurf): managed routing, без кастомного endpoint

Windsurf был переименован в Devin Desktop 2 июня 2026 года, когда Cognition AI объединила продуктовую линейку. Модель доступа к моделям существенно изменилась: Devin Desktop использует managed model router, автоматически выбирающий модель, а цены выражены в credit, а не в прямой стоимости API.

Вы выбираете модель из каталога Devin (Claude Sonnet 4, Claude Opus 4.5, GPT-4.1, GPT-5-Codex, SWE-1.7 и т. д.), а Devin обрабатывает routing, биллинг и инфраструктуру. Нет переопределения base_url, нет кастомной конфигурации endpoint, нет возможности подключить свой gateway.

Что можно настроить:

  • Выбор модели в каталоге Devin
  • Распределение credit по членам команды
  • SOC 2-совместимая изоляция рабочих пространств
  • Ролевое управление доступом

Что нельзя настроить:

  • Кастомный API endpoint — весь трафик идёт через инфраструктуру Devin
  • Прямое использование API key provider — Devin выступает посредником
  • Интеграция с gateway — не поддерживается
  • Правила routing на уровне запроса

Самый бескомпромиссный подход: Devin Desktop ставит простоту и безопасность по умолчанию выше гибкости routing для оператора. Для команд, которым нужен managed-опыт, это работает. Для команд, которым необходим трафик через свою инфраструктуру, — нет.

OpenAI Codex CLI: простые env var, полная поддержка gateway

Codex CLI — терминальный coding agent от OpenAI — проще всего подключить к gateway. Две переменные окружения решают всё:

# Конфигурация gateway для Codex CLI
export OPENAI_BASE_URL="https://your-gateway.example.com/v1"
export OPENAI_API_KEY="sk-your-gateway-key"

# Codex CLI теперь направляет все запросы через ваш gateway
codex

Codex CLI — однопроцессный agent (без порождения sub-agent), поэтому переопределение OPENAI_BASE_URL согласовано — каждый запрос попадает на ваш gateway. Компромисс — более простые agentic-возможности по сравнению с Cursor или Claude Code.

Что можно настроить:

  • OPENAI_BASE_URL — полный контроль endpoint
  • OPENAI_API_KEY — ключ gateway
  • Любое имя модели, которое поддерживает endpoint
  • Конфигурационный файл (~/.codex/config.yaml) для постоянных настроек

Что нельзя настроить:

  • Встроенный governance — отсутствует; делегируйте gateway
  • Audit trail — зависит от логирования на стороне gateway
  • Sandbox — только на уровне ОС (Codex использует sandbox на macOS/Linux)

GitHub Copilot: кастомные endpoint только для Enterprise

GitHub Copilot добавил поддержку кастомных endpoint (BYOK) — но только для Copilot Business и Enterprise. Индивидуальные тарифы не поддерживают кастомный proxy.

Enterprise-администраторы настраивают proxy URL в параметрах организации GitHub. Copilot направляет completions и чат через proxy, который может перехватывать, логировать и перенаправлять запросы. Это единственный coding agent, где конфигурация endpoint задаётся на уровне организации, а не пользователя — одновременно преимущество governance и ограничение гибкости.

Что можно настроить (только Enterprise):

  • Кастомный proxy endpoint на уровне организации
  • Список моделей, управляемый GitHub
  • Организационные политики (исключения контента, audit log, ограничения по IP)
  • Copilot в VS Code, JetBrains, Neovim и CLI

Что нельзя настроить:

  • Переопределение endpoint на уровне пользователя (индивидуальные тарифы)
  • Выбор модели за пределами списка GitHub
  • Routing по запросу — только общеорганизационный proxy
  • Прямое использование API key provider в стандартном потоке Copilot

Zed: самая гибкая конфигурация по provider

Zed предлагает наиболее детальный подход к API-конфигурации. Каждый provider может иметь свой api_url, кастомные header и API key — через Settings UI, settings.json или переменные окружения.

// Zed settings.json — OpenAI-compatible provider, указывающий на gateway
{
  "language_models": {
    "openai": {
      "api_url": "https://your-gateway.example.com/v1",
      "custom_headers": {
        "X-Team-Id": "engineering",
        "X-Cost-Center": "platform"
      },
      "available_models": [
        { "name": "gpt-5.5-mini", "max_tokens": 131072 }
      ]
    }
  }
}

Zed поддерживает как OpenAI-compatible, так и Anthropic-compatible кастомные endpoint с раздельной конфигурацией. Ключи хранятся в system keychain (не в открытом виде в конфигурационных файлах), переменные окружения имеют приоритет при установке.

Что можно настроить:

  • api_url для каждого provider — разные gateway для разных provider
  • Кастомные HTTP header для каждого provider — для атрибуции затрат и audit
  • Кастомные определения моделей с лимитами token
  • Хранение API key в system keychain

Что нельзя настроить:

  • Встроенный governance помимо управления ключами
  • Routing external agent (Zed Agent и external agent используют раздельную конфигурацию)
  • Принудительное применение политик на уровне команды (Zed — однопользовательский инструмент)

Матрица решений: выбор agent по требованиям routing

ТребованиеЛучший выборАльтернатива
Весь трафик через один gateway, без исключенийClaude Code (env var покрывает всё)Codex CLI (простой, согласованный)
Routing по provider через разные gatewayZed (api_url для каждого provider)Остальные — один endpoint
Enterprise governance + audit trailGitHub Copilot Enterprise (org policies + proxy)Claude Code Enterprise (SSO + контроль расходов)
Гибкость выбора моделей со своими ключамиZed (полный каталог provider)Cursor (кастомные модели, но проблема sub-agent)
Managed-опыт без собственной инфраструктурыDevin Desktop (полностью managed routing)GitHub Copilot (модели под управлением GitHub)
Согласованность sub-agent (все agent идут одним маршрутом)Claude Code (наследует gateway)Codex CLI (нет sub-agent, нечему ломаться)

Паттерны интеграции с gateway

Для команд, использующих routing gateway, — как каждый agent подключается:

Паттерн 1: OpenAI-compatible gateway (Cursor, Codex, Zed, Copilot)

Gateway предоставляет /v1/chat/completions с OpenAI-compatible форматом запроса/ответа. Большинство agent подключаются через base URL и API key.

# Что ваш gateway получает от Cursor / Codex / Zed
# POST /v1/chat/completions
{
  "model": "claude-opus-4-8",  # Gateway маршрутизирует к upstream provider
  "messages": [...],
  "stream": true
}

Gateway обрабатывает маппинг модели на provider, ротацию ключей, лимиты расходов и fallback routing. Agent не обязан знать, какой upstream provider обслуживает запрос.

Паттерн 2: Anthropic-compatible gateway (Claude Code)

Claude Code использует Anthropic Messages API, а не OpenAI-compatible. Gateway должен принимать POST /v1/messages с запросами в формате Anthropic.

# Что ваш gateway получает от Claude Code
# POST /v1/messages
{
  "model": "claude-sonnet-4-20250514",
  "max_tokens": 8192,
  "messages": [...],
  "stream": true
}

Gateway вроде LiteLLM, Portkey и TheRouter могут конвертировать между форматами. Если ваш gateway поддерживает только OpenAI-compatible, потребуется Anthropic-to-OpenAI translation layer.

Паттерн 3: Gateway невозможен (Devin Desktop)

Devin Desktop не поддерживает кастомные endpoint. Весь трафик идёт через managed-инфраструктуру Devin. Если регуляторные или compliance-требования требуют, чтобы LLM-трафик оставался внутри вашей сети, Devin Desktop не подходит.

Нерешённые проблемы

Несмотря на быстрый прогресс, у всех шести agent остаются общие операторские пробелы:

  1. Единый audit trail — ни один agent нативно не экспортирует структурированные логи (request ID, модель, token, latency, cost) в формате, готовом для вашего стека observability. Нужно логирование на стороне gateway.

  2. Единая политика для нескольких agent — если команда использует Cursor и Claude Code одновременно, единого dashboard для governance моделей нет. У каждого agent свой механизм конфигурации.

  3. Governance MCP-инструментов — Agent всё чаще используют MCP tools, но стандарта ограничения доступных MCP-серверов нет. Модель разрешений Claude Code ближе всего, но она специфична для Claude.

  4. Автоматическая ротация ключей — только GitHub Copilot Enterprise и Claude Code Enterprise предоставляют управляемый администратором lifecycle ключей. В остальных разработчики управляют ключами сами.

  5. Атрибуция расходов по проекту/команде — кастомные header Zed ближе всего к атрибуции расходов, но ни один agent не имеет встроенной маркировки центра затрат.

Routing gateway решает (1), (2) и (5), централизуя трафик. Когда OpenAI-compatible запросы проходят через единый endpoint, gateway может маркировать, логировать и применять политики вне зависимости от того, какой coding agent отправил запрос. TheRouter маршрутизирует OpenAI-compatible запросы через настроенных provider, поддерживая паттерн единого endpoint для agent с кастомным base URL.

Часто задаваемые вопросы

В: Можно ли через Cursor использовать не-OpenAI provider через gateway? Да — установите Override OpenAI Base URL на ваш gateway, и gateway сможет маршрутизировать к Anthropic, DashScope, DeepSeek или любому provider. Ограничение: sub-agent Cursor обходят это переопределение (известный баг на июль 2026).

В: Работает ли Claude Code с OpenAI-compatible gateway? Только если ваш gateway также поддерживает Anthropic Messages API. Claude Code не отправляет запросы в формате OpenAI. Gateway вроде LiteLLM и Portkey поддерживают оба формата.

В: Windsurf всё ещё доступен? Windsurf переименован в Devin Desktop 2 июня 2026 года. Существующие настройки Windsurf переносятся автоматически.

В: Какой agent лучше всего подходит для air-gapped или on-premise развёртывания? Codex CLI и Claude Code поддерживают подключение к локальному endpoint. Zed поддерживает локальные модели через Ollama или LM Studio. Devin Desktop и GitHub Copilot требуют облачного подключения.

В: Можно ли принудительно применять whitelist моделей на уровне команды? GitHub Copilot Enterprise предоставляет контроль списка моделей на уровне организации. Claude Code Enterprise позволяет ограничивать tier. Для остальных — применяйте на уровне gateway: отклоняйте запросы к моделям вне вашего утверждённого списка.


Цены, доступность функций и поведение sub-agent могут измениться с обновлениями от вендоров. Перед развёртыванием проверяйте текущую конфигурацию по официальной документации каждого инструмента.

Поддержка