Files
knowledge-base/decisions/2026-05-06-openclaw-opus-4-7-via-max-cliproxy.md

120 lines
6.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
date: 2026-05-06
type: decision
tags: [decision, openclaw, omniroute, claude, opus, cliproxy, max-plan]
---
# 2026-05-06: openclaw перешёл на Claude Opus 4.7 через Max-подписку (cc/* в OmniRoute)
## Контекст
Искали стабильный источник Claude Opus 4.6/4.7 для openclaw — обсуждали построение Workspace-фарма на новом домене с пулом аккаунтов под Antigravity. Перед тем как затевать фарм ($12/домен + время на регистрации + риск массового бана), проверили что фактически работает в текущей OmniRoute.
## Что обнаружили в OmniRoute (10.0.0.179:20128)
В каталоге **17 моделей с opus в id**, но реально пингуются только три:
| Model ID | Источник | Статус |
|---|---|---|
| **`cc/claude-opus-4-7`** | Claude Code OAuth (Max-подписка Олега) | ✅ Работает |
| `cc/claude-opus-4-6` | то же | ✅ Работает |
| `claude/claude-opus-4-7` | прямой Anthropic API | ✅ Работает (платный per-token) |
| `gh/claude-opus-4.6` | GitHub Copilot integrator MS | ❌ MS убрала Opus 4.6 из integrator scope, отдаёт «model not available» |
| `gh/claude-opus-4.7` | то же | ❌ ID mismatch: OmniRoute шлёт `4.7`, MS ждёт `4-7` (баг mapping в текущей версии) |
| `kr/claude-opus-4.6` / `4.7` | Kiro/AWS | ❌ Kiro Opus не выдаёт, только Sonnet |
| `kiro/claude-opus-*` | то же | ❌ |
| `kc/anthropic/claude-opus-4.7` | KiloCode | ❌ Empty response |
| `kilocode/anthropic/claude-opus-4.7` | то же | ❌ |
| `antigravity/claude-opus-4-6-thinking` | Google Antigravity | ❌ «Missing Google projectId — reconnect OAuth in Providers → Antigravity» |
## Решение
**Workspace-фарм для Antigravity не нужен.** У Олега уже есть рабочий Opus 4.7 через **`cc/claude-opus-4-7`** — это его собственная Max-подписка Anthropic, проксированная через CLIProxy в OmniRoute. Лучше любого фарма потому что:
- Нет per-token биллинга, фиксированная стоимость Max ($200/мес за Max20x)
- Не нужны множественные аккаунты, recovery emails, virtual cards
- Один источник = один ключ = простая интеграция
- Нет риска массового бана как у фарм-аккаунтов
- Самая свежая модель Opus 4.7 (новее чем 4.6 которая в фармовых Antigravity)
### Изменения в `/root/.openclaw/openclaw.json` (LXC 137)
**Было:**
```json
"agents.defaults.model": {
"primary": "omniroute/kr/claude-sonnet-4.5",
"fallbacks": [
"omniroute/cc/claude-sonnet-4-6",
"omniroute/cx/gpt-5.4"
]
}
```
**Стало:**
```json
"agents.defaults.model": {
"primary": "omniroute/cc/claude-opus-4-7",
"fallbacks": [
"omniroute/cc/claude-sonnet-4-6",
"omniroute/kr/claude-sonnet-4.5",
"omniroute/cx/gpt-5.4"
]
}
```
Также добавлена запись в `models.providers.omniroute.models[]`:
```json
{
"id": "cc/claude-opus-4-7",
"name": "Claude Opus 4.7 (CLIProxy/Max)",
"reasoning": false,
"input": ["text", "image"],
"contextWindow": 200000,
"maxTokens": 8192
}
```
Без этой записи openclaw fallback'нет на следующий — модель должна быть в каталоге провайдера.
### Применение
OpenClaw подхватил изменения **через hot-reload без рестарта** (видно в журнале: `[reload] config hot reload applied`). После я ещё раз сделал `systemctl --user restart openclaw-gateway.service` для чистоты, но это было необязательно.
В логах после старта:
```
[gateway] agent model: omniroute/cc/claude-opus-4-7
[gateway] http server listening (7 plugins: ..., telegram; 8.6s)
[telegram] [default] starting provider (@maxim_dttb_bot)
[gateway] ready
```
## Бэкап и rollback
Автобэкап перед изменениями: `/root/.openclaw/openclaw.json.bak.opus47-20260506-090832`
Rollback одной командой:
```bash
sshpass -p '1qaz!QAZ' ssh root@10.0.0.250 "pct exec 137 -- bash -c '
cp /root/.openclaw/openclaw.json.bak.opus47-20260506-090832 /root/.openclaw/openclaw.json
XDG_RUNTIME_DIR=/run/user/0 systemctl --user restart openclaw-gateway.service
'"
```
## Известные риски и мониторинг
1. **Max-подписка fair-use лимиты** — Anthropic размывает по нагрузке, точных цифр нет. Когда упрёмся — openclaw сам перейдёт на `cc/claude-sonnet-4-6` (видно в логах `model fallback decision`).
2. **CLIProxy OAuth refresh** — может протухнуть. Мониторинг: `journalctl --user -u openclaw-gateway -f` на LXC 137. При ошибке 401 от Anthropic API → переподключить Claude Code OAuth в OmniRoute (Dashboard → Providers → Claude → Reconnect).
3. **Скорость** — Opus 4.7 в среднем 2-5 сек медленнее Sonnet 4.5. Для интерактива в Telegram это норма.
## Параллельные находки
- **Antigravity** требует OAuth re-connect. По заметке `feedback_antigravity_onboarding.md`: открыть [antigravity.google](https://antigravity.google), залогиниться, создать Cloud Code project → projectId подтянется → `antigravity/claude-opus-4-6-thinking` оживёт. Сейчас не критично.
- **`Unknown model: cx/gpt-5.4`** — каждые 30 минут в логах ошибка. Health-check тыкается в модель которой нет в каталоге `omniroute.models[]` openclaw. Не блокер — failover работает. Решение: либо добавить `cx/gpt-5.4` в каталог openclaw, либо убрать из health-check'ов.
## Связанные
- [[../claude-memory/omniroute]] — OmniRoute setup, провайдеры, версии
- [[../projects/dttb/openclaw]] — справочник по openclaw
- [[../snippets/clawdbot-cliproxy-config]] — старый шаблон CLIProxy
- [[../snippets/omniroute-models-audit]] — шаблон smoke-тестов и парсинга ошибок (использовался при этом аудите)