---
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.2.0
author: Funk Lab
license: MIT
platforms: [linux]
metadata:
  hermes:
    tags: [multi-agent, delegation, funk, system, monitor, brain, local]
---

# Délégation inter-agents — Cluster Funk

## 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, etc.) s'exécutent directement via Terminal sans SSH.

---

## Ce qu'est ask-agent

`ask-agent` est un **binaire shell** dans `/usr/local/bin/ask-agent`.

**Signature exacte :**
```
ask-agent <agent> "<texte libre — question ou données à analyser>"
```

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 : <coller le résultat ici> — 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 : <résultat étape 1> — 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ésultat étape 1> — 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 : <résultat étape 1>"
```

---

## Quand utiliser quel agent

| Situation | Agent |
|---|---|
| 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` |

---

## Agents disponibles

| 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 |

---

## Syntaxe complète

```bash
ask-agent <agent> "<question ou données>"
ask-agent <agent> "<question>" --max-tokens 2000     # pour de longs logs
ask-agent <agent> "<question>" --system "<contexte>" # avec prompt système
```

Toujours via Terminal :
```
terminal: ask-agent monitor "les logs que j'ai récupérés : <données> — analyse"
```

---

## Différence avec delegate_task

- **`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 `ask-agent`**.

---

## Notes techniques

- `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
