✦ Une compétence GiaSip · faisant partie de la boîte à outils
giasip· github.com/GiaSip
/dispatch — Répartiteur Multi-Modèles
Envoie une tâche ou une invite à un autre modèle d'IA pour exécution et récupère le résultat. Cette compétence fournit uniquement la capacité de répartition — le modèle à choisir, s'il faut répartir sur plusieurs modèles, est décidé par vous (ou par Claude actuel) en fonction de la tâche. Aucune préférence de modèle intégrée.
Répertoire des Scripts
Important : Tous les scripts se trouvent dans le sous-répertoire scripts/ de ce dossier de compétence.
Configuration de l'agent — à faire UNE FOIS avant d'exécuter toute commande ci-dessous : déterminez le chemin absolu du répertoire qui contient ce fichier SKILL.md et exportez-le en tant que BASE_DIR :
# Installation globale (la plus courante) ; utilisez le chemin du cache du plugin si installé en tant que plugin
export BASE_DIR="$HOME/.claude/skills/giasip-dispatch"
Chaque commande ci-dessous référence les scripts comme $BASE_DIR/scripts/<nom-du-script>. BASE_DIR est une variable shell que vous définissez dans la session — il n'y a pas de variable d'environnement CLAUDE_SKILL_DIR injectée par l'environnement d'exécution, donc définissez BASE_DIR d'abord, sinon les chemins des scripts se résoudront en rien.
Canaux de Répartition
| Canal | Modèles | Prérequis |
|---|---|---|
| API Aggregator ★ chemin facile — une clé | Outre-mer : OpenRouter (DeepSeek/Qwen/GLM/Kimi/MiniMax + Claude/GPT/Gemini). Chine : SiliconFlow 硅基流动 (DeepSeek/Qwen/GLM/Kimi/MiniMax) | Un fichier de clés — openrouter.env ou siliconflow.env dans ~/.config/ai-keys/ ; définissez DISPATCH_PROVIDER une fois |
| Appel API direct (curl, par fournisseur) | DeepSeek / Qwen / GLM / Doubao / MiniMax | Un fichier .env par fournisseur séparé dans ~/.config/ai-keys/ (avancé) |
| Invocation CLI (agentique) | Codex / Gemini / Kimi | Installation locale + connexion par CLI — nécessaire pour les capacités agentiques (écriture de code, vision native) |
| Sous-Agent Interne | Claude Haiku / Sonnet | Intégré dans Claude Code, aucune dépendance externe |
Chemin facile (recommandé pour la plupart des utilisateurs) : procurez-vous une clé d'agrégateur et tous les alias que votre fournisseur choisi supporte fonctionnent — pas d'inscription par fournisseur. Outre-mer → OpenRouter ; Chine → SiliconFlow. Voir le README "giasip-dispatch — Dépendances" pour la configuration.
Quand vous avez encore besoin des chemins par fournisseur / CLI : les clés directes par fournisseur (si vous les avez déjà, ou pour éviter la commission d'environ 5,5 % d'OpenRouter sur les rechargements de crédit) ; les canaux CLI pour le travail agentique que l'API de chat ne peut pas faire — mode écriture de Codex (modification de fichiers), vision native PDF/image de Gemini. Les agrégateurs couvrent toutes les utilisations d'analyse pure + de répartition multiple.
Pour les tâches de réflexion/analyse pures (pas d'E/S fichier, pas d'exécution de commande, pas de modifications de code), préférez l'appel API Aggregator / direct — environ 10 fois plus rapide que la CLI. Utilisez la CLI uniquement lorsque la tâche nécessite des capacités agentiques (accès au système de fichiers, exécution de commandes, modifications de code, vision native).
Discipline Générale (à lire impérativement pour tous les appels CLI)
- Utilisez heredoc pour les invites — évite les problèmes de guillemets / caractères spéciaux.
- Ajoutez
</dev/nullà tous les appels CLI — l'environnement Bash de Claude Code a un canal d'entrée stdin qui ne se ferme jamais ; sans cela, les CLI restent bloquées en attente d'entrée. - Lors de la construction des invites : gardez-les concises et claires ; n'injectez pas de concepts spécifiques à Claude Code (compétences / hooks / Sous-Agent) ; utilisez des invites en chinois pour les tâches en chinois, en anglais pour les tâches en anglais ; incluez le contexte nécessaire du projet lorsque pertinent.
Routage par Complexité
Sélectionnez automatiquement la stratégie de répartition en fonction de la nature de la tâche :
Tâche visuelle ? (catalogue PDF / document scanné / capture d'écran / analyse d'image)
├── Oui → [CLI Gemini] — analyse visuelle native PDF + image
│ Déclencheur : l'utilisateur fournit un chemin d'image/PDF + la tâche implique la "lecture" du contenu ;
│ ou la sortie markitdown est vide/anormalement petite
│ → N'essayez PAS markitdown d'abord — acheminez directement vers Gemini
│
├── Réflexion/analyse pure (analyse métier, stratégie, compréhension de texte, traduction)
│ → [Appel API direct] — aucune capacité agentique nécessaire, appelez l'API directement avec curl
│ 10x plus rapide ; supporte les modèles sans CLI (DeepSeek/Qwen/GLM etc.)
│
├── Simple + réversible (installation de paquets, formatage, recherche, génération de modèles)
│ → [Répartition unique] — préférez le Sous-Agent Claude (Haiku) pour la vitesse
│ Utilisez la CLI externe uniquement lorsque la tâche nécessite des capacités natives chinoises ou spécifiques
│
├── Exécution de code (correction de bug, écriture de tests, petite refactorisation, génération de fichiers de code)
│ → [Mode écriture Codex] — sandbox=complet, Codex modifie le code directement
│ Condition : tâche claire, dans un projet géré par git, rayon d'impact contrôlable
│ Rappelez toujours à l'utilisateur de faire `git diff` ensuite
│
├── Complexité moyenne (développement de fonctionnalité, analyse de document, analyse de code)
│ → [Répartition unique] — envoyez à l'IA la mieux adaptée
│
├── Complexe + irréversible (conception d'architecture, sélection technique, refactorisation majeure)
│ → [Répartition multiple] — escalade automatique, envoyez à 2-3 IA, comparez les sorties
│
└── L'utilisateur spécifie l'IA ("exécute ceci avec Kimi")
→ [Affectation directe] — envoyez à l'IA spécifiée, ignorez la correspondance
Déclencheurs de répartition multiple (l'un quelconque déclenche l'escalade automatique) :
- L'utilisateur dit "important", "décision critique", "ne peut pas se tromper"
- La tâche implique des opérations irréversibles (migration de base de données, déploiement en production)
- La tâche est une sélection technique ou une conception d'architecture
- Rayon d'impact estimé > 10 fichiers ou 3 modules
- Tâches d'analyse métier/stratégique en chinois (par défaut : parallèle à trois voies)
→ Voir references/model-roster.md pour les recommandations de composition de répartition multiple par type de tâche.
Méthodes de Répartition
API Aggregator — ★ chemin facile (une clé, recommandé)
Le même api-dispatch.sh achemine via un agrégateur lorsque vous définissez un fournisseur. Une clé déverrouille tous les modèles ci-dessous — pas d'inscription par fournisseur.
# Définir une fois par session (outre-mer → openrouter, Chine → siliconflow), puis tous les alias supportés fonctionnent
export DISPATCH_PROVIDER=openrouter # ou : siliconflow
$BASE_DIR/scripts/api-dispatch.sh --model deepseek "$(cat <<'EOF'
contenu de l'invite
EOF
)"
# Remplacement par appel sans toucher à l'environnement
$BASE_DIR/scripts/api-dispatch.sh --via siliconflow --model kimi "invite"
# Porte de sortie — passer n'importe quel ID de modèle d'agrégateur textuellement (la table d'alias ne peut pas tout couvrir)
$BASE_DIR/scripts/api-dispatch.sh --via openrouter --model-id anthropic/claude-3.7-sonnet "invite"
Ordre de résolution du fournisseur : drapeau --via > env $DISPATCH_PROVIDER > direct (par défaut).
| Fournisseur | Fichier de Clés (~/.config/ai-keys/) | Alias | Note |
|---|---|---|---|
openrouter | openrouter.env (OPENROUTER_API_KEY) | deepseek / qwen / glm / kimi / minimax / claude / gpt / gemini | Outre-mer ; nécessite un VPN en Chine continentale |
siliconflow | siliconflow.env (SILICONFLOW_API_KEY) | deepseek / qwen / glm / kimi / minimax | Chine direct ; open-source/domestique uniquement (pas de Claude/GPT/Gemini). Utilisateurs internationaux : export SILICONFLOW_BASE_URL=https://api.siliconflow.com/v1 |
Les ID de modèle d'agrégateur sont la partie volatile — les mappages alias → ID de modèle résident dans
references/model-roster.md; si un appel renvoie 404 sur le modèle, vérifiez sur la page des modèles du fournisseur ou passez l'ID correct via--model-id.
Appel API Direct — par fournisseur (avancé, sans agrégateur)
Si vous détenez déjà des clés par fournisseur (ou souhaitez éviter les frais de rechargement de crédit de l'agrégateur), appelez chaque fournisseur directement. Nécessite un fichier .env séparé par fournisseur :
$BASE_DIR/scripts/api-dispatch.sh --model <model> "$(cat <<'EOF'
contenu de l'invite
EOF
)"
Texte long via stdin :
echo "contenu de texte long" | $BASE_DIR/scripts/api-dispatch.sh --model <model> --stdin
Modèles supportés — voir references/model-roster.md pour la liste complète avec les forces par modèle et les recommandations de composition de répartition multiple.
| Paramètre | Modèle | Fichier de Clés | Contexte |
|---|---|---|---|
deepseek | DeepSeek V4-Pro (mode réflexion activé) | deepseek.env | 1M |
qwen | Qwen3.6 Plus (Tongyi) | dashscope.env | 1M |
glm | GLM-5.2 (Zhipu phare) | zai.env | 200K |
doubao | Doubao Seed-2.0 Pro (ByteDance) | volcengine.env | 256K |
minimax | MiniMax M3 | minimax.env | — |
Les noms de modèles évoluent avec les mises à jour des fournisseurs — vérifiez la documentation du fournisseur avant d'appeler.
Codex CLI (OpenAI) — Protocole App Server, pas de démarrage à froid
Mode lecture seule (analyse / révision / recherche) :
node $BASE_DIR/scripts/codex-appserver.mjs --effort xhigh "$(cat <<'EOF'
contenu de l'invite
EOF
)" </dev/null
Mode écriture (modifications de code / corrections de bugs / génération de tests / création de fichiers) :
node $BASE_DIR/scripts/codex-appserver.mjs --effort xhigh --sandbox full "$(cat <<'EOF'
contenu de l'invite
EOF
)" </dev/null
Règles de sécurité du mode écriture :
- Utiliser uniquement dans les répertoires de projet gérés par git (
--cwd /chemin/vers/projet) - Après exécution, rappelez toujours à l'utilisateur de faire
git diffpour réviser les modifications ;git checkout .pour annuler si insatisfait - Pour le code de production / les bases de données / les scripts de déploiement, revenez en mode lecture seule + sortie de recommandations à la place
Remarques :
--sandboxpar défaut àread-only; le mode écriture utilisefull(le script supporte égalementworkspace-write/danger-full-accesspour une utilisation avancée)- Le script a une solution intégrée de lien symbolique automatique pour les chemins non ASCII (
--cwdavec des caractères CJK crée automatiquement un lien symbolique temporaire dans/tmp, nettoyé à la sortie) - N'ajoutez pas
2>/dev/null— le script affiche des informations structurées de progression et d'erreur sur stderr - Le texte long peut utiliser stdin :
echo "texte long" | node $BASE_DIR/scripts/codex-appserver.mjs --stdin --effort xhigh
CLI Gemini (Google) — script superviseur recommandé
Le superviseur intègre une nouvelle tentative intelligente / chaîne de repli / coupe-circuit / délai d'attente / journalisation :
$BASE_DIR/scripts/gemini-supervisor.sh --cwd "/chemin/vers/répertoire/de/travail" "$(cat <<'PROMPT_END'
contenu de l'invite
PROMPT_END
)"
Comportement par défaut du superviseur :
- Chaîne de repli : modèle phare → GA stable → flash (saut automatique si indisponible)
- Classification d'erreur : 429 congestion à court terme → backoff + tentative avec gigue ; épuisement du quota quotidien → passer au modèle suivant ; 503 → même chemin de backoff
- Budget global de tentatives : 6 ; délai d'attente dur par modèle : 600s (configurable via
GEMINI_MODEL_TIMEOUT) - Coupe-circuit : 3 échecs consécutifs par modèle → temps de repos de 30 minutes
- Journaux :
~/.cache/dispatch/gemini.log(JSONL) + état :~/.cache/dispatch/gemini-state.json
Spécifier un seul modèle (ignorer le repli) : $BASE_DIR/scripts/gemini-supervisor.sh --model <model-id> "invite"
Mode stdin (recommandé pour les invites longues) : cat invite.txt | $BASE_DIR/scripts/gemini-supervisor.sh --stdin --cwd "/répertoire/travail"
Vision Gemini / analyse PDF (Gemini supporte nativement l'analyse visuelle PDF + image — le chemin standard pour les PDF scannés / captures d'écran) :
$BASE_DIR/scripts/gemini-supervisor.sh \
--cwd "/chemin/vers/répertoire/fichiers" \
"$(cat <<'PROMPT_END'
Veuillez analyser complètement toutes les pages de xxx.pdf et les afficher au format markdown :
- Préservez tous les tableaux de données (utilisez la syntaxe de tableau markdown)
- Préservez toutes les spécifications, paramètres techniques, numéros de modèle
- Annotez les numéros de page (## Page 1 / ## Page 2 ...)
- N'omettez aucun détail technique
PROMPT_END
)" > output.md
Cas d'utilisation : catalogues PDF (sans couche de texte), scans, fiches techniques de produits, analyse de captures d'écran, OCR d'images, extraction de données de graphiques. Dirigez vers un fichier (... > output.md) pour les sorties volumineuses afin d'éviter la troncature stdout.
CLI Kimi (Moonshot) — script wrapper recommandé, routage automatique du point de terminaison
Discipline du modèle de réflexion : Kimi K2.6 est un modèle de réflexion — le raisonnement peut prendre des minutes pour les invites complexes. Le délai d'attente Bash doit être ≥600000 (10 min) pour les tâches complexes. Le script intègre le streaming SSE + garde d'inactivité (seuil de 120s sans octet) + limite dure de 900s. Ne tuez PAS en cours d'exécution et ne remplacez PAS par un curl écrit à la main. Pour le mode rapide : préfixez
KIMI_NO_THINK=1(injecte{"thinking":{"type":"disabled"}}, réponse ~4s, mais la qualité baisse — uniquement pour les tâches sans raisonnement).
# Par défaut : point de terminaison général Moonshot (api.moonshot.cn/v1, MOONSHOT_API_KEY)
$BASE_DIR/scripts/kimi-dispatch.sh "$(cat <<'EOF'
contenu de l'invite
EOF
)"
# Point de terminaison de codage optionnel (CLI Kimi + api.kimi.com/coding/v1, KIMI_API_KEY)
KIMI_FOR_CODING=1 $BASE_DIR/scripts/kimi-dispatch.sh "invite"
# Mode rapide (désactiver la réflexion, réponse ~4s)
KIMI_NO_THINK=1 $BASE_DIR/scripts/kimi-dispatch.sh "tâche simple"
| Point de terminaison | Caractéristiques | Meilleur pour |
|---|---|---|
| Général Moonshot par défaut | Raisonnement visible, conserve la tendance au suivi | Analyse générale, Q&R |
KIMI_FOR_CODING=1 | Volume de sortie plus important, harnais agentique intégré, raisonnement caché | Rapports longs, écriture de fichiers pilotée par agent, code multi-étapes |
Sous-Agent Interne Claude Code (pas de CLI externe)
Pour les tâches simples, utilisez Haiku, pour les tâches standard, utilisez Sonnet — générez un Sous-Agent via l'outil Agent (spécifiez model: haiku ou model: sonnet). Plus rapide et moins cher que la CLI sans tête, sans dépendances externes.
Vérification de l'Environnement
Vérification rapide de disponibilité avant la répartition :
# Outils CLI
command -v codex; command -v gemini; command -v kimi
# Clés API (pour les appels API directs)
ls ~/.config/ai-keys/*.env 2>/dev/null
Répartissez uniquement vers les modèles disponibles. Si une CLI est indisponible, revenez à l'appel API direct ou changez de modèle ; un fichier de clé API existant signifie que ce modèle est appelable.
Parallèle Multi-Modèles (validation croisée / multi-perspective)
Lorsque vous avez besoin de plusieurs modèles pour donner des perspectives indépendantes sur la même question, lancez plusieurs appels Bash en parallèle et demandez à Claude de synthétiser les résultats. Scénarios typiques : décisions importantes, sélection technique, vérification préalable avant des actions irréversibles, faible confiance dans la sortie d'un seul modèle.
# Exemple parallèle à trois voies (même invite pour trois modèles)
$BASE_DIR/scripts/kimi-dispatch.sh "tâche d'analyse" &
$BASE_DIR/scripts/api-dispatch.sh --model deepseek "tâche d'analyse" &
$BASE_DIR/scripts/api-dispatch.sh --model doubao "tâche d'analyse" &
wait
Principe de sélection : diversité cognitive > quantité — choisissez des modèles avec des données d'entraînement / architectures différentes pour obtenir des perspectives vraiment différentes ; utilisez toujours le plus haut niveau de chaque modèle ; contrôlez le coût en limitant...