Claude Code и Anthropic SDK
Подключите Claude Code (и любой Anthropic SDK) напрямую к Mixen — оплата с баланса в рублях, каталог тех же моделей.
Установка Claude Code
Заголовок раздела «Установка Claude Code»# npm (Node.js 18+)npm install -g @anthropic-ai/claude-code# официальный установщик (macOS / Linux / WSL)curl -fsSL https://claude.ai/install.sh | bashПоддерживаются macOS, Linux, WSL и нативный Windows. Детали — в официальной документации.
Подключение к Mixen
Заголовок раздела «Подключение к Mixen»Создайте wrapper-скрипт ~/.local/bin/claude_mixen.sh:
#!/bin/bash(export ANTHROPIC_BASE_URL=https://api.mixen.aiexport ANTHROPIC_AUTH_TOKEN="ваш-api-ключ"export ANTHROPIC_API_KEY=""export ANTHROPIC_DEFAULT_OPUS_MODEL=anthropic/claude-opus-5export ANTHROPIC_DEFAULT_SONNET_MODEL=anthropic/claude-sonnet-5export ANTHROPIC_DEFAULT_HAIKU_MODEL=anthropic/claude-haiku-4.5export CLAUDE_CODE_SUBAGENT_MODEL=z-ai/glm-5.3-flashclaude --effort high)# сделать исполняемымchmod +x ~/.local/bin/claude_mixen.sh
# симлинк без расширения — команда будет короче: claude_mixenln -s ~/.local/bin/claude_mixen.sh ~/.local/bin/claude_mixenДобавьте ~/.local/bin в PATH — чтобы команда вызывалась из любого каталога.
# bash (Linux)echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrcsource ~/.bashrc# zsh (macOS по умолчанию)echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrcsource ~/.zshrcЗапуск:
claude_mixenПояснения:
ANTHROPIC_API_KEY=""— явная пустая строка обязательна: если на машине задан непустойANTHROPIC_API_KEY, Claude Code может пытаться обращаться к серверам Anthropic напрямую, минуя Mixen.CLAUDE_CODE_SUBAGENT_MODEL— модель для субагентов сессии (фоновые задачи, генерация заголовков). Любая модель из каталога.
Базовый адрес — без суффикса /v1: Claude Code и Anthropic SDK сами подставляют его в путь запроса (/v1/messages), в отличие от OpenAI SDK.
Суффикс [1m] (1M-контекст) в настройках модели поддерживается — Mixen срезает его автоматически.
Альтернатива: settings.json
Заголовок раздела «Альтернатива: settings.json»Вместо wrapper-скрипта переменные можно задать в ~/.claude/settings.json — они применятся к каждой сессии Claude Code:
{ "env": { "ANTHROPIC_BASE_URL": "https://api.mixen.ai", "ANTHROPIC_AUTH_TOKEN": "ваш-api-ключ", "ANTHROPIC_API_KEY": "", "ANTHROPIC_DEFAULT_OPUS_MODEL": "anthropic/claude-opus-5", "ANTHROPIC_DEFAULT_SONNET_MODEL": "anthropic/claude-sonnet-5", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "anthropic/claude-haiku-4.5", "CLAUDE_CODE_SUBAGENT_MODEL": "z-ai/glm-5.3-flash" }}Для одного проекта — .claude/settings.local.json (не коммитьте ключ в git).
Проверка: команда /status внутри Claude Code должна показать Anthropic base URL: https://api.mixen.ai.
Anthropic SDK (Python)
Заголовок раздела «Anthropic SDK (Python)»from anthropic import AsyncAnthropic
client = AsyncAnthropic( base_url="https://api.mixen.ai", api_key="ваш-api-ключ", # заголовок x-api-key поддерживается)msg = await client.messages.create( model="anthropic/claude-sonnet-5", max_tokens=1024, messages=[{"role": "user", "content": "Привет!"}],)print(msg.content[0].text)Что поддерживается
Заголовок раздела «Что поддерживается»| Возможность | Статус |
|---|---|
| Текст, system, stop_sequences | ✅ |
| Images (vision-модели) | ✅ |
| Tools / tool-use (агентные клиенты) | ✅ |
Streaming SSE (stream: true) |
✅ |
POST /v1/messages/count_tokens |
✅ (оценка без похода к модели) |
Prompt caching (cache_control) |
✅ |
Extended thinking (thinking) |
✅ |
Блоки размышлений (thinking) видны в ответах; reasoning-модели (Claude, GLM 5.3) шлют их и без параметра thinking.
Нюансы: оценка count_tokens учитывает плотность кириллицы (точнее, чем «4 символа на токен»), иероглифика не поддержана; останов по stop_sequences работает, но какое именно условие сработало, ответ не сообщает — stop_sequence всегда null.
Кэширование контекста
Заголовок раздела «Кэширование контекста»Prompt caching включается клиентом автоматически (Claude Code расставляет cache_control сам). Кэш живёт 5 минут со скользящим продлением: каждое попадание сбрасывает таймер — в плотной агентной сессии кэш живёт от начала до конца, а повторный контекст стоит ~10% цены. После паузы дольше 5 минут первый ход платит полную цену input плюс надбавку за запись кэша (×1.25) — это нормально, дальше кэш снова работает.
Сколько ушло из кэша, видно в usage ответа:
{"input_tokens": 16, "output_tokens": 120, "cache_read_input_tokens": 3644, "cache_creation_input_tokens": 0}input_tokens здесь — только НЕкэшированный остаток, как и требует протокол Anthropic: полный объём входа считается как input_tokens + cache_read_input_tokens. В примере выше из 3660 токенов контекста 3644 пришли из кэша.
cache_creation_input_tokens всегда 0: апстрим сообщает только объём чтения, объём записи не отдаёт. На цену это не влияет — надбавка за запись уже учтена в стоимости запроса, — но в клиентской статистике «записано в кэш» будет пусто.
В OpenAI-совместимом /v1/chat/completions та же величина лежит в usage.prompt_tokens_details.cached_tokens, а prompt_tokens там, наоборот, ВКЛЮЧАЕТ кэш — это разница протоколов, а не наша.
Подробно о том, как живёт кэш и как выжать из него максимум, — Кэширование контекста.
Расширенные размышления (thinking)
Заголовок раздела «Расширенные размышления (thinking)»По умолчанию Claude Code не включает thinking. Добавьте в wrapper переменную окружения:
export MAX_THINKING_TOKENS=10000 # бюджет размышлений в токенах (минимум 1024)Модель будет размышлять перед ответом (серые блоки «Thinking…» раскрываются по клику). Размышления тарифицируются как output-токены: 10 000 — потолок, на простых вопросах расходуется заметно меньше.
Бюджет — потолок только размышлений, а не всего ответа: Mixen дополнительно бережёт место под сам текст, поэтому даже при небольшом max_tokens вы не получите «размышления без ответа». Если итоговый потолок не оставляет бюджету минимума (1024), размышления просто не включаются.
Когда включать: архитектура, рефакторинг, незнакомый код, сложные баги. Для простых вопросов — закомментируйте: ответы быстрее и дешевле. Переменную можно задавать и на один запуск: MAX_THINKING_TOKENS=10000 claude_mixen.
Модели — из каталога; авторизация — те же ключи mxn-…, лимит 60 RPM на ключ.