Документация API go2llm

Кодинг-агент в терминале и IDE: какие модели брать и почему всё решает cache read

Кодинг-агент тратит примерно 85% токенов на чтение кэша, 10% на вход и 5% на выход — go2llm называет это профилем 10/5/85. Поэтому смешанная цена claude-sonnet-5 через go2llm составляет $0,142848 за 1M токенов против $0,87 официально, и выбирать модель по колонке input бессмысленно.

Дата публикации: 11 сентября 2026, каталог цен v38. Часть обзора сценариев go2llm.

Задача

Вы гоняете Claude Code, OpenCode, Cline или Aider по репозиторию. Один запрос «почини этот баг» разворачивается в 15–40 обращений к модели: агент читает файлы, вызывает инструменты, получает результаты, правит, запускает тесты. На каждом ходе агент заново подаёт модели весь накопленный контекст — системный промпт, описания инструментов, содержимое открытых файлов, историю ходов.

Именно поэтому счёт не бьётся с интуицией «input плюс output». Токены, написанные один раз, модель видит десятки раз. go2llm тарифицирует их по третьей ставке — cache (чтение кэша), и она в биллинге кодинг-агента главная по объёму.

Три статьи расхода, которые go2llm показывает отдельной колонкой на странице цен:

СтатьяЧто этоСтавка в каталоге
inputновые токены хода + первая запись кэшаin
outputсгенерированный ответ и tool-callsout
cache readповторное чтение неизменного префиксаcache

Какие модели подходят и почему

Смешанная цена считается по формуле профиля кодинг-агента:

mixed = in × 0,10 + out × 0,05 + cache × 0,85

Разворот для claude-opus-5: 0,503 × 0,10 = 0,0503; 2,51 × 0,05 = 0,1255; 0,05025 × 0,85 = 0,0427. Сумма — $0,218512 за 1M смешанных токенов. Официальный тариф по той же формуле: 5,00 × 0,10 = 0,50; 25,00 × 0,05 = 1,25; 0,50 × 0,85 = 0,425, итого $2,175 — почти ровно в 10 раз больше.

Модельinoutcachemixed 10/5/85, $/1MКому
claude-opus-50,5032,510,050250,218512сложный рефакторинг, архитектурные правки
claude-sonnet-50,3291,640,032880,142848рабочая лошадь на весь день
claude-haiku-4-50,130,650,012990,056541мелкие правки, быстрые итерации
claude-opus-4-80,5032,510,050250,218512если нужна именно 4.8
gpt-5.3-codex0,5194,150,051920,303532код-специализация OpenAI
gpt-5.6-sol0,4022,010,04020,17487альтернатива Sonnet на OpenAI-протоколе
kimi-k2.7-code0,095480,4020,01910,045883дешёвый код-профиль
glm-5.30,1410,4420,026130,058411дешёвый агентный цикл
deepseek-v4-flash0,02260,06790,000720,006269массовые прогоны, линтеры, автофиксы

Обратите внимание на неочевидное: gpt-5.3-codex ($0,303532) — самая дорогая модель в этой подборке на профиле 10/5/85, дороже даже claude-opus-5 ($0,218512), хотя Codex не позиционируется как флагман. Причина — дорогой out (4,15) и сравнительно дорогой cache (0,05192). Сравнение по одной колонке input не показало бы этого разрыва.

Как подключить

Claude Code работает с go2llm нативно по Anthropic Messages — без прослойки-конвертера. Главный технический крючок: используйте ANTHROPIC_AUTH_TOKEN, а не ANTHROPIC_API_KEY. Если на машине уже есть вход в Claude Code под личным аккаунтом, ANTHROPIC_API_KEY может уступить сохранённому логину, и запрос уйдёт мимо go2llm с 401.

export ANTHROPIC_BASE_URL=https://go2llm.tech
export ANTHROPIC_AUTH_TOKEN=YOUR_API_KEY
export ANTHROPIC_MODEL=claude-sonnet-5
claude

Base URL для Anthropic SDK и Claude Code — https://go2llm.tech без /v1. Для OpenAI SDK — https://go2llm.tech/v1 с /v1. Перепутать — получить 404.

OpenCode ходит по OpenAI Chat Completions. Конфиг opencode.json:

{
  "provider": {
    "go2llm": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "go2llm",
      "options": { "baseURL": "https://go2llm.tech/v1" },
      "models": { "claude-sonnet-5": {}, "gpt-5.6-sol": {} }
    }
  }
}
opencode run "добавь тесты на модуль billing" -m go2llm/claude-sonnet-5

Оба клиента проверены живым запросом. Kilo Code, Cline, RooCode, Continue.dev и Aider подключаются тем же способом — сменой base URL на https://go2llm.tech/v1; go2llm их вручную не тестировал. Cursor мы живым запросом не проверяли и не утверждаем ни что он работает, ни что не работает.

Codex CLI подключается с 2026-09-14. Актуальные версии Codex CLI для кастомных провайдеров (model_providers в ~/.codex/config.toml) поддерживают только wire_api = "responses" — формат OpenAI Responses API; значение wire_api = "chat" сам Codex отклоняет с ошибкой «no longer supported». Раньше у go2llm маршрута /v1/responses не было и Codex получал 404. Теперь он опубликован и проверен живым прогоном Codex CLI 0.151.0: codex exec прочитал файл тестового проекта, исполнил инструменты и внёс правку. Прогон был на одной модели (qwen3-8-flash), интерактивный TUI codex не проверяли. Конфиг — на странице Codex API.

