From 2b84a8c3579d2409b3637f5a40d81faca2d2ee27 Mon Sep 17 00:00:00 2001 From: alkatrazz Date: Wed, 13 May 2026 17:41:59 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20SKILL.md=20v1.2.0=20=E2=80=94=20section?= =?UTF-8?q?=20erreurs=20interdites=20+=20pattern=202=20=C3=A9tapes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le modèle passait des commandes shell comme argument à ask-agent (ask-agent monitor journalctl ...) au lieu de passer du texte. Ajout section "Erreurs INTERDITES" avec exemples ❌/✅ explicites, et reformulation du pattern obligatoire en 2 étapes clairement séparées. Co-Authored-By: Claude Sonnet 4.6 --- hermes-skills/funk/agent-delegation/SKILL.md | 151 +++++++++++-------- 1 file changed, 89 insertions(+), 62 deletions(-) diff --git a/hermes-skills/funk/agent-delegation/SKILL.md b/hermes-skills/funk/agent-delegation/SKILL.md index 3f67635..f861e5b 100644 --- a/hermes-skills/funk/agent-delegation/SKILL.md +++ b/hermes-skills/funk/agent-delegation/SKILL.md @@ -1,7 +1,7 @@ --- name: agent-delegation description: "Délègue des sous-tâches aux agents spécialisés du cluster Funk via ask-agent. OBLIGATOIRE pour toute analyse de logs, métriques ou monitoring système." -version: 1.1.0 +version: 1.2.0 author: Funk Lab license: MIT platforms: [linux] @@ -14,86 +14,113 @@ metadata: ## Contexte critique -Tu tournes **EN LOCAL sur `storage-01`**. Ne jamais SSH vers `storage-01` depuis toi-même — toutes les commandes locales (systemctl, journalctl, cat /proc/mdstat, etc.) s'exécutent directement via Terminal sans SSH. +Tu tournes **EN LOCAL sur `storage-01`**. Ne jamais SSH vers `storage-01` depuis toi-même — toutes les commandes locales (systemctl, journalctl, etc.) s'exécutent directement via Terminal sans SSH. -## Règle de délégation OBLIGATOIRE +--- -**Tu DOIS utiliser `ask-agent` via Terminal dans ces situations :** +## Ce qu'est ask-agent -| Situation | Agent à utiliser | +`ask-agent` est un **binaire shell** dans `/usr/local/bin/ask-agent`. + +**Signature exacte :** +``` +ask-agent "" +``` + +Le deuxième argument est **toujours du texte** (une question ou des données copiées-collées). +**Ce n'est PAS un wrapper de commandes shell.** Ne jamais passer de commandes comme `tail`, `journalctl`, etc. comme argument. + +--- + +## Erreurs INTERDITES + +```bash +# ❌ FAUX — ask-agent ne reçoit pas de commandes shell +terminal: ask-agent monitor tail -n 20 /var/log/messages +terminal: ask-agent monitor journalctl -u litellm -n 20 +terminal: ask-agent monitor /var/log/messages + +# ✅ CORRECT — deux étapes obligatoires +terminal: journalctl -u litellm -n 20 --no-pager +terminal: ask-agent monitor "voici les logs litellm : — y a-t-il des erreurs ?" +``` + +--- + +## Pattern OBLIGATOIRE : 2 étapes + +**Étape 1 — Collecter les données** (commande shell normale via Terminal) +**Étape 2 — Passer le texte à ask-agent** (avec les données collées dans la question) + +```bash +# Exemple complet — analyse logs litellm +terminal: journalctl -u litellm -n 20 --no-pager +# → récupère le résultat, puis : +terminal: ask-agent monitor "voici les 20 dernières lignes de litellm : — identifie les erreurs" + +# Exemple complet — services en erreur +terminal: systemctl --state=failed --no-pager +# → récupère le résultat, puis : +terminal: ask-agent monitor "services systemd en erreur sur storage-01 : — résume les problèmes" + +# Exemple complet — espace disque +terminal: df -h /srv/data +# → récupère le résultat, puis : +terminal: ask-agent system "est-ce que cette utilisation disque est préoccupante : " +``` + +--- + +## Quand utiliser quel agent + +| Situation | Agent | |---|---| -| Analyser des logs système ou service | `monitor` | -| Évaluer l'état de santé de services | `monitor` | -| Résumer des métriques, sorties de commandes | `system` | -| Toute question de formatage ou calcul simple | `system` | -| Architecture, revue de code, raisonnement complexe | `brain` | +| Analyser logs d'un service systemd | `monitor` | +| État de santé des services | `monitor` | +| Résumer une sortie de commande | `system` | +| Question Linux / formatage / calcul | `system` | +| Architecture, revue critique, raisonnement complexe | `brain` | -**Ne réponds JAMAIS directement à une demande d'analyse** — collecte d'abord les données, puis délègue. - -## Syntaxe exacte - -`ask-agent` est une commande shell. Elle s'exécute toujours via l'outil `terminal` : - -``` -terminal: ask-agent system "ta question courte" -terminal: ask-agent monitor "analyse ces données : " -terminal: ask-agent brain "raisonnement complexe : " -``` - -**Ne jamais appeler `ask-agent` sans passer par le terminal.** `ask-agent` n'est pas un outil Hermes natif, c'est un binaire shell dans `/usr/local/bin/ask-agent`. +--- ## Agents disponibles -| Agent | Modèle | Port | Usage | -|---|---|---|---| -| `system` | Qwen3-1.7B CPU | :1236 | Calculs, formatage, résumés courts, questions Linux | -| `monitor` | Qwen3-1.7B CPU | :1237 | Analyse logs, métriques, santé système, alertes | -| `brain` | Claude Sonnet 4.6 API | - | Raisonnement complexe, architecture, revue critique | -| `funk-ai` | Qwen3-8B GPU | :1234 | Tâches générales (toi-même — rarement utile) | +| Agent | Modèle | Usage | +|---|---|---| +| `system` | Qwen3-1.7B CPU (:1236) | Calculs, formatage, résumés courts, questions Linux | +| `monitor` | Qwen3-1.7B CPU (:1237) | Analyse logs, métriques, santé système | +| `brain` | Claude Sonnet 4.6 API | Raisonnement complexe, architecture | +| `funk-ai` | Qwen3-8B GPU (:1234) | Toi-même — rarement utile | -## Pattern OBLIGATOIRE : collecter → déléguer +--- + +## Syntaxe complète ```bash -# ÉTAPE 1 — Collecter les données localement (Terminal direct, PAS via SSH) -terminal: systemctl --state=failed --no-pager - -# ÉTAPE 2 — Déléguer l'analyse à l'agent approprié -terminal: ask-agent monitor "voici les services en erreur : — identifie les causes et priorités" +ask-agent "" +ask-agent "" --max-tokens 2000 # pour de longs logs +ask-agent "" --system "" # avec prompt système ``` -## Exemples concrets - -```bash -# Monitoring services -terminal: systemctl --state=failed --no-pager -terminal: ask-agent monitor "services systemd en erreur : — résume en 3 points" - -# Analyse logs hermes -terminal: journalctl -u hermes-agent -n 30 --no-pager -terminal: ask-agent monitor "analyse ces logs hermes-agent : — y a-t-il des erreurs ?" - -# Espace disque -terminal: df -h /srv/data -terminal: ask-agent system "est-ce que cette utilisation disque est critique : " - -# Question Linux simple -terminal: ask-agent system "quelle commande pour lister les connexions TCP actives sur AlmaLinux ?" - -# Analyse complexe k8s -terminal: kubectl get nodes -terminal: ask-agent brain "un nœud k8s est NotReady, que vérifier en priorité : " +Toujours via Terminal : ``` +terminal: ask-agent monitor "les logs que j'ai récupérés : — analyse" +``` + +--- ## Différence avec delegate_task -- **`ask-agent`** : appel direct LiteLLM, réponse immédiate, pas besoin de gateway Hermes actif → pour analyses rapides et questions ponctuelles -- **`delegate_task`** : spawn d'un agent Hermes complet avec sessions, mémoire, tools → pour tâches longues multi-étapes +- **`ask-agent`** → appel LiteLLM direct, réponse immédiate, pour analyses rapides +- **`delegate_task`** → spawn d'un agent Hermes complet → pour tâches longues multi-étapes -Pour le monitoring et les analyses système, **toujours utiliser `ask-agent`**. +Pour le monitoring et les analyses système : **toujours `ask-agent`**. + +--- ## Notes techniques -- `ask-agent` appelle `http://127.0.0.1:4000/v1/chat/completions` via LiteLLM -- Timeout : 120s -- `system` et `monitor` tournent sur CPUs isolés — ils ne bloquent pas le GPU +- `ask-agent` appelle `http://127.0.0.1:4000/v1/chat/completions` +- `system` et `monitor` : `/no_think` activé automatiquement → réponse rapide sans raisonnement interne - `brain` consomme des tokens API Anthropic — réserver aux cas complexes +- Timeout : 120s