14. Agents & Automatisation

La véritable force d'ECHO réside dans sa capacité à déléguer le travail et à s'interfacer avec le reste de votre écosystème logiciel. Il ne se contente pas de vous répondre : il peut recruter des assistants virtuels ou orchestrer des automatisations complexes en arrière-plan.

1. L'Équipe d'Agents (Table Ronde)

Face à un problème extrêmement ardu, ECHO peut décider qu'il ne peut pas le résoudre seul. Il va alors instancier une équipe de "Sous-Agents" virtuels (chacun ayant une spécialité).

Ces agents vont mener une Table Ronde (méthode Delphi) : l'un peut être chargé de chercher des informations sur le Web, un autre de consolider les données dans un tableur, pendant que l'agent principal rédige la synthèse finale. Vous pouvez d'ailleurs suivre leurs discussions en direct via le moniteur de supervision des agents.

2. L'Automatisation en Arrière-plan

Vous pouvez demander à ECHO de configurer des tâches automatisées qui tourneront sans que vous soyez connecté. Par exemple : "Vérifie les nouveaux emails de mon client tous les matins, génère un résumé et envoie-le sur Slack".

Pour cela, ECHO conçoit lui-même des scénarios d'automatisation et communique avec des centaines de services externes. Si une automatisation rencontre un problème (un serveur externe ne répond pas), ECHO reçoit une notification d'erreur détaillée et corrige le scénario de lui-même de manière autonome.

3. Le Coffre-Fort d'Identités

ECHO Identity Vault

Pour interagir avec vos applications (votre boîte mail, Slack, vos bases de données), le système a besoin d'identifiants ou de mots de passe.

Le Coffre-Fort d'Identités est un registre chiffré. Vous y enregistrez vos clés, et l'IA ne les voit jamais en texte clair. Lorsqu'elle configure une automatisation, elle utilise des alias sécurisés que le coffre-fort remplace au moment précis de contacter le service externe.

⚙️ Dossier d'Ingénierie & Spécifications

1. Orchestration Multi-Agents & Skills (agent_orchestration_tool.py v5.42 & agent_engine_tool.py v1.28)

  • Table Ronde Delphi & Supervision : consult_council (N experts parallélisés avec dialectique structurée Analyse/Dialectique/Réponse et synthèse finale par défaut sur MODEL_PROMETHEUS sanctuarisant thinkingLevel="high") et consult_supervised_workers (boucle critique/correction récursive où le superviseur critique sanctuarise thinkingLevel="high" et la consolidation des tâches supervisées s'exécute sur MODEL_APOLLO en thinkingLevel="medium", tout en restituant les budgets de tours restants).
  • Skill Management : Découverte sémantique et lecture de compétences via search_skill et read_skill avant création par forge_skill (avec modale de confirmation interactive). La suppression delete_user_skill est bloquée en mode Headless grâce à l'inspection de ECHO_SUBAGENT_CONTEXT (qui propage sub_sid, is_subagent et sub_tools_names).
  • Agent Engine : delegate_to_agent, summarize_agent_session (exécuté sur MODEL_APOLLO en thinkingLevel="medium"), list_agent_sessions et close_agent_session avec garde anti-récursion et blocage des outils à modales/triggers UI (ask_user_input, delete_user_skill, manage_identity, open_codex_ui) en mode Headless via DELEGATE_AGENT_BLACKLIST.

2. ECHO N8N Orchestrator (n8n_orchestrator_tool.py v1.18 & n8n_api.py v2.18)

  • Architecture Duale : Distinction stricte entre les workflows Sandbox éphémères (démarrant obligatoirement par un Execute Workflow Trigger avec mocking de payload et validation via run_n8n_oneshot_workflow, sortie synchrone bornée à 8 Ko / 8192 octets anti-OOM) et les Démons permanents (deploy_n8n_daemon en 2 étapes REST sur N8N).
  • Conception & Collecte : Délégation architecturale via delegate_to_n8n_grapher (exécuté sur MODEL_PROMETHEUS), recherche de templates sur le Hub N8N (search_n8n_hub, download_n8n_hub_template) et écriture disque via la macro __ECHO_DOWNLOAD_DIR__/fichier.ext collectée par le Download Broker.

3. MCP Broker & Identity Vault (m5_proxy_mcp.py v1.18, m5_providers.py v1.1, echo_mcp_tool.py v2.6, identity_vault_tool.py v3.29)

Le serveur MCP Broker (server.py, port 8000) agit comme un Proxy HTTP complet sans accès à la base de données :

  • Routage Data-Driven & Extraction Amont : L'outil universel echo_mcp_tool.py (list_mcp_functions, call_mcp_function) extrait les credentials de SQLite via EchoStateManager en amont et route la requête selon la taxonomie (mcp_native, mcp_resident, mcp_remote) sur les transports sse et streamable_http.
  • Cache de Sessions, Provider Adapters & Résilience MSAL : m5_proxy_mcp.py maintient une session par couple (user_id, service) via _SessionHolder (timeouts 60s/15s, éviction garantie sur BaseException via asyncio.shield) et délègue la logique spécifique aux fournisseurs résidents à m5_providers.py (Microsoft365Provider, GoogleWorkspaceProvider). Pour microsoft_365 (microsoft-mcp), HOME est redirigé vers /app/mcp_cache/microsoft_365/{user_id} (echo-mcp-cache) afin de conserver .microsoft_mcp_token_cache.json avec invalidation MD5 (.cred_hash), _flow_cache est intégralement occulté côté LLM (after_list_tools et suppression dans after_tool_call) mais persisté sur disque et rejoué en single-poll (expires_at = 0), et account_id est résolu automatiquement depuis les comptes MSAL en cache.
  • Identity Vault : Le modèle a l'interdiction d'utiliser des secrets en dur (usage obligatoire de la macro __ECHO_SECRET_...). Il DOIT appeler list_identities_services avant list_identities et suivre les user_required_instructions en cas de secret manquant ou invalide.

4. Client HTTP Universel (api_client.py v1.7)

  • call_api : Exécute les appels REST/GraphQL standards (strictement interdit pour initier des connexions MCP) avec troncature de sécurité à 131 Ko (ECHO_MAX_TOOL_TEXT_OUTPUT_CHARS).
← 13. Mémoire & Actions    15. Déploiement & Infra →