chore(config): switch general and reviewer to glm-5.2 #119

Closed
opened 2026-08-21 02:35:40 +03:00 by slaid098 · 0 comments
Owner

Контекст

После PR#118 reviewer работает на ollama-cloud/kimi-k3, general — на ollama-cloud/deepseek-v4-flash. Пользователь откатил решение по kimi-k3: модель слишком тяжёлая, жрёт много ресурсов. По субъективной оценке пользователя GLM-5.2 умнее DeepSeek V4 Flash (и исторически general уже работал на glm-5.2, PR #100, переведён обратно на flash в PR #114 из-за цены: паритет интеллекта 52 vs 53, но ~4x дешевле — $0.11 vs $0.44 за задачу). Пользователь решил: все практические задачи (исполнение + ревью) на GLM-5.2, flash остаётся только на лёгких операциях (explore, memory-syncer). Планирование (plan-агент) модель не хардкодит — выбор из UI.

Задача

Перевести general и reviewer на ollama-cloud/glm-5.2:

  • .opencode/opencode.json: agent.general.model: ollama-cloud/deepseek-v4-flash → ollama-cloud/glm-5.2; agent.reviewer.model: ollama-cloud/kimi-k3 → ollama-cloud/glm-5.2. reasoningEffort: "max" сохраняется у обоих.
  • tests/test_permissions.py, test_agent_models_exact: flash-кортеж (explore, memory-syncer), general → ollama-cloud/glm-5.2, reviewer → ollama-cloud/glm-5.2; docstring обновить.
  • Проверить grep -ri kimi по репо — 0 совпадений (кроме, если останется в memory-файлах вне репо).
  • uv run pytest tests/ — зелёный.

Контракты

  • agent.general.model == "ollama-cloud/glm-5.2".
  • agent.reviewer.model == "ollama-cloud/glm-5.2".
  • reasoningEffort: "max" у general и reviewer сохраняется.
  • explore и memory-syncer остаются на ollama-cloud/deepseek-v4-flash; vision — на ollama-cloud/minimax-m3 (не трогаем).

Инварианты

  • Все модели проходят regex ^[a-zA-Z0-9._-]+\/[a-zA-Z0-9:._-]+$ (тест test_agents_have_models).
  • Смена модели агента — тест test_agent_models_exact обновляется в том же PR (паттерн из памяти).

Граничные случаи

  • glm-5.2 подтверждена на сервере ollama-cloud (live /api/tags), декларация в provider.ollama-cloud.models не нужна (как у kimi-k3/minimax-m3) — при фейле резолва добавить декларацию по образцу deepseek-v4-flash:0731.
  • provider.openrouter не трогаем (deepseek-v4-pro там остаётся — не используется агентами, вне scope).

Влияние на связанные компоненты

  • .opencode/opencode.json — 2 строки model.
  • tests/test_permissions.py — test_agent_models_exact.
  • Память (после merge): обновить инвариант «проверяющий умнее исполнителя» (reviewer/general = glm-5.2), зафиксировать GLM-5.3 как плановый апгрейд «когда появится у провайдера».

Вне scope

  • Перевод plan-агента (модель из UI, не хардкодится).
  • Смена explore/memory-syncer/vision.
  • Удаление декларации deepseek-v4-pro из provider.openrouter.

Критерии приемки

  • Матрица моделей: explore=flash, general=glm-5.2, reviewer=glm-5.2, memory-syncer=flash, vision=minimax-m3.
  • uv run pytest tests/ — зелёный.
  • grep -ri kimi .opencode/ — 0 совпадений.
## Контекст После PR#118 reviewer работает на `ollama-cloud/kimi-k3`, general — на `ollama-cloud/deepseek-v4-flash`. Пользователь откатил решение по kimi-k3: модель слишком тяжёлая, жрёт много ресурсов. По субъективной оценке пользователя GLM-5.2 умнее DeepSeek V4 Flash (и исторически general уже работал на glm-5.2, PR #100, переведён обратно на flash в PR #114 из-за цены: паритет интеллекта 52 vs 53, но ~4x дешевле — $0.11 vs $0.44 за задачу). Пользователь решил: все практические задачи (исполнение + ревью) на GLM-5.2, flash остаётся только на лёгких операциях (explore, memory-syncer). Планирование (plan-агент) модель не хардкодит — выбор из UI. ## Задача Перевести general и reviewer на `ollama-cloud/glm-5.2`: - `.opencode/opencode.json`: `agent.general.model`: `ollama-cloud/deepseek-v4-flash` → `ollama-cloud/glm-5.2`; `agent.reviewer.model`: `ollama-cloud/kimi-k3` → `ollama-cloud/glm-5.2`. `reasoningEffort: "max"` сохраняется у обоих. - `tests/test_permissions.py`, `test_agent_models_exact`: flash-кортеж `(explore, memory-syncer)`, `general` → `ollama-cloud/glm-5.2`, `reviewer` → `ollama-cloud/glm-5.2`; docstring обновить. - Проверить `grep -ri kimi` по репо — 0 совпадений (кроме, если останется в memory-файлах вне репо). - `uv run pytest tests/` — зелёный. ## Контракты - `agent.general.model == "ollama-cloud/glm-5.2"`. - `agent.reviewer.model == "ollama-cloud/glm-5.2"`. - `reasoningEffort: "max"` у general и reviewer сохраняется. - `explore` и `memory-syncer` остаются на `ollama-cloud/deepseek-v4-flash`; `vision` — на `ollama-cloud/minimax-m3` (не трогаем). ## Инварианты - Все модели проходят regex `^[a-zA-Z0-9._-]+\/[a-zA-Z0-9:._-]+$` (тест `test_agents_have_models`). - Смена модели агента — тест `test_agent_models_exact` обновляется в том же PR (паттерн из памяти). ## Граничные случаи - glm-5.2 подтверждена на сервере ollama-cloud (live `/api/tags`), декларация в `provider.ollama-cloud.models` не нужна (как у kimi-k3/minimax-m3) — при фейле резолва добавить декларацию по образцу `deepseek-v4-flash:0731`. - `provider.openrouter` не трогаем (deepseek-v4-pro там остаётся — не используется агентами, вне scope). ## Влияние на связанные компоненты - `.opencode/opencode.json` — 2 строки model. - `tests/test_permissions.py` — `test_agent_models_exact`. - Память (после merge): обновить инвариант «проверяющий умнее исполнителя» (reviewer/general = glm-5.2), зафиксировать GLM-5.3 как плановый апгрейд «когда появится у провайдера». ## Вне scope - Перевод plan-агента (модель из UI, не хардкодится). - Смена explore/memory-syncer/vision. - Удаление декларации deepseek-v4-pro из provider.openrouter. ## Критерии приемки - Матрица моделей: explore=flash, general=glm-5.2, reviewer=glm-5.2, memory-syncer=flash, vision=minimax-m3. - `uv run pytest tests/` — зелёный. - `grep -ri kimi .opencode/` — 0 совпадений.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
slaid098/opencode-config#119
No description provided.