Aller au contenu

Hermes — Guide Kanban (FR)

Résumé

Le Kanban Hermes est une file de travail durable pour agents IA, stockée en SQLite (~/.hermes/kanban.db), persistante entre les redémarrages. Il permet à plusieurs profils Hermes de collaborer sur des tâches longues avec dépendances, blocages humains et circuit breaker. Accessible depuis shared/references/hermes-webui-guide, le Dashboard (port 2019), le terminal ttyd ou via slash commands Telegram. Voir le setup dans shared/architecture/hermes-acces-vps-hetzner.

Contenu structuré

Quand utiliser le Kanban ?

Situation Outil
Tâche courte, résultat immédiat Chat normal
Sous-tâche rapide, pas d'humain delegate_task
Tâche longue, multi-agents, doit survivre aux redémarrages Kanban
Besoin d'intervention humaine en cours de route Kanban
Plusieurs tâches indépendantes en parallèle Kanban
Audit trail nécessaire Kanban

Colonnes du tableau

Triage → Todo → Ready → In Progress → Blocked → Done → Archived
Colonne Description
Triage Idées brutes — le spécifieur LLM les transforme en spec complète
Todo Créées, en attente de dépendances ou non assignées
Ready Assignées, prêtes pour le dispatcher
In Progress Un worker les exécute activement
Blocked Worker en attente d'input humain, ou circuit breaker déclenché
Done Terminées
Archived Historique conservé

Accès au Kanban

Hermes WebUI : http://178.105.46.57:3001 → icône Kanban dans la sidebar (tableau à 4 carrés)

Dashboard natif : http://178.105.46.57:2019 → onglet Kanban

CLI (depuis l'hôte) :

docker exec -it hermes-telegram /opt/hermes/.venv/bin/hermes kanban list

Slash commands (Chat ou Telegram) :

/kanban list
/kanban create "Ma tâche"
/kanban show t_abcd1234

Les slash commands /kanban ne sont pas bloquées par le gateway même si Hermes traite un message — elles passent directement à la base SQLite.


Workflow de base #multi-agents

1. Créer une tâche

Depuis WebUI : bouton New task → titre → carte en Triage ou Todo.

Depuis CLI :

hermes kanban create "Corriger le bug JWT" \
  --assignee default \
  --workspace dir:/opt/projets/PsychoEnLigne

Spécification automatique (depuis Triage) : cliquer sur ✨ Specify → Hermes transforme l'idée vague en spec complète (objectif, approche, critères d'acceptation) → carte passe en Todo.

2. Préparer

Drag & drop vers Ready dans WebUI, ou :

hermes kanban promote t_abcd1234

3. Lancer le dispatcher

WebUI : bouton Run dispatcher (sidebar) ou Nudge dispatcher (barre du haut).

CLI :

hermes kanban dispatch

Le dispatcher : scanne les tâches Ready → réclame atomiquement → spawn le profil assigné comme processus OS séparé → le worker exécute et fait avancer la carte.

4. Surveiller

Les cartes avancent en temps réel dans WebUI. Activer Lanes by profile pour sous-grouper In Progress par agent.


Fonctionnalités avancées

Dépendances entre tâches :

hermes kanban create "Écrire les tests" --assignee default   # → t_aaa
hermes kanban create "Déployer en prod" --assignee default   # → t_bbb
hermes kanban link t_aaa t_bbb  # bbb ne démarre que quand aaa est Done
Le dispatcher promeut automatiquement todo → ready quand les dépendances sont satisfaites.

Gestion des blocages :

# Lire le message de blocage dans WebUI, puis ajouter le contexte
hermes kanban comment t_abcd1234 "Utilise le schéma 2026, pas 2025"
hermes kanban unblock t_abcd1234

# Ou depuis Telegram
/kanban unblock t_abcd1234

Circuit breaker : après 3 échecs consécutifs, la tâche passe en Blocked avec gave_up.

hermes kanban reassign t_abcd1234 nouveau-profil --reclaim
# ou simplement :
hermes kanban unblock t_abcd1234

Multi-boards :

hermes kanban create-board "PsychoEnLigne"
hermes kanban --board PsychoEnLigne create "Implémenter JWT"
hermes kanban boards

Tenants (multi-clients) :

hermes kanban create "Mise à jour UI" --tenant frontend
hermes kanban list --tenant frontend


Commandes CLI essentielles

# Tâches
hermes kanban create "Titre" --assignee profil --workspace dir:/chemin
hermes kanban list
hermes kanban list --status ready
hermes kanban list --status blocked
hermes kanban show t_abcd1234
hermes kanban runs t_abcd1234       # historique des runs
hermes kanban tail t_abcd1234       # derniers logs
hermes kanban comment t_abcd1234 "Commentaire"
hermes kanban archive t_abcd1234

# Dispatcher
hermes kanban dispatch
hermes kanban stats
hermes kanban init                  # première utilisation

Cas d'usage concrets (PsychoEnLigne)

Pipeline de développement avec dépendances :

hermes kanban create "Analyser les besoins JWT" --assignee default  # t_aaa
hermes kanban create "Implémenter le middleware JWT" --assignee default  # t_bbb
hermes kanban create "Écrire les tests JWT" --assignee default  # t_ccc
hermes kanban create "Documenter l'API auth" --assignee default  # t_ddd
hermes kanban link t_aaa t_bbb
hermes kanban link t_bbb t_ccc
hermes kanban link t_ccc t_ddd
hermes kanban promote t_aaa
hermes kanban dispatch

Tâche avec validation humaine :

1. Tu crées : "Migrer la base de données vers PostgreSQL 17"
2. Hermes commence la migration
3. Hermes se bloque : "Confirme-tu la suppression de 'legacy_id' ?"
4. Tu vois la carte en Blocked dans WebUI (depuis le téléphone)
5. Tu ajoutes un commentaire : "Oui, supprimer legacy_id"
6. Tu cliques Unblock
7. Hermes reprend et termine

Cron + Kanban (tâches récurrentes) : Panel Tasks de WebUI → créer une tâche cron dont le prompt crée des tâches Kanban. Exemple : 0 8 * * * → "Crée une tâche Kanban pour analyser les logs d'erreur du jour".


Surveillance depuis le téléphone

http://178.105.46.57:3001 → onglet Kanban : - Cartes et statuts en temps réel - Intervenir sur les Blocked : Comment + Unblock - Lancer le dispatcher : Run dispatcher

Le dispatcher continue sur le VPS même si l'ordinateur est éteint.


Points de vigilance

  • Board stocké dans ~/.hermes/kanban.db sur le VPS — persistant entre redémarrages
  • L'assignee doit être un profil existant — le dispatcher échoue silencieusement sinon
  • Ne pas faire tourner hermes kanban daemon ET le gateway en même temps sur le même board (conflit)
  • Les workspaces dir: nécessitent un chemin absolu
  • Après 3 échecs : tâche en gave_up → débloquer manuellement
  • /kanban slash commands passent même en pleine conversation

Points clés

  • Kanban = file de travail SQLite pour agents IA, pas un simple tableau visuel
  • Le dispatcher est le moteur : il réclame atomiquement les tâches Ready et spawn les workers
  • Les dépendances permettent de chaîner des tâches sans intervention humaine
  • Le circuit breaker (3 échecs → gave_up) protège contre les boucles infinies
  • Accessible depuis n'importe quel appareil via WebUI — surveillance et déblocage à distance

Liens connexes