Architecture de découplage cerveau-mains (Shopify River)
Découpler le cerveau des mains : le harnais appelle le LLM et émet des intentions d'outils, le bac à sable les exécute — un nouvel agent devient un profil, pas une plateforme.
Slack comme interface, River comme surface d'agent, Aquifer comme fondation et un harnais séparé : les quatre couches d'un agent interne qui traite la session comme une entité durable.
Copiez et collez le code FlowZap suivant dans un projet de votre compte FlowZap pour voir ce diagramme.
slack { # Slack - Interface
n1: circle label:"@River in Slack"
n2: rectangle label:"Public channel question"
n11: rectangle label:"Response received"
n1.handle(right) -> n2.handle(left)
n2.handle(bottom) -> river.n3.handle(top) [label="1. Request"]
}
river { # River - Agent Surface
n3: rectangle label:"Analyzes request"
n4: rectangle label:"Delegates to Aquifer"
n10: rectangle label:"Formats response"
n3.handle(right) -> n4.handle(left)
n4.handle(bottom) -> aquifer.n5.handle(top) [label="2. Session"]
aquifer.n9.handle(top) -> n10.handle(bottom) [label="5. Result"]
n10.handle(top) -> slack.n11.handle(bottom) [label="6. Response"]
}
aquifer { # Aquifer - Foundation
n5: rectangle label:"Harness plans"
n6: rectangle label:"Sandbox executes"
n7: diamond label:"Done?"
n8: rectangle label:"Consolidates"
n9: rectangle label:"Returns result"
n5.handle(right) -> n6.handle(left)
n6.handle(bottom) -> world.n12.handle(top) [label="3. Read/write"]
n6.handle(right) -> n7.handle(left)
n7.handle(top) -> n5.handle(bottom) [label="No"]
n7.handle(bottom) -> n8.handle(top) [label="Yes"]
n8.handle(right) -> n9.handle(left)
}
world { # World - Monorepo
n12: rectangle label:"Executes on repo"
n13: rectangle label:"Runs tests - opens PR"
n12.handle(right) -> n13.handle(left)
n13.handle(top) -> aquifer.n7.handle(bottom) [label="4. Output"]
}
Installer le paquet MCPnpm install -g flowzap-mcpDocumentation MCP
Découpler le cerveau des mains : le harnais appelle le LLM et émet des intentions d'outils, le bac à sable les exécute — un nouvel agent devient un profil, pas une plateforme.
Trois modes de session dans un même agent : interactif dans Slack, revue automatisée dans la demande de fusion et exécutions par lots éphémères déclenchées par la CI.
n8n comme couche d'intégration centrale : un seul flux détermine s'il s'agit d'une synchronisation produit ou d'une commande, l'achemine vers le bon canal et boucle le traitement.
Flux Coinbase AgentKit : un humain alloue un budget USDC, l'agent authentifie son portefeuille Base, règle une facture x402 et traite les données du fournisseur, sans passage par le fiat.
Flux Stripe Agent Toolkit : le consommateur approuve une dépense d'agent, l'agent demande un jeton à portée limitée, le transmet au marchand et la commande se conclut en fiat.
La couche de confiance des paiements d'agent à agent chez Coinbase : l'agent initie la dépense, la transaction est diffusée, le bloc confirme et le paiement devient définitif on-chain.