fix(glm): default effort xhigh, document real GLM 5.3 effort mapping

Z.ai Anthropic endpoint reads output_config.effort and accepts all 5
Claude Code levels, but GLM 5.3 has only low/high/max natively:
medium -> low, xhigh -> high (measured, not documented by Z.ai).
ai-glm now starts on xhigh instead of max.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Виталий Никитенко
2026-09-25 10:49:02 +07:00
parent b3468095c9
commit 08ad4bb429
3 changed files with 46 additions and 20 deletions

View File

@@ -1649,12 +1649,14 @@ export CLAUDE_CONFIG_DIR="$HOME/.config/ai-setup/cfg/glm"
# Claude Code навязывает 3 слота; незаданный показал бы чужой Claude, поэтому
# opus+sonnet+haiku = glm-5.3. Окно контекста у всех слотов задаёт env
# CLAUDE_CODE_MAX_CONTEXT_TOKENS ниже — суффикс [1m] больше не нужен.
_setup_isolated_config glm opus high ''
# ai-glm стартует на /effort max. max невалиден в settings.json (там только
# low/medium/high/xhigh), поэтому задаём через CLI --effort, а не _apply_effort.
_setup_isolated_config glm opus xhigh ''
# 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).
# CLAUDE_CODE_ALWAYS_ENABLE_EFFORT заставляет Claude Code отправлять effort в API
# для GLM (иначе glm-5.3 не распознан как effort-capable и параметр не уходит).
# /effort внутри сессии работает; ручной override запуска: AI_EFFORT=high ai-glm.
# для GLM (иначе glm-5.3 не распознан как effort-capable и параметр не уходит,
# а Z.ai по умолчанию берёт max).
# /effort внутри сессии работает; ручной override запуска: AI_EFFORT=max ai-glm.
# CLAUDE_CODE_DISABLE_1M_CONTEXT НЕ выставляем: GLM 5.3 реально держит 1M контекста,
# а флаг заставлял бы счётчик ctx: считать окно = 200K (врал в ~5 раз). Прочие
# лаунчеры (deepseek/kimi/openrouter/opencode) флаг оставляют — у них другой контекст
@@ -1678,7 +1680,7 @@ CLAUDE_CODE_SUBAGENT_MODEL=glm-5.3 \
CLAUDE_CODE_MAX_CONTEXT_TOKENS=1000000 \
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"
@@ -1982,7 +1984,7 @@ chmod +x "$BIN_DIR/ai-opencode"
source "$BIN_DIR/ai-api-helpers.sh"
_setup_isolated_config deepseek opus high ''
_setup_isolated_config kimi opus high ''
_setup_isolated_config glm opus high ''
_setup_isolated_config glm opus xhigh ''
_setup_isolated_config openrouter "openai/gpt-5.5" high ''
_setup_isolated_config opencode deepseek-v4-pro high ''