Направьте Aider на OpenAI-совместимый API base.

Updated 2026-07-29

Aider подключается к OpenAI-совместимым эндпоинтам двумя переменными окружения и префиксом модели. Установите OPENAI_API_BASE на https://api.apisrouter.com/v1, запустите aider --model openai/<model-id>, и сессии парного программирования пойдут через один ключ с доступом к каждой модели каталога.

Короткий ответ: две переменные окружения и префикс модели.

Задокументированный OpenAI-совместимый путь Aider — именно такой: экспортируйте OPENAI_API_BASE со своим эндпоинтом, экспортируйте OPENAI_API_KEY с ключом для него и добавьте к имени модели префикс openai/, чтобы Aider говорил с этим base по протоколу chat-completions. Строка после префикса передаётся эндпоинту как есть, так что подходит любой ID, который обслуживает шлюз, включая ID Claude и DeepSeek. Это всё подключение целиком. На Mac и Linux используйте export; на Windows — setx и новую оболочку, поскольку setx не влияет на текущую сессию. Те же значения могут жить в конфиг-файле Aider или в файле .env, если вы предпочитаете конфигурацию на проект, а не состояние оболочки.

export OPENAI_API_BASE=https://api.apisrouter.com/v1
export OPENAI_API_KEY=sk-APIsRouter-...

aider --model openai/claude-sonnet-4-6

Как Aider резолвит модели и провайдеров.

Aider (Aider-AI на GitHub, около 47K звёзд) — оригинальный терминальный парный программист: он строит карту вашего git-репозитория, принимает запросы на изменения в чате, редактирует файлы напрямую и коммитит результат. Под капотом он маршрутизирует вызовы моделей через litellm, поэтому префикс openai/ важен: litellm читает префикс, чтобы выбрать протокол провайдера, а openai/ означает «chat-completions к тому, что указано в OPENAI_API_BASE». Имя модели без префикса вместо этого получает провайдера, выведенного из написания, что маршрутизирует ID Claude к нативному API Anthropic и вашему ANTHROPIC_API_KEY, а не к вашему шлюзу. Есть одна особенность именно Aider, о которой стоит знать до первой сессии: он ведёт собственный реестр возможностей моделей, и модель, которую он не распознаёт, вызывает предупреждение «Unknown context window size and costs, using sane defaults», после чего Aider предполагает неограниченное контекстное окно и нулевую стоимость. Сессия по-прежнему работает, но две полезные подсистемы деградируют: бюджетирование токенов не может предупредить вас до того, как вы реально превысите лимит контекста, а отображение стоимости в сессии показывает ноль. Решение — небольшой файл метаданных, разобранный ниже, и он стоит потраченных двух минут. Aider также запускает больше одной модели за сессию. Main-модель делает саму работу с кодом; weak-модель обрабатывает сообщения коммитов и суммаризацию чата; а в режиме architect отдельная editor-модель применяет план. Каждая принимает тот же префикс openai/, так что все три могут идти через шлюз на одном ключе.

Полная настройка: подключение плюс метаданные моделей.

Подключение — это две переменные выше. Полировка — это регистрация метаданных, чтобы Aider воспринимал модели шлюза как известные величины. Создайте .aider.model.metadata.json в домашней директории, корне git-репозитория или рабочей директории (или передайте --model-metadata-file), с ключом по полному квалифицированному имени, включая префикс openai/; поле litellm_provider должно соответствовать этому префиксу. С зарегистрированным max_input_tokens бюджетирование контекста Aider работает от реального окна модели, а не от предположения о бесконечности. Второй, опциональный файл, .aider.model.settings.yml, настраивает поведение по каждой модели: edit_format управляет тем, как Aider запрашивает изменения кода (варианты diff для моделей, которые с ними справляются, whole-file для тех, что нет), а use_repo_map управляет включением контекста репозитория. Aider не может вывести лучший формат правок для модели, которую он не распознаёт, так что объявление этого — разница между тем, что модель выглядит посредственной, и тем, что она работает на своём уровне.

{
  "openai/claude-sonnet-4-6": {
    "max_input_tokens": 200000,
    "max_output_tokens": 64000,
    "litellm_provider": "openai",
    "mode": "chat"
  },
  "openai/deepseek-v4-pro": {
    "max_input_tokens": 128000,
    "max_output_tokens": 16000,
    "litellm_provider": "openai",
    "mode": "chat"
  }
}

Выбор main, weak и editor моделей.

Сессии Aider длинные и итеративные, что делает сравнение моделей необычно честным: запустите одну и ту же фичу-ветку с двумя main-моделями в разные дни, и разница проявится в том, как часто вы набираете /undo. Один эндпоинт делает каждого кандидата сменой флага, а тарификация по ключу оценивает каждый эксперимент.

  • Main-модель несёт каждую правку. Она читает карту репозитория, рассуждает над вашими файлами и производит диффы, так что здесь место claude-sonnet-4-6 или gpt-5.5; модель, которая путается в синтаксисе диффа, стоит вам времени на ревью каждого изменения.
  • Weak-модель (--weak-model) пишет сообщения коммитов и суммаризирует историю чата. Она срабатывает постоянно и никогда не касается кода, так что направьте её на быстрый, недорогой ID через тот же шлюз, а не оставляйте по умолчанию где-то ещё.
  • Режим architect отделяет планирование от редактирования: main-модель планирует, editor-модель (--editor-model) применяет. Сильный reasoning-модель, планирующая, и модель, настроенная под код, вроде kimi-k2.7-code, применяющая план, — это пара, которую однопровайдерные ключи выразить не могут.
  • deepseek-v4-pro и gpt-5.4 стоит протестировать как ежедневные main-модели на задачах с большим объёмом рефакторинга, где объём токенов на сессию делает разницу в цене накопительной.

Оплата по факту · дешевле официальных цен

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

МодельОфициальная ценаНаша цена
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
GPT-5.5$5.00 / $30.00 per M$4.00 / $24.00 per M
GPT-5.4$2.50 / $15.00 per M$2.00 / $12.00 per M
DeepSeek V4 Pro$0.43 / $0.87 per M$0.40 / $0.90 per M
Kimi K2.7 Code$0.95 / $4.00 per M$1.00 / $4.00 per M

Сбои, специфичные именно для Aider.

Доверие «разумным умолчаниям». Фолбэк для неизвестной модели предполагает неограниченный контекст и нулевую стоимость. На практике это значит, что Aider с радостью позволит длинной сессии вырасти за пределы реального окна модели, пока шлюз не отклонит запрос или модель незаметно не потеряет ранний контекст, а трекер стоимости всё это время будет показывать ноль. Зарегистрируйте метаданные — и обе проблемы исчезнут. Отбрасывание префикса openai/. Без него litellm выводит провайдера из имени модели. ID Claude маршрутизируются к API Anthropic и падают из-за отсутствующего ANTHROPIC_API_KEY, что читается как проблема ключа, хотя на деле это проблема префикса. Метаданные, которые не совпадают. Записи в .aider.model.metadata.json ключуются по полному квалифицированному имени, включая префикс, а litellm_provider должен соответствовать этому префиксу. Голый ID в качестве ключа или несовпадающее поле provider тихо не применяются, и вы возвращаетесь к умолчаниям без единого сообщения об ошибке. Состояние оболочки Windows. setx записывает переменную только для будущих оболочек. Запуск aider в том же терминале, где вы только что выполнили setx, использует старое окружение, и получившаяся ошибка 401 — это проблема жизненного цикла оболочки, а не проблема учётных данных. Неверный формат правок. Незарегистрированная модель получает формат правок по умолчанию, который может не быть тем, с чем она справляется лучше всего. Если сильная модель продолжает выдавать правки, которые Aider отклоняет, явно задайте edit_format в .aider.model.settings.yml, прежде чем заключать, что модель не умеет писать код.

