Files
wiki/tasks/reports/DEV-014-models-audit.md
2026-04-12 21:55:33 +03:00

137 lines
6.0 KiB
Markdown
Raw 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.
# DEV-014: Аудит и настройка моделей в OpenClaw
**Дата:** 27 марта 2026
**Статус:** ✅ Завершено
---
## 1. Что нашёл в документации
### `/app/docs/providers/google.md`
- Провайдер: `google`
- Аутентификация: `GEMINI_API_KEY` или `GOOGLE_API_KEY` (из `~/.openclaw/.env`)
- Синтаксис модели в конфиге: `google/gemini-3.1-pro-preview` (prefix `google/` + ID модели)
- Если Gateway запущен как демон — `GEMINI_API_KEY` должен быть в `~/.openclaw/.env` ✅ (уже так)
- Альтернативный провайдер: `google-gemini-cli` (OAuth, unofficial)
### `/app/docs/providers/models.md`
- Формат задания модели: `provider/model` (например `google/gemini-2.5-pro`)
- Для OpenRouter: `openrouter/<provider>/<model>`
### `/app/docs/providers/openrouter.md`
- Модели OpenRouter: `openrouter/<provider>/<model>` (например `openrouter/anthropic/claude-sonnet-4.6`)
- Принципиальное отличие от Google: OpenRouter имеет промежуточный слой (один ключ → много провайдеров)
---
## 2. Что было неправильно в конфиге
### Проблема: Устаревшие/несуществующие ID моделей Google
Были добавлены следующие модели, которые **не существуют в Google API**:
| Неправильный ID | HTTP ответ | Причина ошибки |
|-----------------|------------|----------------|
| `gemini-2.5-pro-preview-03-25` | **404 NOT FOUND** | Устаревший preview ID (был заменён стабильным) |
| `gemini-2.5-flash-preview-04-17` | **404 NOT FOUND** | Устаревший preview ID (был заменён стабильным) |
Проверка через `GET /v1beta/models?key=...` показала, что этих моделей больше нет в API.
---
## 3. Что исправил
### Удалены невалидные модели
```
- google/gemini-2.5-pro-preview-03-25
- gemini-2.5-pro-preview-03-25
- google/gemini-2.5-flash-preview-04-17
- gemini-2.5-flash-preview-04-17
```
### Добавлены актуальные модели (проверено через Google ListModels API)
```json
"google/gemini-2.5-pro": {},
"gemini-2.5-pro": {},
"google/gemini-2.5-flash": {},
"gemini-2.5-flash": {},
"google/gemini-2.5-flash-lite": {},
"gemini-2.5-flash-lite": {},
"google/gemini-2.0-flash": {},
"gemini-2.0-flash": {},
"google/gemini-3.1-pro-preview": {},
"gemini-3.1-pro-preview": {},
"google/gemini-3.1-flash-lite-preview": {},
"gemini-3.1-flash-lite-preview": {}
```
Все модели добавлены **двумя записями**с prefix `google/` и без (согласно правилу из MEMORY.md).
### Почему профиль `google:default` корректен
```json
"google:default": {
"provider": "google",
"mode": "api_key"
}
```
Профиль настроен правильно. Ключ `GEMINI_API_KEY` читается из `~/.openclaw/.env` ✅.
---
## 4. Результаты тестирования
### Полный список актуальных моделей Google (через ListModels API)
Из API получен список всех моделей, поддерживающих `generateContent`:
| ID модели | Название |
|-----------|---------|
| `gemini-2.5-flash` | Gemini 2.5 Flash |
| `gemini-2.5-pro` | Gemini 2.5 Pro |
| `gemini-2.0-flash` | Gemini 2.0 Flash |
| `gemini-2.0-flash-001` | Gemini 2.0 Flash 001 |
| `gemini-2.0-flash-lite` | Gemini 2.0 Flash-Lite |
| `gemini-2.5-flash-lite` | Gemini 2.5 Flash-Lite |
| `gemini-3.1-pro-preview` | Gemini 3.1 Pro Preview |
| `gemini-3.1-flash-lite-preview` | Gemini 3.1 Flash Lite Preview |
| `gemini-3-pro-preview` | Gemini 3 Pro Preview |
| `gemini-3-flash-preview` | Gemini 3 Flash Preview |
### Тестовые вызовы
| Модель | Статус | Результат |
|--------|--------|-----------|
| `gemini-2.5-flash` | ✅ 200 OK | `Hi` (корректный ответ) |
| `gemini-2.5-pro` | ⚠️ 429 | Rate limit (Free Tier) — модель существует, лимит квоты |
| `gemini-3.1-pro-preview` | ⚠️ 429 | Rate limit (Free Tier) — модель существует, лимит квоты |
| `gemini-2.5-pro-preview-03-25` | ❌ 404 | Модель не существует |
| `gemini-2.5-flash-preview-04-17` | ❌ 404 | Модель не существует |
**Вывод:** API работает. Free Tier имеет строгие rate limits, но модели валидны.
---
## 5. Нужна ли перезагрузка гейтвея?
**Да, нужна** — изменения в `openclaw.json` (список `agents.defaults.models`) вступают в силу только после перезапуска Gateway.
```bash
# Перезапуск Gateway
openclaw gateway restart
```
Или вручную:
```bash
kill -9 $(pgrep -f "openclaw gateway") && openclaw gateway &
```
---
## Итог
- ✅ Документация изучена — Google provider работает через `google/` prefix + `GEMINI_API_KEY` в `.env`
- ✅ Обнаружены 2 невалидных ID моделей (устаревшие preview-версии с датой)
- ✅ Конфиг исправлен: добавлены актуальные стабильные модели Google (2.5-pro, 2.5-flash, 2.0-flash, 2.5-flash-lite, 3.1-pro-preview, 3.1-flash-lite-preview)
-Все модели добавлены двумя записями (с prefix `google/` и без)
- ✅ API протестирован — `gemini-2.5-flash` отвечает корректно (HTTP 200)
- ⚠️ Free Tier активен — есть rate limits, но это ограничение плана, не конфигурации
- 🔄 Требуется перезапуск Gateway для применения изменений