diff --git a/EFFORT_MAPPING.md b/EFFORT_MAPPING.md index 3f7a81c..3b723c2 100644 --- a/EFFORT_MAPPING.md +++ b/EFFORT_MAPPING.md @@ -80,7 +80,7 @@ low -> high -> max `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1` - иначе Claude Code не считает `glm-5.3` effort-capable и параметр не уходит. - Маппинг выполняется на стороне Z.ai API, `ai-glm` локально effort не преобразует. -- Дефолт `ai-glm`: `max`, задаётся через CLI `--effort` при каждом запуске. +- Дефолт `ai-glm`: `xhigh` (нативный `high` у Z.ai), задаётся через CLI `--effort` при каждом запуске. - Официально Z.ai маппинг `medium`/`xhigh` не документирует. Он выведен замером 2026-09-25: по 3 запроса на уровень, средний `output_tokens` на счётной задаче - `low` ~1.5K, `medium` ~1.1K, `high` ~3.4K, `xhigh` ~2.8K, `max` ~3.8K. `low`/`medium` уверенно короче @@ -160,9 +160,9 @@ AI_EFFORT=high ai-deepseek # включить high ai-deepseek # без флага - использовать уровень из settings.json ``` -Дефолты: `max` для `ai-glm`, `ai-eltex`, `ai-eltex-qwen` и `ai-mimo`, `xhigh` для `ai-claude`, `high` для +Дефолты: `xhigh` для `ai-claude` и `ai-glm`, `max` для `ai-eltex`, `ai-eltex-qwen` и `ai-mimo`, `high` для остальных Claude Code лаунчеров. `ai-glm`, `ai-eltex`, `ai-eltex-qwen` и `ai-mimo` передают уровень через CLI -`--effort`, поэтому каждый запуск стартует на `max` (или на `AI_EFFORT`), а `/effort` внутри сессии +`--effort`, поэтому каждый запуск стартует на дефолте (или на `AI_EFFORT`), а `/effort` внутри сессии действует до её конца. ## Рекомендации diff --git a/scripts/ai-setup.sh b/scripts/ai-setup.sh index a595116..38b7a39 100755 --- a/scripts/ai-setup.sh +++ b/scripts/ai-setup.sh @@ -1650,13 +1650,14 @@ export CLAUDE_CONFIG_DIR="$HOME/.config/ai-setup/cfg/glm" # opus+sonnet+haiku = glm-5.3. Окно контекста у всех слотов задаёт env # CLAUDE_CODE_MAX_CONTEXT_TOKENS ниже — суффикс [1m] больше не нужен. _setup_isolated_config glm opus xhigh '' -# ai-glm стартует на /effort max через CLI --effort (перебивает effortLevel из +# ai-glm стартует на /effort xhigh через CLI --effort (перебивает effortLevel из # settings.json при каждом запуске). Z.ai сворачивает 5 уровней Claude Code в 3 -# нативных GLM 5.3: low,medium→low; high,xhigh→high; max→max (см. EFFORT_MAPPING.md). +# нативных GLM 5.3: low,medium→low; high,xhigh→high; max→max (см. EFFORT_MAPPING.md), +# то есть xhigh = нативный high. # CLAUDE_CODE_ALWAYS_ENABLE_EFFORT заставляет Claude Code отправлять effort в API # для GLM (иначе glm-5.3 не распознан как effort-capable и параметр не уходит, # а Z.ai по умолчанию берёт max). -# /effort внутри сессии работает; ручной override запуска: AI_EFFORT=high ai-glm. +# /effort внутри сессии работает; ручной override запуска: AI_EFFORT=max ai-glm. # CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000: по умолчанию Claude Code просит у glm-5.3 # max_tokens=32000 (размышления + ответ), на трудных задачах GLM в них не укладывается # и ответ обрывается. Z.ai принимает и 128000. @@ -1684,7 +1685,7 @@ CLAUDE_CODE_MAX_CONTEXT_TOKENS=1000000 \ CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 \ CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1 \ CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 \ -claude --dangerously-skip-permissions --effort "${AI_EFFORT:-max}" --system-prompt-file "$_PROMPT_FILE" "$@" +claude --dangerously-skip-permissions --effort "${AI_EFFORT:-xhigh}" --system-prompt-file "$_PROMPT_FILE" "$@" GLMEOF chmod +x "$BIN_DIR/ai-glm" diff --git a/tests/test_fixes.sh b/tests/test_fixes.sh index 4b22f50..497d021 100755 --- a/tests/test_fixes.sh +++ b/tests/test_fixes.sh @@ -342,14 +342,14 @@ test_logout_mimo() { rm -rf "$tmp_home" } -# ── ai-glm: default effort is max (still overridable via AI_EFFORT) ─────── +# ── ai-glm: default effort is xhigh (still overridable via AI_EFFORT) ────── test_glm_default_effort() { - if echo "$GLM_SECTION" | grep -q -- '--effort "${AI_EFFORT:-max}"' \ + if echo "$GLM_SECTION" | grep -q -- '--effort "${AI_EFFORT:-xhigh}"' \ && echo "$GLM_SECTION" | grep -q '^CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000' \ && echo "$GLM_SECTION" | grep -q 'CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1'; then - ok "ai-glm: starts with --effort max by default, effort sent to Z.ai, 64000 output tokens" + ok "ai-glm: starts with --effort xhigh by default, effort sent to Z.ai, 64000 output tokens" else - fail "ai-glm: must start with --effort \"\${AI_EFFORT:-max}\", CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1 and MAX_OUTPUT_TOKENS=64000" + fail "ai-glm: must start with --effort \"\${AI_EFFORT:-xhigh}\", CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1 and MAX_OUTPUT_TOKENS=64000" fi }