feat(glm): default effort xhigh instead of max
Z.ai maps xhigh to native high, so this trims the thinking budget for everyday ai-glm launches; AI_EFFORT=max still forces the old behavior. Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -80,7 +80,7 @@ low -> high -> max
|
|||||||
`CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1` - иначе Claude Code не считает `glm-5.3` effort-capable
|
`CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1` - иначе Claude Code не считает `glm-5.3` effort-capable
|
||||||
и параметр не уходит.
|
и параметр не уходит.
|
||||||
- Маппинг выполняется на стороне Z.ai API, `ai-glm` локально effort не преобразует.
|
- Маппинг выполняется на стороне 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:
|
- Официально Z.ai маппинг `medium`/`xhigh` не документирует. Он выведен замером 2026-09-25:
|
||||||
по 3 запроса на уровень, средний `output_tokens` на счётной задаче - `low` ~1.5K,
|
по 3 запроса на уровень, средний `output_tokens` на счётной задаче - `low` ~1.5K,
|
||||||
`medium` ~1.1K, `high` ~3.4K, `xhigh` ~2.8K, `max` ~3.8K. `low`/`medium` уверенно короче
|
`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
|
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
|
остальных Claude Code лаунчеров. `ai-glm`, `ai-eltex`, `ai-eltex-qwen` и `ai-mimo` передают уровень через CLI
|
||||||
`--effort`, поэтому каждый запуск стартует на `max` (или на `AI_EFFORT`), а `/effort` внутри сессии
|
`--effort`, поэтому каждый запуск стартует на дефолте (или на `AI_EFFORT`), а `/effort` внутри сессии
|
||||||
действует до её конца.
|
действует до её конца.
|
||||||
|
|
||||||
## Рекомендации
|
## Рекомендации
|
||||||
|
|||||||
@@ -1650,13 +1650,14 @@ export CLAUDE_CONFIG_DIR="$HOME/.config/ai-setup/cfg/glm"
|
|||||||
# opus+sonnet+haiku = glm-5.3. Окно контекста у всех слотов задаёт env
|
# opus+sonnet+haiku = glm-5.3. Окно контекста у всех слотов задаёт env
|
||||||
# CLAUDE_CODE_MAX_CONTEXT_TOKENS ниже — суффикс [1m] больше не нужен.
|
# CLAUDE_CODE_MAX_CONTEXT_TOKENS ниже — суффикс [1m] больше не нужен.
|
||||||
_setup_isolated_config glm opus xhigh ''
|
_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
|
# 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
|
# CLAUDE_CODE_ALWAYS_ENABLE_EFFORT заставляет Claude Code отправлять effort в API
|
||||||
# для GLM (иначе glm-5.3 не распознан как effort-capable и параметр не уходит,
|
# для GLM (иначе glm-5.3 не распознан как effort-capable и параметр не уходит,
|
||||||
# а Z.ai по умолчанию берёт max).
|
# а 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
|
# CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000: по умолчанию Claude Code просит у glm-5.3
|
||||||
# max_tokens=32000 (размышления + ответ), на трудных задачах GLM в них не укладывается
|
# max_tokens=32000 (размышления + ответ), на трудных задачах GLM в них не укладывается
|
||||||
# и ответ обрывается. Z.ai принимает и 128000.
|
# и ответ обрывается. Z.ai принимает и 128000.
|
||||||
@@ -1684,7 +1685,7 @@ CLAUDE_CODE_MAX_CONTEXT_TOKENS=1000000 \
|
|||||||
CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 \
|
CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 \
|
||||||
CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1 \
|
CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1 \
|
||||||
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=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
|
GLMEOF
|
||||||
chmod +x "$BIN_DIR/ai-glm"
|
chmod +x "$BIN_DIR/ai-glm"
|
||||||
|
|
||||||
|
|||||||
@@ -342,14 +342,14 @@ test_logout_mimo() {
|
|||||||
rm -rf "$tmp_home"
|
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() {
|
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_MAX_OUTPUT_TOKENS=64000' \
|
||||||
&& echo "$GLM_SECTION" | grep -q 'CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1'; then
|
&& 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
|
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
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user