8.0 KiB
8.0 KiB
TODO — Système multi-agents (Nexus + agents spécialisés)
Légende
- Implémenté
- À faire
- [~] Partiel / à améliorer
1. Infrastructure de base
| Item | État |
|---|---|
agents_core — librairie partagée (pip install -e) |
[x] |
BaseAgent — classe abstraite commune à tous les agents |
[x] |
Système de skills (plugins .py auto-découverts) |
[x] |
File d'attente SQLite FIFO par agent (task_queue.py) |
[x] |
Mode pause / resume par agent (/pause, /resume) |
[x] |
Plages horaires par agent (work_hours dans config.json) |
[x] |
| Broker MQTT local (Mosquitto) | [x] |
| Topics MQTT structurés : inbox, status, capabilities, broadcast | [x] |
| LWT (Last Will Testament) MQTT → statut offline automatique | [x] |
| Reconnexion automatique MQTT | [x] |
| Reconnexion automatique XMPP (backoff exponentiel) | [x] |
| Dispatch XMPP handler en thread (évite blocage asyncio) | [x] |
Protection contre appels LLM concurrents (_llm_lock) |
[x] |
Switch LLM global via MQTT retained (/llm local/cloud) |
[x] |
| Reset historique LLM automatique lors d'un switch | [x] |
2. Nexus — orchestrateur
| Item | État |
|---|---|
| Connexion XMPP + MUC | [x] |
Multi-utilisateurs XMPP (admin_jids) |
[x] |
Commandes /admins add/remove/list |
[x] |
| Persistance des admins ajoutés à chaud (réécriture config.json) | [ ] |
Mode veille /sleep / /wake |
[x] |
Scheduler APScheduler (/schedule, /schedules, /schedule cancel) |
[x] |
Rapports quotidiens agrégés (/report) |
[x] |
Délégation directe @agent message |
[x] |
Broadcast @all message |
[x] |
Mise à jour agent /update <agent> (envoi MQTT) |
[x] |
Commandes /llm, /llm local/cloud, /llm list, /llm set |
[x] |
| Réponses nexus dans le MUC quand commande vient du MUC | [x] |
| Routage LLM dynamique (capacités agents injectées automatiquement) | [x] |
Vérification work_hours avant délégation (delegate skill) |
[ ] |
| Blackout global (plage horaire où aucune tâche n'est envoyée) | [ ] |
Commandes /claude et /mammouth (appels one-shot API externes) |
[ ] |
Skill notify — envoyer une notification proactive à l'utilisateur |
[ ] |
Historique des conversations (persistance SQLite, /history) |
[ ] |
| Confirmation avant exécution pour les actions destructives | [ ] |
Commande /status détaillée (uptime, nb tâches, LLM actif…) |
[~] |
Skill web_search (DuckDuckGo) |
[x] |
Skill web_read (BeautifulSoup) |
[x] |
Skill memory (clé/valeur SQLite) |
[x] |
Skill delegate |
[x] |
Skill mqtt_send |
[x] |
3. agent_debian — administration système
| Item | État |
|---|---|
Skills : sysinfo, apt, systemd, filesystem, network |
[x] |
Skills : process, journal, user, container, cron |
[x] |
Skill script avec $MQTT_REPLY_TOPIC pour retour résultat |
[x] |
Skill shell (commandes arbitraires) |
[x] |
| Monitoring proactif disque (>85%) → alerte MQTT | [x] |
| Monitoring proactif RAM (>90%) → alerte MQTT | [x] |
| Seuils de monitoring configurables dans config.json | [ ] |
Skill backup — sauvegarde fichiers/bases vers destination |
[ ] |
Skill firewall — gestion ufw/iptables |
[ ] |
Skill logwatch — analyse automatique des logs suspects |
[ ] |
| Tests end-to-end des skills depuis Nexus | [ ] |
4. agent_ansible — automatisation
| Item | État |
|---|---|
Skill playbook |
[x] |
Skill adhoc (avec aliases : ping, facts, uptime…) |
[x] |
Skill inventory |
[x] |
Skill galaxy |
[x] |
Skill vault |
[x] |
ansible.cfg optimisé (pipelining, fact cache, 10 forks) |
[x] |
| Résultats long playbook envoyés en streaming MQTT | [ ] |
Skill template — générer des fichiers de config depuis Jinja2 |
[ ] |
| Venv + service systemd installés et testés | [ ] |
5. agent_deploy — déploiement d'agents
| Item | État |
|---|---|
| Déploiement SSH (Paramiko) + local | [x] |
| Catalogue d'agents (nexus, debian, ansible, deploy) | [x] |
Skill deploy avec progress MQTT temps réel |
[x] |
Skill ssh (commande distante + SCP) |
[x] |
Skill catalog (list/show/add/remove) |
[x] |
| Déployer agent_debian sur machine distante (test réel) | [ ] |
| Vérification post-déploiement (agent en ligne sur MQTT ?) | [ ] |
| Rollback automatique si déploiement échoue | [ ] |
6. Mise à jour des agents (/update)
| Item | État |
|---|---|
Nexus envoie /update via MQTT à l'agent cible |
[x] |
BaseAgent gère /update : git pull + systemctl restart |
[ ] |
Vérification si mise à jour disponible (git fetch + diff) |
[ ] |
| Confirmation XMPP après redémarrage réussi | [ ] |
/update sur Nexus lui-même (git pull + restart) |
[ ] |
7. LLM — améliorations
| Item | État |
|---|---|
| Timeout LLM configurable (300s par défaut) | [x] |
Switch global local/cloud via /llm |
[x] |
Profils llm_profiles par agent |
[x] |
Commandes /claude et /mammouth (one-shot API externes) |
[ ] |
Support multi-backends dans llm_client.py (Anthropic, OpenAI) |
[ ] |
Désactiver le thinking mode de qwen3 (/no_think) |
[ ] |
Timeout par étape dans _llm_loop (pas seulement global) |
[ ] |
Limiter max_steps configurable selon l'agent |
[ ] |
| Streaming des réponses LLM vers XMPP (réponse progressive) | [ ] |
8. Sécurité / chiffrement
| Item | État |
|---|---|
Filtrage XMPP par admin_jids |
[x] |
| OMEMO (stub présent, non fonctionnel) | [~] |
| OMEMO réel (slixmpp-omemo) | [ ] |
| OpenPGP alternative (si OMEMO trop complexe) | [ ] |
| Authentification MQTT (username/password) | [~] |
| TLS MQTT | [~] |
| Rotation des mots de passe XMPP via commande | [ ] |
| Rate limiting — limiter le nombre de requêtes par minute | [ ] |
9. Observabilité / monitoring
| Item | État |
|---|---|
| Logs systemd par agent | [x] |
| Statut online/offline temps réel (MQTT retained) | [x] |
| Dashboard web simple — statut de tous les agents en temps réel | [ ] |
| Métriques — nb tâches/jour, temps moyen, taux d'erreur | [ ] |
| Alertes — notifier si un agent est offline depuis X minutes | [ ] |
| Agrégation des logs vers un topic MQTT centralisé | [ ] |
10. Nouveaux agents (idées)
| Agent | Rôle | État |
|---|---|---|
agent_claude |
LLM Anthropic — tâches complexes, raisonnement | [ ] |
agent_mammouth |
LLM Mammouth AI — alternative FR | [ ] |
agent_docker |
Gestion Docker avancée (compose, registry, build) | [ ] |
agent_git |
Gestion dépôts Git, PR, issues Gitea/GitHub | [ ] |
agent_monitor |
Supervision réseau (ping, ports, services) | [ ] |
agent_mail |
Envoi/lecture emails, notifications | [ ] |
agent_homeassistant |
Domotique via HA API | [ ] |
11. Script d'installation (install.sh)
| Item | État |
|---|---|
| Scan modèles Ollama disponibles + choix interactif | [x] |
Multi-utilisateurs XMPP (collection admin_jids) |
[x] |
| Choix domaine XMPP | [x] |
| Sélection des agents à installer | [x] |
Génération config.json + service systemd |
[x] |
Mode --update et --uninstall |
[x] |
| Test complet end-to-end de install.sh | [ ] |
| Documenter les prérequis (compte XMPP, Ollama…) | [ ] |
Ajout llm_profiles automatique dans install.sh |
[ ] |
12. Ordre de priorité suggéré
- Implémenter
/updatedans BaseAgent — git pull + restart (fonctionnalité clé) - Persistance
/admins add— réécriture config.json - Vérification
work_hoursdans delegate.py - Seuils monitoring configurables dans agent_debian
- Test install.sh complet sur machine vierge
- Commandes
/claudeet/mammouth(quand clés API dispo) - Support multi-backends LLM dans llm_client.py
- Dashboard web statut agents
- OMEMO chiffrement XMPP