Подключение кодинг-агентов (OpenAI-совместимые, Codex, Claude Code, OpenCode)
Kodagent предоставляет единый платный LLM-шлюз, который понимает форматы OpenAI и Anthropic. Поэтому большинство кодинг-агентов работают с ним без доработок — достаточно поменять базовый URL, указать API-ключ и выбрать модель. В этом руководстве четыре сценария: любой OpenAI-совместимый инструмент, CLI Codex от OpenAI, Claude Code и OpenCode.
Перед началом
- Зарегистрируйтесь и убедитесь, что у организации положительный баланс кредитов
(запросы тарифицируются по токенам; при нулевом балансе возвращается
402 Payment Required). - Создайте API-ключ в консоли в разделе API Keys (
/console/api-keys). Скопируйте его сразу — хранится только хэш, поэтому ключ показывается один раз. - Узнайте базовый URL. Шлюз доступен по пути
/api/llmвашего развёртывания:- Продакшн:
https://kodagent.ru/api/llm - Локально:
http://localhost:8080/api/llm
- Продакшн:
Для начала есть одна модель — glm-5.2, и каждый эндпоинт аутентифицируется API-ключом в
виде bearer-токена (Authorization: Bearer <API key>).
Для примеров ниже экспортируйте ключ и базовый URL:
export KODAGENT_API_KEY="<ваш-api-ключ>"
export KODAGENT_BASE_URL="https://kodagent.ru/api/llm/v1" # обратите внимание на /v1
1. Любой OpenAI-совместимый инструмент
Эндпоинт OpenAI Chat Completions — POST {BASE}/api/llm/v1/chat/completions. Быстрая проверка
через curl:
curl "$KODAGENT_BASE_URL/chat/completions" \
-H "Authorization: Bearer $KODAGENT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.2",
"messages": [{"role": "user", "content": "Say hello in one word."}]
}'
С официальным OpenAI SDK для Python меняются только базовый URL и ключ:
from openai import OpenAI
client = OpenAI(
base_url="https://kodagent.ru/api/llm/v1",
api_key="<ваш-api-ключ>",
)
resp = client.chat.completions.create(
model="glm-5.2",
messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)
Инструментам вроде Cline, aider, Continue и большинству «OpenAI-совместимых» интеграций нужны три значения:
- Base URL:
https://kodagent.ru/api/llm/v1 - API-ключ: ваш ключ Kodagent
- Модель:
glm-5.2
Стриминг ("stream": true) поддерживается и тарифицируется по итоговому блоку usage.
2. CLI Codex от OpenAI
Codex использует API Responses, который шлюз отдаёт по адресу
POST {BASE}/api/llm/v1/responses. Добавьте провайдера и укажите его в
~/.codex/config.toml:
model = "glm-5.2"
model_provider = "kodagent"
[model_providers.kodagent]
name = "Kodagent gateway"
base_url = "https://kodagent.ru/api/llm/v1" # Codex добавит /responses
wire_api = "responses"
env_key = "KODAGENT_API_KEY" # отправляется как Authorization: Bearer
Затем экспортируйте ключ и запустите:
export KODAGENT_API_KEY="<ваш-api-ключ>"
codex
Внимание — предупреждение о метаданных. Codex хранит встроенную таблицу метаданных моделей по слагу и не знает
glm-5.2, поэтому печатаетModel metadata for 'glm-5.2' not found. Defaulting to fallback metadata. Этот запасной вариант использует крошечное окно контекста и заставляет Codex слишком рано сжимать переписку. Исправляется регистрацией реальных лимитов (у GLM-5.2 это 1M контекста / 131K вывода) в файле каталога. Сгенерируйте корректный по схеме файл из встроенного каталога Codex и добавьте слаг:codex debug models --bundled > /tmp/codex-bundled.json jq '(.models // .) as $m | ($m[0] * {slug:"glm-5.2", display_name:"GLM-5.2", context_window:1048576, max_context_window:1048576, visibility:"list"}) as $glm | {models: ($m + [$glm])}' /tmp/codex-bundled.json > ~/.codex/model_catalog.jsonЗатем добавьте
model_catalog_json = "/абсолютный/путь/к/.codex/model_catalog.json"вconfig.tomlи перезапустите.
3. Claude Code
Claude Code использует API Anthropic Messages, который шлюз отдаёт по адресу
POST {BASE}/api/llm/v1/messages (плюс бесплатный /v1/messages/count_tokens, который он
использует для управления контекстом). Claude Code сам дописывает /v1/messages, поэтому
нужный ему базовый URL заканчивается на /api/llm — а не /api/llm/v1.
Задайте эти переменные окружения (в шелле или ~/.claude/settings.json):
export ANTHROPIC_BASE_URL="https://kodagent.ru/api/llm" # без /v1
export ANTHROPIC_AUTH_TOKEN="<ваш-api-ключ>" # отправляется как Authorization: Bearer
export ANTHROPIC_MODEL="glm-5.2"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="glm-5.2" # фоновые задачи
export ANTHROPIC_SMALL_FAST_MODEL="glm-5.2" # старые версии Claude Code
На что обратить внимание:
- Используйте
ANTHROPIC_AUTH_TOKEN, а неANTHROPIC_API_KEY. Шлюз аутентифицирует поAuthorization: Bearer …;ANTHROPIC_API_KEYотправляет заголовокx-api-keyи приведёт к ошибке401. - Переопределите и фоновую модель. Claude Code направляет мелкие/фоновые задачи на модель
класса «haiku». Шлюз знает только
glm-5.2, поэтому любой другой слаг вернёт ошибку — установкаANTHROPIC_DEFAULT_HAIKU_MODEL(иANTHROPIC_SMALL_FAST_MODELдля старых сборок) вglm-5.2гарантирует, что каждый запрос идёт на известную шлюзу модель.
Запустите claude — и он пойдёт через ваш шлюз вместо api.anthropic.com.
4. OpenCode
OpenCode работает с любым OpenAI-совместимым провайдером. Зарегистрируйте шлюз как
кастомного провайдера в ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"kodagent": {
"npm": "@ai-sdk/openai-compatible",
"name": "Kodagent",
"options": {
"baseURL": "https://kodagent.ru/api/llm/v1",
"apiKey": "<ваш-api-ключ>"
},
"models": {
"glm-5.2": {}
}
}
}
}
Запустите opencode и выберите модель (kodagent/glm-5.2) командой /models. Ключ
отправляется как Authorization: Bearer … — ровно то, что ожидает шлюз; если получаете
401, перепроверьте значение apiKey в конфиге.
Устранение неполадок
- 401 Unauthorized — неверный или отсутствующий API-ключ. Для Claude Code убедитесь, что
задан
ANTHROPIC_AUTH_TOKEN(bearer), а неANTHROPIC_API_KEY. - 402 Payment Required — у организации закончились кредиты. Пополните в консоли.
- 400 / model not found — слаг модели не включён. Используйте
glm-5.2, а для Claude Code не забудьте задать переменные фоновой модели. - Предупреждение Codex о метаданных — зарегистрируйте
glm-5.2черезmodel_catalog_json, как показано выше.
Вот и всё — один шлюз, один ключ, четыре агента.