«Почему у меня постоянно обрывается связь с моделью Claude в OpenCode?» — это одна из самых частых проблем, с которой сталкиваются разработчики, использующие OpenCode (теперь переименованный в Crush) для работы с Claude. Причина на самом деле проста: OpenCode использует нативный SDK Anthropic для вызова Claude, в то время как многие сторонние сервисы-прокси API поддерживают только формат, совместимый с OpenAI. Несоответствие форматов приводит к частым ошибкам и разрывам соединения.
Ключевая ценность: Прочитав эту статью, вы поймете архитектуру вызова Claude в OpenCode, узнаете 3 основные причины сбоев и получите готовое решение — использование нативного интерфейса Anthropic от APIYI для полной стабильности.

Что такое OpenCode: от OpenCode к Crush
OpenCode — это AI-ассистент для написания кода в терминале, написанный на языке Go с использованием фреймворка Bubble Tea для создания стильного TUI (терминального пользовательского интерфейса). Проект набрал более 11 600 звезд на GitHub, после чего был поглощен командой Charm и переименован в Crush (charmbracelet/crush, 22 200+ звезд).
| Информация о проекте | Детали |
|---|---|
| Оригинальное название | OpenCode (opencode-ai/opencode) |
| Текущее название | Crush (charmbracelet/crush) |
| Язык разработки | Go |
| Интерфейс | TUI (Bubble Tea) |
| GitHub Stars | 22 200+ (Crush) |
| Поддерживаемые AI-вендоры | Anthropic, OpenAI, Gemini, Groq, OpenRouter, xAI, Bedrock, Azure |
| Система инструментов | Файловые операции, Bash, Grep, Glob, LSP, MCP |
| Лицензия | MIT |
Ключевые отличия OpenCode от Claude Code и Aider
| Характеристика | OpenCode/Crush | Claude Code | Aider |
|---|---|---|---|
| Поддержка вендоров | 7+ через нативные SDK | Только Anthropic | Несколько вендоров |
| Формат API | Нативный формат вендоров | Нативный Anthropic | Преимущественно OpenAI-совместимый |
| Вызов Claude | Нативный Anthropic SDK | Нативный Anthropic SDK | OpenAI-совместимый формат |
| Расширенное мышление | Триггер по условию (вкл. "think") | Встроено | Зависит от модели |
| Поддержка MCP | Да | Да | Нет |
| UI | Графический TUI | CLI + TUI | Только CLI |
Ключевое различие: OpenCode использует нативные SDK для каждого AI-вендора, а не просто унифицированный формат OpenAI. Это означает, что при вызове Claude используется нативный Messages API от Anthropic (/v1/messages), а не Chat Completions API от OpenAI (/v1/chat/completions).
🎯 Важное примечание: В этом кроется корень проблемы — если ваш сервис-прокси API предоставляет только интерфейс
/v1/chat/completions, нативный SDK Anthropic в OpenCode не сможет корректно выполнить вызов модели. APIYI (apiyi.com) поддерживает как OpenAI-совместимый формат, так и нативный формат Anthropic, что полностью решает эту проблему.
3 фундаментальные причины частых сбоев Claude в OpenCode

Причина №1: Несовпадение формата API (самая частая)
Это источник проблем для 90% пользователей.
Путь вызова Claude в OpenCode:
OpenCode → Anthropic Go SDK → POST /v1/messages
↑ Используется нативный формат Anthropic
Интерфейс, который предоставляют многие прокси-сервисы:
Сервис-прокси → Поддерживает только POST /v1/chat/completions
↑ OpenAI-совместимый формат
Структура запросов в этих форматах совершенно разная:
| Сравнение | Нативный Anthropic (/v1/messages) |
OpenAI-совместимый (/v1/chat/completions) |
|---|---|---|
| Эндпоинт | /v1/messages |
/v1/chat/completions |
| Заголовок авторизации | x-api-key: sk-ant-xxx |
Authorization: Bearer sk-xxx |
| Формат сообщений | messages: [{role, content: [{type, text}]}] |
messages: [{role, content: "text"}] |
| Системный промпт | system: "..." (поле верхнего уровня) |
messages: [{role: "system", content: "..."}] |
| Вызов инструментов | Тип tool_use / tool_result |
Формат function_call / tool_calls |
| Потоковый ответ | message_start, content_block_delta |
data: {"choices": [...]} |
| Расширенное мышление | Нативная поддержка блока thinking |
Не поддерживается или требует спец. обработки |
Когда OpenCode отправляет запрос в формате Anthropic на эндпоинт, поддерживающий только формат OpenAI, сервер не может распарсить запрос и возвращает ошибку или разрывает соединение.
Причина №2: Прерывание потоковой передачи (Streaming)
OpenCode использует метод Messages.NewStreaming() из SDK Anthropic для обработки потоковых ответов. Последовательность событий при потоковой передаче выглядит так:
ContentBlockStartEvent → ContentBlockDeltaEvent (несколько раз) → ContentBlockStopEvent → MessageStopEvent
Если сервис-прокси неполноценно поддерживает потоковый формат Anthropic (например, не возвращает событие thinking_delta или некорректно передает content_block_stop), парсинг событий в OpenCode завершается ошибкой, и соединение обрывается.
Логика повторных попыток (retry) в OpenCode покрывает только HTTP 429 (лимиты) и 529 (перегрузка). Другие коды ошибок приводят к немедленному завершению работы, поэтому ошибки 400/500 из-за неверного формата не приводят к повторному запросу.
Причина №3: Различия в форматах расширенного мышления и инструментов
OpenCode имеет особую логику обработки расширенного мышления (thinking) для Claude:
- Автоматически включается, если в сообщении пользователя есть ключевое слово "think".
- При включении выделяет 80%
maxTokensпод бюджет мышления. - Температура принудительно устанавливается на 1.0.
Если сервис-прокси не поддерживает нативный блок thinking от Anthropic, содержимое процесса мышления теряется или вызывает ошибку парсинга. Аналогично, нативные форматы tool_use / tool_result от Anthropic кардинально отличаются от форматов function_call / tool_calls в OpenAI.
Решение: использование API-интерфейса с поддержкой нативного формата Anthropic

