From 1bfef33da1cdfb8c3b4a64ef760204ee1372febe Mon Sep 17 00:00:00 2001 From: vitaly Date: Sat, 4 Jul 2026 18:59:57 +0300 Subject: [PATCH] =?UTF-8?q?fix(ai-glm):=20=D1=87=D0=B8=D0=BD=D0=B8=D0=BC?= =?UTF-8?q?=20=D1=80=D0=B0=D0=B7=D0=BE=D1=80=D0=B2=D0=B0=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20env-=D0=B1=D0=BB=D0=BE=D0=BA=20=D0=B8=20=D0=B2=D0=BA?= =?UTF-8?q?=D0=BB=D1=8E=D1=87=D0=B0=D0=B5=D0=BC=20/effort=20max?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Регрессия из c571584: поясняющий комментарий оказался посреди цепочки continuation-строк (\), из-за чего statement разрывался — claude запускался без ANTHROPIC_BASE_URL/AUTH_TOKEN/DEFAULT_*_MODEL (дефолтный Anthropic, "Not logged in", glm-5.2 not recognized, откат на Haiku 4.5). Комментарий перенесён над env-блоком, цепочка восстановлена. Дополнительно: ai-glm стартует на /effort max. max невалиден в settings.json (там только low/medium/high/xhigh), поэтому задаётся через CLI --effort + CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1 (без неё glm-5.2 не распознан как effort-capable и параметр не уходит к Z.ai). Проверено перехватом трафика: Claude Code шлёт output_config.effort=max, Z.ai включает thinking (+35% reasoning tokens vs low на нетривиальной задаче). /effort внутри сессии работает; ручной override запуска: AI_EFFORT=high ai-glm. Co-Authored-By: Claude --- scripts/ai-setup.sh | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/scripts/ai-setup.sh b/scripts/ai-setup.sh index fceb9be..6bff583 100755 --- a/scripts/ai-setup.sh +++ b/scripts/ai-setup.sh @@ -1636,7 +1636,15 @@ export CLAUDE_CONFIG_DIR="$HOME/.config/ai-setup/cfg/glm" # (он схлопывает пикер). Claude Code навязывает 3 слота; незаданный показал бы # чужой Claude, поэтому opus+sonnet = glm-5.2, haiku = glm-5.2[1m]. _setup_isolated_config glm opus high '' -_apply_effort glm high +# ai-glm стартует на /effort max. max невалиден в settings.json (там только +# low/medium/high/xhigh), поэтому задаём через CLI --effort, а не _apply_effort. +# CLAUDE_CODE_ALWAYS_ENABLE_EFFORT заставляет Claude Code отправлять effort в API +# для GLM (иначе glm-5.2 не распознан как effort-capable и параметр не уходит). +# /effort внутри сессии работает; ручной override запуска: AI_EFFORT=high ai-glm. +# CLAUDE_CODE_DISABLE_1M_CONTEXT НЕ выставляем: GLM 5.2 реально держит 1M контекста, +# а флаг заставлял бы счётчик ctx: считать окно = 200K (врал в ~5 раз). Прочие +# лаунчеры (deepseek/kimi/openrouter/opencode) флаг оставляют — у них другой контекст +# и флаг убирает [1M]-дубли из пикера; ai-claude его и так не использует. ANTHROPIC_BASE_URL="$glm_base_url" \ ANTHROPIC_AUTH_TOKEN="$api_key" \ ANTHROPIC_DEFAULT_OPUS_MODEL=glm-5.2 \ @@ -1649,12 +1657,9 @@ ANTHROPIC_DEFAULT_HAIKU_MODEL='glm-5.2[1m]' \ ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME="GLM 5.2 [1M]" \ ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION="GLM 5.2 [1M] — расширенный контекст" \ CLAUDE_CODE_SUBAGENT_MODEL=glm-5.2 \ -# CLAUDE_CODE_DISABLE_1M_CONTEXT НЕ выставляем: GLM 5.2 реально держит 1M контекста, -# а флаг заставлял бы счётчик ctx: считать окно = 200K (врал в ~5 раз). Прочие -# лаунчеры (deepseek/kimi/openrouter/opencode) флаг оставляют — у них другой контекст -# и флаг убирает [1M]-дубли из пикера; ai-claude его и так не использует. +CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1 \ CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 \ -claude --dangerously-skip-permissions --system-prompt-file "$_PROMPT_FILE" "$@" +claude --dangerously-skip-permissions --effort "${AI_EFFORT:-max}" --system-prompt-file "$_PROMPT_FILE" "$@" GLMEOF chmod +x "$BIN_DIR/ai-glm"