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
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 surMODEL_PROMETHEUSsanctuarisantthinkingLevel="high") etconsult_supervised_workers(boucle critique/correction récursive où le superviseur critique sanctuarisethinkingLevel="high"et la consolidation des tâches supervisées s'exécute surMODEL_APOLLOenthinkingLevel="medium", tout en restituant les budgets de tours restants). - Skill Management : Découverte sémantique et lecture de compétences via
search_skilletread_skillavant création parforge_skill(avec modale de confirmation interactive). La suppressiondelete_user_skillest bloquée en mode Headless grâce à l'inspection deECHO_SUBAGENT_CONTEXT(qui propagesub_sid,is_subagentetsub_tools_names). - Agent Engine :
delegate_to_agent,summarize_agent_session(exécuté surMODEL_APOLLOenthinkingLevel="medium"),list_agent_sessionsetclose_agent_sessionavec 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 viaDELEGATE_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 Triggeravec mocking de payload et validation viarun_n8n_oneshot_workflow, sortie synchrone bornée à 8 Ko / 8192 octets anti-OOM) et les Démons permanents (deploy_n8n_daemonen 2 étapes REST sur N8N). - Conception & Collecte : Délégation architecturale via
delegate_to_n8n_grapher(exécuté surMODEL_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.extcollecté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 viaEchoStateManageren amont et route la requête selon la taxonomie (mcp_native,mcp_resident,mcp_remote) sur les transportssseetstreamable_http. - Cache de Sessions, Provider Adapters & Résilience MSAL :
m5_proxy_mcp.pymaintient une session par couple(user_id, service)via_SessionHolder(timeouts 60s/15s, éviction garantie surBaseExceptionviaasyncio.shield) et délègue la logique spécifique aux fournisseurs résidents àm5_providers.py(Microsoft365Provider,GoogleWorkspaceProvider). Pourmicrosoft_365(microsoft-mcp),HOMEest redirigé vers/app/mcp_cache/microsoft_365/{user_id}(echo-mcp-cache) afin de conserver.microsoft_mcp_token_cache.jsonavec invalidation MD5 (.cred_hash),_flow_cacheest intégralement occulté côté LLM (after_list_toolset suppression dansafter_tool_call) mais persisté sur disque et rejoué en single-poll (expires_at = 0), etaccount_idest 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 appelerlist_identities_servicesavantlist_identitieset suivre lesuser_required_instructionsen 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).