
Конфигурация OpenCode для Claude: настройка opencode.json, модели и распространённые ошибки
OpenCode читает настройки из opencode.json. Чтобы использовать в нём Claude через этот шлюз, измените одно значение — параметр провайдера Anthropic baseURL — и укажите ключ. Ниже приведены два рабочих варианта конфигурации, важные настройки модели и контекста, а также способы исправления ошибок, с которыми пользователи OpenCode сталкиваются на этом шлюзе, по данным наших журналов запросов.
Где находится opencode.json
OpenCode объединяет глобальную конфигурацию с конфигурацией проекта: ~/.config/opencode/opencode.json для настроек, которые должны действовать везде, и opencode.json в корне проекта для конкретного репозитория. Добавление строки $schema включает автодополнение и проверку корректности в большинстве редакторов.
Не храните ключ в файле. Поместите его в переменную окружения и ссылайтесь на неё как {env:AIPRIME_API_KEY}. Ключи, которые вы добавляете с помощью /connect в OpenCode, хранятся в ~/.local/share/opencode/auth.json; opencode auth list показывает, что там хранится.
export AIPRIME_API_KEY=your_gateway_key # add to ~/.bashrc or ~/.zshrc
opencode auth list # credentials OpenCode already knows aboutВариант 1: направьте встроенный провайдер Anthropic на шлюз
Минимальное изменение: сохраните собственный провайдер Anthropic в OpenCode и его список моделей, переопределив адрес, на который он отправляет запросы.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anthropic": {
"options": {
"baseURL": "https://aiprimetech.io/v1",
"apiKey": "{env:AIPRIME_API_KEY}"
}
}
},
"model": "anthropic/claude-sonnet-5",
"small_model": "anthropic/claude-haiku-4-5"
}baseURL должен заканчиваться на /v1. Провайдер Anthropic в OpenCode использует компонент AI SDK @ai-sdk/anthropic, значение по умолчанию для которого — https://api.anthropic.com/v1; он добавляет /messages к тому, что вы укажете. Без /v1 запрос попадает на сайт и возвращает HTML, что OpenCode отображает как ошибку разбора.Вариант 2: собственный провайдер с вашим списком моделей
Отдельная запись провайдера позволяет отделить шлюз от входа через Anthropic, указать в списке выбора только нужные модели и задать лимиты контекста для каждой модели.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"aiprime": {
"npm": "@ai-sdk/anthropic",
"name": "AI Prime Tech",
"options": {
"baseURL": "https://aiprimetech.io/v1",
"apiKey": "{env:AIPRIME_API_KEY}"
},
"models": {
"claude-sonnet-5": { "name": "Claude Sonnet 5", "limit": { "context": 200000, "output": 64000 } },
"claude-opus-5-5": { "name": "Claude Opus 5.5", "limit": { "context": 200000, "output": 64000 } },
"claude-haiku-4-5": { "name": "Claude Haiku 4.5", "limit": { "context": 200000, "output": 32000 } }
}
}
},
"model": "aiprime/claude-sonnet-5",
"small_model": "aiprime/claude-haiku-4-5"
}Отдавайте предпочтение @ai-sdk/anthropic для Claude: он использует нативный Messages API, поэтому кеширование промптов и размышление работают так, как задумано Anthropic. Шлюз также поддерживает формат OpenAI, поэтому @ai-sdk/openai-compatible с тем же https://aiprimetech.io/v1 базовым URL тоже работает; этот способ следует использовать для моделей GPT с тем же ключом.
Модели и лимиты контекста
| Идентификатор модели | Для каких задач |
|---|---|
claude-sonnet-5 | Основной выбор для программирования и работы с агентами: быстрая, мощная, со средней стоимостью. |
claude-opus-5-5 | Более сложные рассуждения, масштабный рефакторинг, длительная работа агентов. |
claude-fable-5-1 | Самая мощная и дорогая; используйте её для наиболее сложных задач. |
claude-haiku-4-5 | Недорогая и быстрая: заголовки, краткие изложения, классификация, небольшие шаги. |
model использует основной агент; small_model выполняет недорогие вспомогательные задачи, например создание заголовков сессий. Значение limit.context указывает OpenCode, когда нужно сжимать контекст сессии. Если длительная сессия завершается ошибкой prompt is too long, уменьшите его (200000 — безопасное значение), чтобы OpenCode раньше создавал сводку, а не отправлял больше данных, чем принимает эндпоинт.
Идентификаторы моделей должны точно совпадать с указанными строками. Старые имена, такие как claude-3-5-sonnet-20241022 , или снимки с датой не обслуживаются; используйте идентификаторы выше или список в панели управления.
Проверьте ключ и URL перед запуском OpenCode
Один запрос из терминала позволяет проверить правильность ключа и URL независимо от конфигурации OpenCode:
curl -s https://aiprimetech.io/v1/messages \
-H "x-api-key: $AIPRIME_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-haiku-4-5","max_tokens":20,"messages":[{"role":"user","content":"ping"}]}'Ответ JSON с массивом content означает, что на стороне шлюза всё в порядке, а оставшаяся проблема находится в opencode.json. Invalid API key означает, что переменная пуста или содержит неверный ключ.
Устранение неполадок: ошибки, с которыми сталкиваются пользователи OpenCode
Это наиболее частые ошибки при работе OpenCode с этим шлюзом и способы исправления каждой из них.
| Что вы видите | Причина | Решение |
|---|---|---|
Ошибка разбора JSON, ответ начинается с < | baseURL без /v1: запрос попал на сайт, а не в API | Завершите baseURL на /v1 |
404 page not found | /v1 дважды, поэтому путь становится /v1/v1/messages | Используйте в точности https://aiprimetech.io/v1 |
Invalid API key | Переменная не экспортирована в оболочке, из которой запущен OpenCode, или используется другой ключ | echo $AIPRIME_API_KEY, opencode auth list, перезапустите OpenCode |
| Модель не поддерживается / модель не найдена | Идентификатор, который эндпоинт не обслуживает, часто старое имя с датой | Используйте идентификатор из таблицы выше |
prompt is too long: N tokens > N tokens | Объём сессии превысил лимит, который принимает модель | /compact, и уменьшите limit.context |
Concurrency limit exceeded for user | Параллельные субагенты превышают лимит одновременных запросов для вашего ключа | Запускайте меньше субагентов одновременно или попросите поддержку увеличить лимит одновременных запросов |
Insufficient account balance | Баланс исчерпан | Пополнить баланс и повторите попытку |
No available accounts или This request could not be completed | Временная нехватка ресурсов у вышестоящего провайдера | Отправьте сообщение ещё раз; если проблема сохраняется, смените модель |
Если ошибки возникают на стороне модели, а не клиента, см. руководстве по ошибкам Claude API.
Часто задаваемые вопросы
Где находится файл конфигурации OpenCode?
Как использовать Claude в OpenCode с ключом API?
Почему OpenCode выдаёт ошибку разбора или получает ответ, начинающийся с '<'?
Можно ли в OpenCode войти через подписку Claude Pro или Max?
Получите ключ API — учётная запись Anthropic и запись в лист ожидания не нужны.
Получить ключ APIAI Prime Tech — независимый API-шлюз. Он не связан с Anthropic, не одобрен этой компанией и не является её реселлером. Claude и названия связанных моделей — товарные знаки их соответствующих владельцев.