Сколько это стоит

Возьмём реальный объём активной разработки: 50M смешанных токенов в месяц. По профилю 10/5/85 это 5M входа, 2,5M выхода и 42,5M чтения кэша.

claude-sonnet-5:

  • вход: 5 × $0,329 = $1,645
  • выход: 2,5 × $1,64 = $4,10
  • чтение кэша: 42,5 × $0,03288 = $1,3974
  • итого $7,1424 ≈ 617 ₽ по курсу ЦБ 86,3793 ₽/$ на 01.09.2026

Тот же объём по официальному тарифу Anthropic: 5 × 2,00 = $10,00; 2,5 × 10,00 = $25,00; 42,5 × 0,20 = $8,50 → $43,50. Разница — в 6,1 раза.

claude-opus-5 на том же объёме: 5 × 0,503 = $2,515; 2,5 × 2,51 = $6,275; 42,5 × 0,05025 = $2,1356 → $10,9256 ≈ 944 ₽. Официально — $108,75.

deepseek-v4-flash: 5 × 0,0226 = $0,113; 2,5 × 0,0679 = $0,1697; 42,5 × 0,00072 = $0,0306 → $0,3135 ≈ 27 ₽.

Заметьте строку чтения кэша у Sonnet: $1,3974 из $7,1424 — это 19,6% счёта при 85% объёма. У Opus — $2,1356 из $10,9256, то есть 19,5%. Ставка маленькая, но объём огромный, и именно она отличает честный расчёт от расчёта «по input».

Welcome-грант go2llm — $1 при регистрации. На claude-sonnet-5 это 1 ÷ 0,142848 = 7M смешанных токенов, на claude-opus-5 — 4,58M, на deepseek-v4-flash — 159,5M. Первого рабочего дня хватит без пополнения.

Как контролировать расход

go2llm возвращает фактическую стоимость каждого запроса в usage.cost_usd, в том числе в финальном usage-блоке SSE-стрима. Проверить вручную:

import os
from anthropic import Anthropic

client = Anthropic(
    base_url="https://go2llm.tech",
    api_key=os.environ["GO2LLM_API_KEY"],
)

msg = client.messages.create(
    model="claude-opus-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Привет"}],
)
print(msg.usage)  # у шлюза там ещё cost_usd

Настройки ключа в кабинете go2llm: квота в долларах, список разрешённых моделей, IP allow-list, срок действия и лимит 20 RPM по умолчанию. Практика для кодинг-агента:

  • отдельный ключ на агента, квота на месяц — например $15 при расчёте выше;
  • в allowed models оставить только claude-sonnet-5 и claude-haiku-4-5, чтобы случайный ANTHROPIC_MODEL=claude-opus-5 не удвоил счёт;
  • ключ, созданный при регистрации, идёт без квоты — выставить вручную.

Списание у go2llm двухфазное: резерв оценочной стоимости до вызова, затем списание фактической и освобождение остатка. Баланс не уходит ниже нуля.

Грабли

401 при живом ключе. Использован ANTHROPIC_API_KEY вместо ANTHROPIC_AUTH_TOKEN при сохранённом логине Claude Code. См. выше.

404 model_not_found. Опечатка в model ID или устаревший каталог. Точный список — curl https://go2llm.tech/v1/models, без ключа.

400 model_protocol_mismatch. Модель дёрнули не на том endpoint'е. Нужный endpoint указан в /v1/models.

400 unsupported_content_type. Агент попытался приложить скриншот или PDF в текстовый запрос — go2llm такое на текстовых endpoint'ах не принимает.

429 quota или 429 rate_limit. Упёрлись в квоту ключа или в 20 RPM. Учитывайте заголовок Retry-After.

503 no_eligible_route / product_paused. Проверьте GET /status и повторите позже.

Стрим оборвался. go2llm может использовать совместимый fallback-маршрут на разрешённых классах ошибок до начала ответа. После первого валидного SSE-события переключение не выполняется, и автоматически повторить такой поток нельзя. Полный разбор кодов — в справочнике ошибок.

FAQ

Нужно ли переписывать код агента под go2llm? Нет. go2llm отдаёт те же поля, тот же streaming и те же tool calls, что Anthropic Messages и OpenAI Chat Completions. Меняются две переменные окружения: base URL и ключ.

Кэш включается сам или надо что-то ставить в запросе? Сам шлюз кэш не включает: prompt caching учитывается и тарифицируется на обоих протоколах, но работает ровно от того, что клиент положил в тело запроса. Клиенты вроде Claude Code расставляют кэш-брейкпоинты самостоятельно — тогда go2llm тарифицирует записи по in, а чтения по cache. Если вы ходите напрямую через SDK, cache_control надо проставить в теле самому, иначе кэша не будет. TTL кэша мы отдельно не документировали — фактическую картину проще всего увидеть по usage.cost_usd и полям usage в ответе.

Почему не взять просто самую дешёвую модель на весь день? Потому что deepseek-v4-flash за $0,3135 на 50M токенов сэкономит $6,83 относительно Sonnet, но если он сделает вдвое больше ходов на ту же задачу, экономия исчезнет. Гоняйте обе на своей кодовой базе и сравнивайте usage.cost_usd за завершённую задачу, а не за запрос.

Дальше

Чат-бот и поддержка · Извлечение данных · Командный доступ · Документация · Цены


Получить ключ и сделать первый запрос за 3 минуты → go2llm.tech