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>
This commit is contained in:
35
.ideai/briefs/validation-reelle-inter-agents.md
Normal file
35
.ideai/briefs/validation-reelle-inter-agents.md
Normal file
@ -0,0 +1,35 @@
|
||||
# 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` :
|
||||
```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`.
|
||||
Reference in New Issue
Block a user