Files
IdeA/.ideai/briefs/validation-reelle-inter-agents.md
Blomios eca2ba95c4 feat(agent): conversation par paire + entrée médiée + pivot terminal/MCP
Coeur inter-agents consolidé et surface front réalignée sur la décision
"terminal natif PTY, pas d'UI chat" (Option 1).

Domaine
- nouveaux modules conversation, mailbox, input, fileguard (ports + types)
- orchestrator/profile/events étendus (conversation par paire, FIFO)

Application / Infrastructure
- orchestrator/service + context_guard : sérialisation FIFO par agent,
  garde RW mémoire/contexte, dispatch ask/reply
- adapters in-memory conversation / mailbox / input / fileguard
- registry session + lifecycle agent durcis (1 agent = 1 session vivante)
- outils MCP idea_* alignés sur le nouveau dispatch

Frontend
- MediatedInput + useAgentBusy : entrée utilisateur médiée par IdeA,
  terminal = vue sortie inchangée
- suppression de la vue chat structurée (AgentChatView) — abandonnée
- adapter input + ports mis à jour

Divers
- .ideai/ : mémoire projet + briefs de cadrage versionnés ;
  requests/ runtime ignoré ; agents projet réels (DevBackend/DevFrontend/QA)

Tests : Rust (domain/application/infrastructure/app-tauri) + front (346) verts.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 07:33:04 +02:00

2.1 KiB

Protocole — Validation réelle de la conversation inter-agents via IdeA

À exécuter depuis la nouvelle AppImage (build 2026-06-10 18:23, contenant R0+A0+M5, commits 37e7274 / 6ca519b / cf89b3b). L'ancienne image (testée avant) ne contenait pas ce code et a renvoyé l'erreur attendue « agent Ask pas pilotable en mode structuré ».

But

Prouver en conditions réelles qu'un agent (Main/Claude) peut demander une tâche à un autre agent (Ask/Codex) via IdeA et recevoir sa réponse inline — pas seulement par tests à fakes.

Pré-requis pour que le ask aboutisse

  • La cible (Ask) doit être pilotée en mode structuré (profil Codex avec adapter structuré). Le menu de sélection d'agent ne propose normalement que des profils structurés (Claude/Codex).
  • Ask ne doit pas déjà tourner comme terminal brut (PTY) dans une cellule : sinon ask_agent refuse (invariant « 1 session/agent », cible PTY brut = pas de canal de réponse).
  • Le plus simple : laisser Ask éteint et laisser ask_agent le lancer lui-même en structuré (sémantique : cible morte ⇒ launch structuré background ⇒ send ⇒ Final).

Procédure (protocole fichier, identique au test précédent)

  1. Déposer .ideai/requests/main/<nom>.json :
    { "type": "agent.message", "requestedBy": "Main", "targetAgent": "Ask",
      "task": "Petite recherche, pas de code : résume en 3 points ce que fait le module
               crates/infrastructure/src/orchestrator/mcp/ et liste les outils idea_*." }
    
  2. Attendre l'apparition de .ideai/requests/main/<nom>.json.response.json.

Succès attendu

{ "ok": true, "action": "agent.message", "reply": "<réponse de Codex>" } — le champ reply porte le contenu produit par Ask. (Échec précédent = ok:false + erreur PTY brut.)

Voie native MCP (bonus)

Le bind transport S-MCP (M5) est livré : un agent lancé avec un profil MCP voit les outils idea_* (dont idea_ask_agent) et le résultat revient inline. À valider quand un profil MCP est branché sur Claude/Codex. Voir .ideai/briefs/orchestration-v5-transport-bind-cadrage.md.