fix(eltex): default to anth-glm-5.3, drop forced ENABLE_TOOL_SEARCH

Admins moved the pilot to anth-glm-5.3: proxy deployments on the Z.ai
Anthropic endpoint. Checked on all 6 pilot keys: 48/48 requests served
by glm-5.3 (no flash), images recognised via Z.ai analyze_image in
Claude Code 8/8. zai-glm-5.3 goes through an auto-router that swaps in
glm-5.3-flash, so ai-eltex now prefers anth-glm-5.3 when the key has it
(ELTEX_MODEL still overrides).

ENABLE_TOOL_SEARCH is no longer forced: on the anthropic path GLM
searched for Read/Bash via ToolSearch and decided they were missing.

Effort still has no effect: Claude Code sends output_config.effort, but
LiteLLM drops it (direct Z.ai low/max = 81/3712 output tokens, via the
proxy ~3-5K at any level).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Виталий Никитенко
2026-10-07 10:08:08 +07:00
parent 083a614940
commit 5e1e3cc796
3 changed files with 27 additions and 13 deletions

View File

@@ -1770,16 +1770,19 @@ if [ -z "$api_key" ]; then
fi
fi
# Модель: ELTEX_MODEL, иначе первая из разрешённых ключу (у разных ключей разные модели,
# например zai-glm-5.3 или Eltex-Coder-Senior из доки).
# Модель: ELTEX_MODEL, иначе anth-glm-5.3, если она есть у ключа, иначе первая из
# разрешённых ключу (у других ключей другие модели, например Eltex-Coder-Senior из доки).
# anth-glm-5.3 - деплойменты на Anthropic-эндпоинте Z.ai: всегда настоящая glm-5.3 и
# картинки через серверный analyze_image. zai-glm-5.3 - OpenAI-эндпоинт с автороутером,
# который подменяет модель на glm-5.3-flash.
model="${ELTEX_MODEL:-}"
if [ -z "$model" ]; then
model=$(echo "$_CLAUDE_TEST_BODY" | python3 -c '
import sys, json
ids = [m["id"] for m in json.load(sys.stdin).get("data", [])]
print(ids[0] if ids else "")' 2>/dev/null)
print("anth-glm-5.3" if "anth-glm-5.3" in ids else (ids[0] if ids else ""))' 2>/dev/null)
fi
model="${model:-zai-glm-5.3}"
model="${model:-anth-glm-5.3}"
echo "Модель: $model"
_PROMPT_FILE=$(mktemp /tmp/ai-sys-prompt.XXXXXX)
@@ -1789,12 +1792,13 @@ export AI_LAUNCHER=eltex
export CLAUDE_CONFIG_DIR="$HOME/.config/ai-setup/cfg/eltex"
# Пикер: все три слота = модель ключа. availableModels НЕ задаём (он схлопывает пикер);
# незаданный слот показал бы чужой Claude.
# Прокси сам транслирует запросы в OpenAI-формат и игнорирует effort/thinking (GLM
# думает всегда), поэтому CLAUDE_CODE_ALWAYS_ENABLE_EFFORT не нужен, а /effort ни на что
# не влияет.
# Effort: Claude Code шлёт output_config.effort и без CLAUDE_CODE_ALWAYS_ENABLE_EFFORT,
# но LiteLLM прокси его вырезает, поэтому /effort пока ни на что не влияет (07.10:
# напрямую в Z.ai low/max = 81/3712 выходных токенов, через прокси ~3-5K на любом уровне).
# Env из доки админов: API_TIMEOUT_MS (прокси бывает медленным), автокомпакт на 200K.
# ENABLE_TOOL_SEARCH: со сторонним ANTHROPIC_BASE_URL Claude Code отключает отложенную
# загрузку MCP-тулов; эндпоинт llm2 tool_reference поддерживает (комментарии к доке).
# ENABLE_TOOL_SEARCH НЕ включаем: на anthropic-деплойментах прокси (Z.ai /api/anthropic)
# GLM с ним путается - ищет Read/Bash через ToolSearch и решает, что их нет. Цена -
# схемы встроенных тулов в каждом запросе (~+11K входных токенов).
_setup_isolated_config eltex opus high ''
_apply_effort eltex high
ANTHROPIC_BASE_URL="$eltex_base_url" \
@@ -1813,7 +1817,6 @@ CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000 \
CLAUDE_CODE_DISABLE_1M_CONTEXT=1 \
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 \
API_TIMEOUT_MS=600000 \
ENABLE_TOOL_SEARCH=true \
claude --dangerously-skip-permissions --system-prompt-file "$_PROMPT_FILE" "$@"
ELTEXEOF
chmod +x "$BIN_DIR/ai-eltex"