Архитектура поддержки двух форматов в APIYI
APIYI (apiyi.com) одновременно поддерживает два формата API, чтобы разработчики могли выбирать подходящий вариант в зависимости от используемых инструментов:
| Формат | Конечная точка (Endpoint) | Поддерживаемые инструменты | Полнота функций |
|---|---|---|---|
| Нативный Anthropic | https://api.apiyi.com/v1/messages |
OpenCode/Crush, Claude Code | 100% полная |
| Совместимый с OpenAI | https://api.apiyi.com/v1/chat/completions |
Aider, Cursor, свои приложения | Базовая функциональность |
Вариант 1: Настройка нативного формата Anthropic в OpenCode (рекомендуется)
Поскольку провайдер Anthropic в OpenCode не позволяет напрямую задать Base URL, это нужно сделать через переменные окружения:
# Установка API-ключа Anthropic (используйте ключ от APIYI)
export ANTHROPIC_API_KEY="sk-ваш_ключ_APIYI"
# Установка Base URL для Anthropic (указываем на нативный интерфейс APIYI)
export ANTHROPIC_BASE_URL="https://api.apiyi.com"
# Запуск OpenCode
opencode
Или пропишите настройки в файле конфигурации .opencode.json:
{
"providers": {
"anthropic": {
"apiKey": "sk-ваш_ключ_APIYI"
}
},
"agents": {
"coder": {
"model": "claude-sonnet-4-6",
"maxTokens": 16000
},
"task": {
"model": "claude-haiku-4-5-20251001",
"maxTokens": 8000
}
}
}
Использование через переменные окружения:
# Добавьте в .bashrc или .zshrc
export ANTHROPIC_API_KEY="sk-ваш_ключ_APIYI"
export ANTHROPIC_BASE_URL="https://api.apiyi.com"
Таким образом, OpenCode будет обращаться к https://api.apiyi.com/v1/messages через нативный SDK Anthropic, сохраняя все возможности: кэширование промптов (Prompt Caching), расширенное мышление (thinking) и нативные вызовы инструментов.
Вариант 2: Использование формата, совместимого с OpenAI, через Local Provider (резервный)
Если первый вариант не сработал, можно настроить APIYI как Local Provider в OpenCode:
# Настройка локальной конечной точки
export LOCAL_ENDPOINT="https://api.apiyi.com/v1"
export LOCAL_API_KEY="sk-ваш_ключ_APIYI"
{
"providers": {
"local": {
"apiKey": "sk-ваш_ключ_APIYI"
}
},
"agents": {
"coder": {
"model": "claude-sonnet-4-6",
"maxTokens": 16000
}
}
}
Внимание: этот вариант использует формат, совместимый с OpenAI (/v1/chat/completions), поэтому вы потеряете следующие нативные функции:
- Кэширование промптов (Prompt Caching)
- Нативные блоки расширенного мышления (thinking block)
- Нативный формат вызова инструментов Anthropic
💡 Совет: отдавайте предпочтение первому варианту (нативный формат Anthropic) для доступа ко всем функциям и максимальной стабильности.
При получении ключа в личном кабинете APIYI (apiyi.com) выберите группу 【ClaudeCode】, чтобы получить скидку 88%.
Полное руководство по вызову Claude API через APIYI
Получение и настройка ключа
| Шаг | Действие | Примечание |
|---|---|---|
| 1. Получение ключа | Перейдите на api.apiyi.com/token |
Панель управления токенами |
| 2. Выбор токена | Используйте стандартный или создайте новый | При создании выберите группу 【ClaudeCode】 для скидки 12% |
| 3. Базовый URL | https://api.apiyi.com |
Единый адрес для всех запросов |
Два поддерживаемых формата запросов
Формат 1: Родной формат Anthropic (рекомендуется для OpenCode/Claude Code)
Адрес запроса: https://api.apiyi.com/v1/messages
import anthropic
client = anthropic.Anthropic(
api_key="sk-ваш_APIYI_ключ",
base_url="https://api.apiyi.com"
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
messages=[
{"role": "user", "content": "Напиши алгоритм быстрой сортировки на Python"}
]
)
print(message.content[0].text)
Формат 2: Совместимый с OpenAI формат (рекомендуется для Aider/Cursor/собственных приложений)
Адрес запроса: https://api.apiyi.com/v1/chat/completions
import openai
client = openai.OpenAI(
api_key="sk-ваш_APIYI_ключ",
base_url="https://api.apiyi.com/v1"
)
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[
{"role": "user", "content": "Напиши алгоритм быстрой сортировки на Python"}
]
)
print(response.choices[0].message.content)
Список поддерживаемых моделей Claude
Актуальные основные модели (рекомендуется):
| ID модели | Серия | Назначение | Сценарии использования |
|---|---|---|---|
claude-opus-4-6 |
Opus | Максимальная логика | Архитектурное проектирование, глубокий анализ |
claude-sonnet-4-6 |
Sonnet | Баланс производительности | Повседневное кодинг, ревью кода |
claude-haiku-4-5-20251001 |
Haiku | Быстрый отклик | Простые задачи, классификация, извлечение данных |
Модели с рассуждением (принудительное расширенное мышление):
| ID модели | Описание |
|---|---|
claude-opus-4-6-thinking |
Opus + принудительное рассуждение |
claude-sonnet-4-6-thinking |
Sonnet + принудительное рассуждение |
claude-haiku-4-5-20251001-thinking |
Haiku + принудительное рассуждение |
Модели с рассуждением используют ту же базу, что и стандартные, но принудительно активируют расширенное мышление (thinking), выдавая подробный процесс рассуждения. Идеально для задач, требующих глубокой проработки.
Посмотреть код вызова с расширенным мышлением (родной формат Anthropic)
import anthropic
client = anthropic.Anthropic(
api_key="sk-ваш_APIYI_ключ",
base_url="https://api.apiyi.com"
)
# Используем модель thinking для принудительного расширенного мышления
message = client.messages.create(
model="claude-sonnet-4-6-thinking",
max_tokens=16000,
thinking={
"type": "enabled",
"budget_tokens": 10000 # Бюджет токенов на процесс мышления
},
messages=[
{"role": "user", "content": "Проанализируй временную сложность этого кода и предложи оптимизацию"}
]
)
for block in message.content:
if block.type == "thinking":
print(f"Процесс мышления:\n{block.thinking}")
elif block.type == "text":
print(f"Итоговый ответ:\n{block.text}")
🚀 Быстрый старт: Перейдите на APIYI
api.apiyi.com/token, чтобы получить ключ.
Выберите группу 【ClaudeCode】 для получения скидки 12%.
Один ключ поддерживает как родной формат Anthropic, так и совместимый с OpenAI,
что позволяет использовать его во всех популярных инструментах для кодинга: OpenCode, Claude Code, Aider, Cursor и др.
Лучшие способы подключения для инструментов разработки
| Инструмент | Рекомендуемый формат | Base URL | Рекомендуемая модель |
|---|---|---|---|
| OpenCode/Crush | Родной Anthropic | https://api.apiyi.com |
claude-sonnet-4-6 |
| Claude Code | Родной Anthropic | https://api.apiyi.com |
claude-sonnet-4-6 |
| Aider | OpenAI-совместимый | https://api.apiyi.com/v1 |
claude-sonnet-4-6 |
| Cursor | OpenAI-совместимый | https://api.apiyi.com/v1 |
claude-sonnet-4-6 |
| Cline (VS Code) | OpenAI-совместимый | https://api.apiyi.com/v1 |
claude-sonnet-4-6 |
| Свои приложения (Python) | Любой из двух | См. выше | На выбор |
Шпаргалка по настройке инструментов
OpenCode/Crush:
export ANTHROPIC_API_KEY="sk-ваш_APIYI_ключ"
export ANTHROPIC_BASE_URL="https://api.apiyi.com"
Claude Code:
export ANTHROPIC_API_KEY="sk-ваш_APIYI_ключ"
export ANTHROPIC_BASE_URL="https://api.apiyi.com"
claude
Aider:
export OPENAI_API_KEY="sk-ваш_APIYI_ключ"
export OPENAI_API_BASE="https://api.apiyi.com/v1"
aider --model claude-sonnet-4-6
🎯 Единое управление: Используйте один ключ APIYI (apiyi.com) для всех инструментов разработки.
Поддержка более 300 моделей, включая Claude, GPT, Gemini, с единой системой биллинга и управления.
Часто задаваемые вопросы
Q1: Что делать, если OpenCode выдает ошибку «agent coder not found»?
Это самая частая ошибка в OpenCode, которая означает, что программа не нашла корректную конфигурацию провайдера ИИ. Проверьте следующее: 1) установлена ли переменная окружения ANTHROPIC_API_KEY и является ли она валидной; 2) правильно ли указан providers.anthropic.apiKey в файле .opencode.json; 3) есть ли средства на балансе ключа. Ключи, полученные через сервис-прокси API APIYI (apiyi.com/token), можно использовать напрямую без дополнительной настройки.
Q2: Почему нативный формат Anthropic стабильнее, чем формат, совместимый с OpenAI?
Потому что OpenCode использует официальный Go SDK от Anthropic для прямых вызовов. SDK внутри себя обрабатывает специфические для Anthropic форматы потоковых событий (streaming events), логику повторных попыток и обработку ошибок. При использовании формата, совместимого с OpenAI, требуется промежуточный слой преобразования, в процессе которого могут теряться критически важные данные, такие как события thinking_delta или формат tool_use, что приводит к сбоям парсинга. Эндпоинт /v1/messages сервиса APIYI (apiyi.com) полностью поддерживает нативный протокол Anthropic, поэтому преобразование форматов не требуется.
Q3: В чем разница между моделями с «thinking» и обычными моделями? Когда какую использовать?
claude-sonnet-4-6 и claude-sonnet-4-6-thinking — это одна и та же базовая модель. Версия "thinking" принудительно включает расширенный процесс мышления, выдавая подробный ход рассуждений. Обычная версия по умолчанию его не включает (в OpenCode она активируется автоматически, если в сообщении есть ключевое слово "think"). Совет: для повседневного написания кода используйте обычную версию (она быстрее и экономит токены), а для проектирования сложной архитектуры или отладки — версию "thinking".
Q4: OpenCode переименовали в Crush, изменилась ли настройка?
Основная архитектура осталась прежней, Crush унаследовал весь код OpenCode. Файл конфигурации может называться .crush.json вместо .opencode.json (зависит от версии), но переменные окружения остались прежними. Настройка ANTHROPIC_API_KEY и ANTHROPIC_BASE_URL выполняется точно так же. Рекомендуем использовать последнюю версию Crush для лучшей стабильности и доступа к новым функциям.