Кто направляет Aider через шлюз.

  • Ежедневные пользователи Aider, которые хотят переключать Claude, GPT и DeepSeek за сессию флагом --model, не поддерживая по вендорскому аккаунту на каждое семейство моделей.
  • Разработчики, комбинирующие флагманскую main-модель с быстрой weak-моделью для сообщений коммитов, оба тарифицируются на один ключ с видимостью по каждой сессии.
  • Пользователи режима architect, комбинирующие планирующую модель и редактирующую модель от разных вендоров в одной сессии.
  • Команды, онбордящие инженеров с одним секретом вместо чек-листа вендорских ключей, с тарификацией по ключу как отчётом о расходах.
  • Разработчики без доступа к биллингу конкретного вендора. Доступ на основе пополнения без требования карты убирает зависимость от регистрации у каждого провайдера.

Проверьте эндпоинт и отладьте первую сессию.

Получите список моделей шлюза перед стартом; ID после openai/ должен точно совпадать с обслуживаемым ID, включая версионные суффиксы. Сбои первой сессии быстро сортируются. 401 означает, что OPENAI_API_KEY не виден оболочке, запустившей aider (на Windows после setx — только новые оболочки; проверьте echo в том же терминале). Ошибка model-not-found от шлюза — это опечатка в ID. Ошибка, упоминающая ключ другого вендора, означает, что имя модели без префикса было маршрутизировано нативно. А предупреждение о неизвестной модели при старте — не ошибка, но это сигнал добавить файл метаданных до длинной сессии, а не после того, как она упрётся в реальный лимит контекста. В сессии собственное отображение токенов и стоимости Aider становится точным после регистрации метаданных, а консоль APIsRouter показывает те же сессии со стороны эндпоинта: модель на запрос, счётчики токенов и расходы. Для парного программиста, работающего целый день, этот вид по ключу — честный ответ на вопрос, сколько на самом деле стоит неделя работы с Aider.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY" | head -50

Частые вопросы

Как подключить Aider к OpenAI-совместимому эндпоинту?

Экспортируйте OPENAI_API_BASE с URL эндпоинта и OPENAI_API_KEY с его ключом, затем запустите aider --model openai/<model-id>. Это задокументированный OpenAI-compat путь Aider; префикс openai/ говорит его слою litellm обращаться к вашему base URL по протоколу chat-completions.

Может ли Aider работать с моделями Claude или DeepSeek через такую настройку?

Да. ID после openai/ передаётся эндпоинту как простая строка, так что работает любая модель, которую обслуживает шлюз: aider --model openai/claude-sonnet-4-6 или openai/deepseek-v4-pro. Сохраняйте префикс, иначе провайдер ID будет выведен и запрос уйдёт мимо вашего base.

Что означает предупреждение «Unknown context window size and costs»?

Aider не распознаёт модель, поэтому предполагает неограниченное контекстное окно и нулевую стоимость. Сессии работают, но бюджетирование контекста и отображение стоимости неверны. Зарегистрируйте модель в .aider.model.metadata.json по её полному квалифицированному имени openai/, и предупреждение вместе с обеими проблемами исчезнет.

Идут ли weak-модель и editor-модель через шлюз тоже?

Да, если вы их туда направите: --weak-model openai/<fast-id> для сообщений коммитов и суммаризации, и --editor-model openai/<id> в режиме architect. Все три слота принимают префикс, так что один ключ может покрыть кросс-вендорный микс main/weak/editor.

Почему Aider всё ещё просит ключ Anthropic?

Имя модели было передано без префикса openai/. litellm вывел вендора из имени и попробовал нативный маршрут Anthropic, которому нужен ANTHROPIC_API_KEY. Добавьте префикс, и запрос пойдёт на OPENAI_API_BASE с вашим ключом шлюза.

Стоит ли задавать edit_format для моделей шлюза?

Для моделей, которые Aider не распознаёт, — да. edit_format в .aider.model.settings.yml управляет тем, как Aider запрашивает изменения кода, а флагманские модели обычно лучше всего работают с форматом diff. Оставление неизвестной модели на умолчаниях может заставить сильную модель выглядеть хуже, чем она есть.