Подключить программу к «Прокси-агенту» просто: там, где раньше был адрес поставщика, укажите адрес вашего сервера, а вместо ключа поставщика — свой ключ доступа. Ничего переписывать в самой программе не нужно, поэтому подойдёт почти любая: редакторы кода, чаты, боты, внутренние скрипты.
Три адреса
Сервер понимает два распространённых «языка» обращения к моделям и умеет показать список моделей на третьем адресе.
POST /api/chat/completions— язык OpenAI. Его понимают почти все программы и библиотеки.POST /api/v1/messages— язык Anthropic. Его используют Claude и программы, настроенные на него.GET /api/models— список активных моделей в обычном виде. По нему программа понимает, какие модели ей доступны.
Программа выбирает адрес по своему языку — вам не нужно решать это за неё. Язык программы не обязан совпадать с языком поставщика модели: об этом позаботится преобразование форматов.
Авторизация
Вместо ключа поставщика программы предъявляют ваш ключ доступа. Поддерживаются два привычных способа:
Authorization: Bearer proxyagent-имя-24знака
x-api-key: proxyagent-имя-24знака
Достаточно одного из них. Если ключ не указан, неизвестен или деактивирован, запрос отклоняется с понятным текстом об ошибке ключа.
Что меняется в программе
- Адрес поставщика заменяется на адрес вашего сервера.
- Ключ поставщика заменяется на ваш ключ доступа.
- Модель указывается её публичным именем из раздела «Модели» — тем же, что видны в
GET /api/models.
Пример: Claude Code
Claude Code настраивается двумя переменными окружения. Адресом основания служит адрес вашего сервера с /api на конце — именно такую подсказку показывает раздел «Ключи»:
ANTHROPIC_BASE_URL=https://ваш-сервер/api
ANTHROPIC_AUTH_TOKEN=proxyagent-имя-24знака
После этого Claude Code обращается к вашему серверу, а тот передаёт запросы дальше — тому поставщику, который указан у выбранной модели.
Пример: обычная проверка
Убедиться, что всё работает, можно одной командой — она заменяет собой любую программу:
curl https://ваш-сервер/api/chat/completions \
-H "Authorization: Bearer proxyagent-имя-24знака" \
-H "Content-Type: application/json" \
-d '{"model":"имя-модели","messages":[{"role":"user","content":"Привет"}]}'
В ответ придёт обычный ответ модели. Если вместо него пришёл текст ошибки, он сам подскажет причину: неизвестная модель, неразрешённая модель или исчерпанный предел расхода.
Формат ошибок
Ошибки приходят в том же языке, на котором вы обратились: программа на языке OpenAI получит ответ в его виде, программа на языке Anthropic — в своём. Это важно для тех программ, которые разбирают ответы автоматически.
Одна особенность, о которой стоит знать: отказ по ключу всегда приходит в языке OpenAI — даже если вы обратились на языке Anthropic. Такова зафиксированная особенность продукта, и полагаться на единый формат для всех ошибок не стоит.
Как понять, что всё заработало
Самый простой признак — запись в журнале запросов. Отправьте из программы один запрос и обновите журнал: там должна появиться строка с именем модели, именем ключа, стоимостью и длительностью. Если строки нет, значит запрос до сервера не дошёл — проверьте адрес и ключ в настройках программы.
Дальше: что происходит, когда программа и поставщик говорят на разных языках, — в разделе Преобразование форматов.