Итог: выбираем правильный формат API, и Claude в OpenCode работает как часы
Основная причина частых сбоев моделей Claude в OpenCode/Crush — это несоответствие формата API. OpenCode использует нативный формат Anthropic, в то время как многие сервисы-прокси API поддерживают только формат, совместимый с OpenAI.
Решение предельно простое:
- Используйте API-сервис с поддержкой нативного формата Anthropic — эндпоинт
/v1/messagesот APIYI. - Настройте правильные переменные окружения —
ANTHROPIC_BASE_URL=https://api.apiyi.com. - Выбирайте подходящую модель — для повседневных задач используйте
claude-sonnet-4-6, а для глубоких рассуждений —claude-sonnet-4-6-thinking.
Рекомендуем использовать APIYI (apiyi.com) для централизованного управления вызовами моделей во всех ваших инструментах для кодинга. Перейдите на api.apiyi.com/token, чтобы получить ключ, и выберите группу 【ClaudeCode】 для получения скидки 12%. Один ключ поддерживает как нативный формат Anthropic, так и формат OpenAI, что обеспечивает совместимость со всеми популярными AI-инструментами для разработки.
📝 Автор статьи: Техническая команда APIYI | APIYI apiyi.com — платформа для унифицированного доступа к API 300+ больших языковых моделей.
Справочные материалы
-
Репозиторий OpenCode на GitHub (в архиве): исходный код проекта и документация.
- Ссылка:
github.com/opencode-ai/opencode - Примечание: проект был переименован в Crush.
- Ссылка:
-
Репозиторий Crush на GitHub: преемник проекта, находящийся в активной разработке.
- Ссылка:
github.com/charmbracelet/crush - Примечание: актуальная версия, поддерживаемая командой Charm.
- Ссылка:
-
Документация Anthropic API: спецификация нативного формата Messages API.
- Ссылка:
docs.anthropic.com/en/api/messages - Примечание: полная информация о форматах запросов и ответов для эндпоинта
/v1/messages.
- Ссылка:
-
Документация APIYI: руководство по подключению Claude API.
- Ссылка:
apiyi.com - Примечание: поддержка как нативного формата Anthropic, так и формата, совместимого с OpenAI.
- Ссылка: