feat(qwen): add ai-qwen launcher for Alibaba Token Plan (Qwen3.8)
ai-qwen runs Claude Code through Alibaba Cloud Model Studio's Anthropic-compatible Token Plan endpoint (token-plan.ap-southeast-1.maas.aliyuncs.com/apps/anthropic). The shared key is built into the generated script, so it starts right away without asking for a key. qwen3.8-max (the smartest model the key has) is in opus/sonnet and for subagents, --model opus on each start; qwen3.8-flash is in haiku for background tasks. Measured on 20.10: both models accept up to 983616 input tokens (CLAUDE_CODE_MAX_CONTEXT_TOKENS=1000000, autocompact fires before the API limit) and see images. Qwen validates output_config.effort (bogus -> 400), Max shows no trend from low to max, Flash thinks ~2x longer on max; the launcher starts on --effort max like ai-mimo, EFFORT_MAPPING.md records the measurements. setup.sh status, statusline brand color, README, QUICK_START and AGENTS.md list the new launcher. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -2219,6 +2219,54 @@ claude --dangerously-skip-permissions --model opus --effort "${AI_EFFORT:-max}"
|
||||
MIMOEOF
|
||||
chmod +x "$BIN_DIR/ai-mimo"
|
||||
|
||||
# === ai-qwen ===
|
||||
cat > "$BIN_DIR/ai-qwen" << 'QWENEOF'
|
||||
#!/usr/bin/env bash
|
||||
# ai-qwen - запуск Claude Code через Alibaba Cloud Model Studio (Qwen 3.8, Token Plan,
|
||||
# Anthropic-compatible API). Ключ общий и вшит в скрипт: запускается сразу, без ввода ключа.
|
||||
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/ai-api-helpers.sh" 2>/dev/null || true
|
||||
|
||||
qwen_base_url="https://token-plan.ap-southeast-1.maas.aliyuncs.com/apps/anthropic"
|
||||
api_key="sk-sp-H.LEDIL.UJfr.MEUCIBmN5Rtjyn9iKPnhw2sym_1auFL4YZ4tnJh54TurNMo8AiEA1SbkS2Gt872ncq-32xK2ZxlpZxS3ldNHnTgX6dNCIok"
|
||||
|
||||
_PROMPT_FILE=$(mktemp /tmp/ai-sys-prompt.XXXXXX)
|
||||
trap 'rm -f "$_PROMPT_FILE"' EXIT INT TERM
|
||||
_build_ai_sys_prompt > "$_PROMPT_FILE"
|
||||
export AI_LAUNCHER=qwen
|
||||
export CLAUDE_CONFIG_DIR="$HOME/.config/ai-setup/cfg/qwen"
|
||||
# Модели (список ключа: .../compatible-mode/v1/models): qwen3.8-max - самая умная, она в
|
||||
# opus/sonnet и в сабагентах; haiku = qwen3.8-flash (быстрая, Claude Code берёт слот haiku
|
||||
# и для фоновых задач вроде заголовков - так дешевле для лимита Token Plan).
|
||||
# availableModels НЕ задаём (он схлопывает пикер). --model opus при каждом запуске, как в ai-mimo.
|
||||
# Окно: у обеих моделей вход до 983616 токенов (замер 20.10: ответ "Range of input length
|
||||
# should be [1, 983616]"). qwen3.8-* нет в реестре Claude Code, без
|
||||
# CLAUDE_CODE_MAX_CONTEXT_TOKENS окно считалось бы = 200K. Автокомпакт с окном 1000000
|
||||
# срабатывает раньше предела API. Картинки обе модели видят сами.
|
||||
# Effort Qwen проверяет (bogus -> 400, low/medium/high/xhigh/max принимаются), но у Max тренда
|
||||
# нет, у Flash max размышляет почти вдвое дольше low (см. EFFORT_MAPPING.md). Стартуем на max
|
||||
# через CLI --effort, как ai-mimo. CLAUDE_CODE_ALWAYS_ENABLE_EFFORT - страховка, как в ai-glm.
|
||||
# CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 вместо дефолтных 32000, как у ai-glm.
|
||||
_setup_isolated_config qwen opus high ''
|
||||
ANTHROPIC_BASE_URL="$qwen_base_url" \
|
||||
ANTHROPIC_AUTH_TOKEN="$api_key" \
|
||||
ANTHROPIC_DEFAULT_OPUS_MODEL=qwen3.8-max \
|
||||
ANTHROPIC_DEFAULT_OPUS_MODEL_NAME="Qwen3.8 Max" \
|
||||
ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION="Qwen3.8 Max - флагман Alibaba для сложных задач" \
|
||||
ANTHROPIC_DEFAULT_SONNET_MODEL=qwen3.8-max \
|
||||
ANTHROPIC_DEFAULT_SONNET_MODEL_NAME="Qwen3.8 Max" \
|
||||
ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION="Qwen3.8 Max - флагман Alibaba для сложных задач" \
|
||||
ANTHROPIC_DEFAULT_HAIKU_MODEL=qwen3.8-flash \
|
||||
ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME="Qwen3.8 Flash" \
|
||||
ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION="Qwen3.8 Flash - быстрая" \
|
||||
CLAUDE_CODE_SUBAGENT_MODEL=qwen3.8-max \
|
||||
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 --model opus --effort "${AI_EFFORT:-max}" --system-prompt-file "$_PROMPT_FILE" "$@"
|
||||
QWENEOF
|
||||
chmod +x "$BIN_DIR/ai-qwen"
|
||||
|
||||
# === ai-openrouter ===
|
||||
cat > "$BIN_DIR/ai-openrouter" << 'OPENROUTEREOF'
|
||||
#!/usr/bin/env bash
|
||||
@@ -2523,6 +2571,7 @@ _setup_isolated_config glm opus xhigh ''
|
||||
_setup_isolated_config eltex opus xhigh ''
|
||||
_setup_isolated_config eltex-qwen opus high ''
|
||||
_setup_isolated_config mimo opus high ''
|
||||
_setup_isolated_config qwen opus high ''
|
||||
_setup_isolated_config openrouter "openai/gpt-5.5" high ''
|
||||
_setup_isolated_config opencode deepseek-v4-pro high ''
|
||||
|
||||
@@ -2533,7 +2582,7 @@ rm -f "$BIN_DIR/claude_gpt" "$BIN_DIR/claude_deepseek" "$BIN_DIR/claude_kimi" "$
|
||||
if [ "$BIN_DIR" != "$HOME/.local/bin" ]; then
|
||||
warn "BIN_DIR=$BIN_DIR — удаляю старые скрипты из ~/.local/bin/ ..."
|
||||
rm -f "$HOME/.local/bin/ai-gpt" "$HOME/.local/bin/ai-deepseek" "$HOME/.local/bin/ai-kimi" \
|
||||
"$HOME/.local/bin/ai-glm" "$HOME/.local/bin/ai-eltex" "$HOME/.local/bin/ai-eltex-qwen" "$HOME/.local/bin/ai-mimo" "$HOME/.local/bin/ai-openrouter" "$HOME/.local/bin/ai-gemini" "$HOME/.local/bin/ai-cursor" "$HOME/.local/bin/ai-claude" \
|
||||
"$HOME/.local/bin/ai-glm" "$HOME/.local/bin/ai-eltex" "$HOME/.local/bin/ai-eltex-qwen" "$HOME/.local/bin/ai-mimo" "$HOME/.local/bin/ai-qwen" "$HOME/.local/bin/ai-openrouter" "$HOME/.local/bin/ai-gemini" "$HOME/.local/bin/ai-cursor" "$HOME/.local/bin/ai-claude" \
|
||||
"$HOME/.local/bin/ai-opencode" \
|
||||
"$HOME/.local/bin/ai-api-helpers.sh" "$HOME/.local/bin/claude-gpt-effort-proxy.py"
|
||||
fi
|
||||
@@ -2556,6 +2605,7 @@ echo -e " ${CYAN}ai-glm${NC} - GLM 5.3 (через Claude Code, Z
|
||||
echo -e " ${CYAN}ai-eltex${NC} - Корпоративный LLM-прокси Eltex (через Claude Code, ключ от админов)"
|
||||
echo -e " ${CYAN}ai-eltex-qwen${NC} - Корпоративный LLM-прокси Eltex, модели Qwen (через Claude Code, свой ключ)"
|
||||
echo -e " ${CYAN}ai-mimo${NC} - Xiaomi MiMo V2.6 Pro, максимум рассуждений (через Claude Code, Token Plan)"
|
||||
echo -e " ${CYAN}ai-qwen${NC} - Qwen3.8 Max (через Claude Code, Alibaba Token Plan, ключ встроен)"
|
||||
echo -e " ${CYAN}ai-openrouter${NC} - OpenRouter (через Claude Code: GPT-5.5, Grok, Qwen, GLM 5.2 и др.)"
|
||||
echo -e " ${CYAN}ai-opencode${NC} - OpenCode Go (через Claude Code + routatic-proxy: DeepSeek, Kimi, Qwen, GLM, MiniMax, MiMo)"
|
||||
echo ""
|
||||
|
||||
Reference in New Issue
Block a user