Weave Router: модель-роутер для Claude Code, Codex и Cursor за 40-70% экономии
Weave Router: модель-роутер для Claude Code, Codex и Cursor за 40-70% экономии
Когда вы работаете с Claude Code или Cursor, вы платите за каждый токен, который проходит через API. Иногда задача элементарная — переименовать переменную, найти все вхождения функции, добавить комментарий. Иногда нужна мощная модель для сложного рефакторинга, многомодульного ревью или генерации архитектуры с нуля. Но что, если вам не нужно думать об этом вручную?
Именно это делает Weave Router: проксирует запросы от Claude Code, Codex и Cursor к оптимальной модели из пула провайдеров. Заявленная экономия — 40-70% на API-бюджете.
Что такое Weave Router
По сути — это умный reverse proxy между вашим агентом и API провайдеров. Router анализирует каждый запрос и решает, какой модели его отправить. Это не round-robin и не случайный выбор: в основе лежит Avengers-Pro — исследование команды Weave, опубликованное на ArXiv в 2025 году.
Avengers-Pro использует крошечный on-box embedder, который встраивает текст запроса в векторное пространство и классифицирует задачу по кластерам. Каждый кластер соответствует типу задачи — простой рефакторинг, сложная генерация, анализ кода, дебаг, написание тестов. Модель выбирается из пула по score, который учитывает и качество, и стоимость. Время принятия решения — меньше 50 мс, то есть незаметно для пользователя.
Router поддерживает:
- Anthropic Messages API (Claude 3.5 Sonnet, 3.7 Sonnet, Sonnet 4)
- OpenAI Chat Completions (GPT-4o, o3, o4-mini)
- Gemini native (gemini-2.0-flash, gemini-2.0-pro)
- Open-source модели через OpenRouter: DeepSeek, Kimi, GLM, Qwen, Llama, Mistral
При этом ваши API-ключи остаются на вашей машине — роутер работает в режиме BYOK (Bring Your Own Keys). Никаких дополнительных платежей за проксирование, никакого escrow. Провайдеры видят ваши реальные ключи, Weave не перехватывает трафик.
Как подключить к Claude Code
Самый простой путь — hosted-версия от Weave. Одна команда:
npx @workweave/router
Инсталлятор задаст несколько вопросов: какой tool вы используете (Claude Code, Codex или opencode), на какой scope (user-wide или per-project), и автоматически пропишет конфиг в нужное место. Для Claude Code это файл настроек, для Codex — ~/.codex/config.toml, для opencode — ~/.config/opencode/opencode.json.
Для self-hosted варианта понадобится Postgres и пара шагов:
echo "OPENROUTER_API_KEY=sk-or-v1-..." >> .env.local
make full-setup
После чего роутер поднимается на localhost:8080, дашборд доступен на :8080/ui/ (пароль по умолчанию: admin), а ваш rk_... ключ для авторизации печатается в логах.
Выключить роутер и вернуться к прямому API:
npx @workweave/router off --claude
Конфиг остаётся на месте, включить обратно — та же команда с on. Это удобно для отладки: если что-то пошло не так, одна команда возвращает вас к нормальному режиму.
Как это работает изнутри
Роутер поднимает HTTP-сервер на localhost:8080 и проксирует запросы к upstream-провайдерам. Он понимает API-форматы всех трёх платформ и преобразует запросы на лету. Ключевой момент: роутер не переводит запросы из одного формата в другой — он парсит запрос, принимает решение о маршрутизации, и проксирует оригинальный запрос выбранному провайдеру.
# Как Anthropic
curl -sS http://localhost:8080/v1/messages \
-H "Authorization: Bearer rk_..." \
-d '{"model":"claude-sonnet-4-5","max_tokens":256,
"messages":[{"role":"user","content":"hi"}]}'
# Как OpenAI
curl -sS http://localhost:8080/v1/chat/completions \
-H "Authorization: Bearer rk_..." \
-d '{"model":"gpt-4o-mini",
"messages":[{"role":"user","content":"hi"}]}'
Endpoint /v1/route позволяет посмотреть решение роутера без реального проксирования — удобно для отладки и для понимания, какая модель была бы выбрана для конкретного запроса. Это полезно, когда вы хотите протестировать, как роутер классифицирует тот или иной промпт, не тратя токены и не меняя конфиг.
Архитектура: Go, Postgres, OTLP
Роутер написан на Go, что делает его легковесным и быстрым. Никаких проблем с памятью или долгих стартов, как бывает с Node.js-сервисами. Бинарник компактный, а latency на проксирование минимальная — те самые 50 мс на маршрутизацию плюс сетевой round-trip до провайдера.
Postgres используется для хранения истории запросов, логов маршрутизации и, вероятно, для кеширования embedding-векторов и score-данных. При self-hosted деплое оба контейнера (роутер и Postgres) поднимаются через make full-setup, миграции применяются автоматически.
OTLP-трейсы экспортируются из коробки. По умолчанию они летят в дашборд Weave, но можно подключить любой OTLP-совместимый коллектор: Honeycomb, Datadog, Grafana Tempo, Jaeger. Это критично для команд, где нужно понимать, какие модели вызываются и сколько стоит каждый вызов.
Почему это важно для инженерных команд
Claude Code и Cursor используют мощные модели (Claude Sonnet 4, GPT-4o) для всех задач — в том числе тривиальных. Переименование переменной, исправление опечатки, поиск по файлу, навигация по коду — всё это идёт через самую дорогую модель, хотя задачу можно решить и за долю стоимости.
Роутер решает эту проблему на уровне инфраструктуры. Вместо того чтобы писать промпты типа «используй дешёвую модель для простых задач» или настраивать правила маршрутизации, вы просто подключаете прокси — и дальше вся магия происходит автоматически.
Заявленная экономия 40-70% выглядит реалистично, если учесть структуру типичного сеанса работы с агентом. В среднем сеансе работы с Claude Code или Cursor:
- 40-50% запросов — простые операции: навигация по файлам, поиск, переименование, изменение комментариев
- 20-30% — средней сложности: рефакторинг в пределах одного файла, автодополнение, написание несложных тестов
- 10-20% — сложные задачи, где действительно нужна топ-модель: многомодульный рефакторинг, генерация архитектуры, сложный дебаг
Роутер отправляет простые запросы в DeepSeek или GPT-4o-mini, а сложные — в Claude Sonnet 4 или o3. Суммарно это даёт существенную экономию без видимой потери качества на большинстве задач.
Что на практике даёт экономия
Посчитаем грубо. Если вы платите за Claude Sonnet 4 примерно $15 за миллион токенов на вход и $75 за миллион токенов на выход, а ваш типичный запрос — 500 токенов на вход и 300 на выход, то один запрос стоит около $0.028. При 200 запросах в день — это $5.60 в день или $168 в месяц на одного пользователя.
Роутер перенаправит 40-50% запросов в GPT-4o-mini ($0.15/$0.60 за миллион) или DeepSeek V3. При той же структуре запросов стоимость падает до $0.003-0.005 за простой запрос. Это снижает месячный счёт с $168 до $60-80 — и это только для одного пользователя. Для команды из 10 инженеров экономия составит $800-1000 в месяц.
Важно понимать: роутер не экономит на качестве. Сложные задачи по-прежнему идут в топ-модели. Простые — в быстрые и дешёвые. Граница между «простым» и «сложным» определяется автоматически на основе эмбеддинга запроса и historical score модели на аналогичных задачах.
Чем это отличается от Sakana Fugu
Несколько недель назад мы писали про Sakana Fugu — японский модель-роутер, который тоже умеет выбирать оптимальную модель. Fugu — это отдельная модель, которую нужно хостить и обслуживать. Weave Router — это прокси, который работает с вашими существующими ключами и не требует отдельной инфраструктуры для модели.
Fugu хорош для случаев, когда у вас есть инфраструктура и вы хотите получить максимальный контроль над процессом маршрутизации. Weave Router — для команд, которые хотят plug-and-play решение с минимальным overhead.
Cursor и early beta
Поддержка Cursor пока в early beta. Интеграция реализована через переопределение Base URL в настройках: Settings → Models → Override OpenAI Base URL → http://localhost:8080/v1. Это работает, но менее нативно, чем интеграция с Claude Code или Codex, где роутер правит конфиг на уровне файлов и не полагается на UI-настройки.
Если вы используете Cursor как основной IDE-агент, стоит попробовать и посмотреть, насколько стабильно работает переключение. Для Claude Code и Codex интеграция более зрелая.
Self-hosted: что нужно
Для self-hosted-деплоя нужен Postgres. Это не zero-config решение, но и не сложное: make full-setup поднимает оба контейнера (роутер и БД) вместе с миграциями. Basic Docker и понимание переменных окружения — достаточный уровень.
Часто задаваемые вопросы
Роутер добавляет задержку?
Добавление роутера в цепочку вносит overhead в ~50 мс на маршрутизацию. Для большинства задач это незаметно — Claude Code и Cursor работают с латенси от провайдеров в 1-3 секунды на сложные запросы. 50 мс — это 2-5% от общего времени ответа.
Что если роутер выберет неправильную модель?
Вы всегда можете посмотреть логи и увидеть, какая модель была выбрана и почему. Endpoint /v1/route позволяет протестировать любой промпт без реального вызова. Если вы видите систематическую ошибку — можно поправить конфиг.
Нужно ли платить за роутер?
Нет. Роутер бесплатный, open-source, под лицензией ELv2. Вы платите только за API-провайдеров, которых используете. Hosted-версия тоже бесплатная на текущий момент.
Какие модели лучше для простых задач?
GPT-4o-mini и DeepSeek V3 хорошо справляются с навигацией, поиском и мелким рефакторингом. Они дешевле в 10-20 раз по сравнению с Claude Sonnet 4 и при этом дают сопоставимое качество на простых операциях. Роутер использует эту разницу для экономии.
Можно ли добавить свою модель?
Да. Роутер поддерживает любой OpenAI-compatible endpoint через OpenRouter. Если ваша модель доступна через OpenRouter API — просто добавьте ключ в конфиг и роутер начнёт маршрутизировать к ней запросы.
Как роутер решает, какая модель лучше для задачи?
В основе лежит Avengers-Pro — исследование от команды Weave. Embedder превращает текст запроса в вектор, затем задача классифицируется по кластерам, и для каждого кластера есть historical score моделей на аналогичных задачах. Система учится: если GPT-4o-mini стабильно хорошо справлялся с навигацией по коду в прошлом, роутер будет использовать его для похожих задач в будущем.
Итог
Weave Router — это практичная реализация модели-роутера для инженерных команд, которые хотят экономить на API-бюджете Claude Code и Cursor без ручной настройки правил маршрутизации. Заявка на 40-70% экономии звучит агрессивно, но архитектура на основе Avengers-Pro и динамический выбор модели обосновывают этот claim.
Если вы уже используете Claude Code или Codex в команде — попробуйте hosted-версию одной командой. Это займёт пять минут, и вы сразу увидите в дашборде, как роутер распределяет запросы по моделям и категориям. Для более глубокого погружения — есть self-hosted режим с полным контролем над провайдерами, ключами и трейсами.
Репозиторий: github.com/workweave/router. Лицензия ELv2.