feat: amélioration routing ask-agent + identité SOUL.md profils

- SOUL.md funk-ai : tableaux détaillés system vs monitor (quand appeler
  chaque agent avec exemples concrets), section delegate_task vs ask-agent
- SOUL.md system : rôle clarifié (traitement texte, PAS analyse santé),
  format de réponse explicite (verdict direct, pas de préambule)
- hermes-agent.service : SupplementaryGroups=systemd-journal pour que
  journalctl fonctionne sans sudo depuis le Terminal de Hermes
- Ansible common : admin_user (alkatrazz) ajouté au groupe systemd-journal
- admin/hermes.md : section SOUL.md complète (déploiement, contenu, profils)
- admin/ask-agent.md : distinction system vs monitor documentée avec
  tableau et exemples, note /no_think, monitor réservé supervision

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
alkatrazz 2026-05-13 18:59:48 +02:00
parent ed963180f2
commit 00d10234f9
7 changed files with 140 additions and 10 deletions

View file

@ -29,11 +29,32 @@ LiteLLM Proxy (:4000)
| Agent | Modèle | Vitesse | Coût | Usage idéal |
|---|---|---|---|---|
| `system` | Qwen3-1.7B CPU (:1236) | ~21 tok/s | Gratuit | Calculs, formatage, parsing, résumés courts |
| `monitor` | Qwen3-1.7B CPU (:1237) | ~21 tok/s | Gratuit | Analyse métriques, logs, santé système |
| `system` | Qwen3-1.7B CPU (:1236) | ~21 tok/s | Gratuit | Traitement de texte : résumés, formatage, parsing, calculs, questions Linux |
| `monitor` | Qwen3-1.7B CPU (:1237) | ~21 tok/s | Gratuit | Évaluation de santé : logs systemd, métriques, état des services |
| `brain` | Claude Sonnet 4.6 (API) | Variable | Payant | Raisonnement complexe, architecture, revue |
| `funk-ai` | Qwen3-8B GPU (:1234) | ~35 tok/s | Gratuit | Tâches générales (agent principal lui-même) |
### system vs monitor — la distinction clé
| Critère | `system` | `monitor` |
|---|---|---|
| Type de question | "Qu'est-ce que ça veut dire ?" / "Résume ça" | "Y a-t-il des erreurs ?" / "Ce service est-il sain ?" |
| Input attendu | Texte brut, sortie de commande quelconque | Logs systemd, métriques, `systemctl status` |
| Output produit | Réponse directe, liste de faits | Verdict OK/WARNING/ERROR + actions correctives |
| Notion de seuils | Non | Oui — évalue par rapport à ce qui est normal |
```bash
# → system : traitement de texte
ask-agent system "que signifie cette sortie df -h : <texte>"
ask-agent system "résume l'utilisation disque : <texte>"
ask-agent system "convertis 8192 MiB en GiB"
# → monitor : évaluation de santé
ask-agent monitor "logs litellm : <texte> — erreurs ?"
ask-agent monitor "status llama-server : <texte> — service sain ?"
ask-agent monitor "services failed : <texte> — que faire ?"
```
---
## Commande ask-agent
@ -223,4 +244,6 @@ nouvelle après chaque modification du skill.
| Restart obligatoire | `systemctl restart hermes-agent` requis après ajout/modif skill |
| brain coûteux | Claude Sonnet API — réserver aux analyses que system/monitor ne peuvent pas faire |
| system et monitor isolés | Tournent sur 14 CPUs dédiés — ne bloquent pas le GPU ni Hermes principal |
| `/no_think` automatique | Le script ask-agent préfixe automatiquement `/no_think` pour system et monitor — évite que Qwen3 consomme tous les tokens en raisonnement interne |
| monitor réservé supervision | Ne pas modifier monitor pour d'autres usages — sera intégré à l'outil de supervision cluster |
| ask-agent est shell | Dans le skill, toujours écrire `Terminal: ask-agent ...` — pas une API interne |

View file

@ -174,6 +174,44 @@ LM_API_KEY=lm-studio # valeur exacte obligatoire
---
## SOUL.md — Identité des profils
Chaque profil peut avoir un fichier `SOUL.md` chargé en **slot #1** du system prompt.
Il définit l'identité de l'agent, son environnement, ses outils et son comportement.
Rechargé à chaque message sans redémarrage du service.
```
/srv/data/hermes/profiles/<profil>/SOUL.md
```
Sources versionnées dans le repo :
```
hermes-skills/souls/funk-ai.md → profil funk-ai
hermes-skills/souls/system.md → profil system
hermes-skills/souls/monitor.md → profil monitor
hermes-skills/souls/brain.md → profil brain
```
### Déployer un SOUL.md
```bash
# Depuis le repo lab (poste perso)
scp hermes-skills/souls/funk-ai.md storage-01:/tmp/soul.md
ssh storage-01 "sudo cp /tmp/soul.md /srv/data/hermes/profiles/funk-ai/SOUL.md"
# Pas de redémarrage nécessaire — rechargé automatiquement
```
### Ce que contient le SOUL.md de funk-ai
- Environnement cluster (machines, IPs, services)
- Accès SSH vers gpu-01 (`hermes@192.168.10.20`)
- Règles d'utilisation d'`ask-agent` (pattern 2 étapes obligatoires)
- Routing : quand appeler `system` vs `monitor` vs `brain` avec exemples concrets
- Différence `ask-agent` (analyse texte rapide) vs `delegate_task` (agent autonome)
- Style : concis, technique, actif
---
## Skills
Les skills sont des fichiers `SKILL.md` chargés en contexte dans chaque session Hermes.
@ -304,3 +342,5 @@ sudo systemctl restart hermes-dashboard
| `/opt/hermes` perms | Répertoire en `711` — traversable par tous mais non listable |
| **Skills double emplacement** | Tout skill custom doit être dans `skills/` ET dans `profiles/funk-ai/skills/` — voir [ask-agent.md](ask-agent.md) |
| **Restart après skill** | `systemctl restart hermes-agent` obligatoire après ajout ou modification d'un skill |
| `SupplementaryGroups` | Le service inclut `systemd-journal``journalctl` fonctionne sans sudo dans le Terminal de Hermes |
| `systemd-journal` admin | L'utilisateur admin (`alkatrazz`) est aussi dans le groupe — géré via rôle Ansible `common` |