Lot 36 : appels d'outils MCP du tour de la façade par son pool

Quand la façade tient les serveurs MCP (LOKI_MCP=rust), un appel mcp__*
d'un de ses tours partait au Go (/internal/v1/tool/exec), qui le renvoyait
aussitôt à la façade (/internal/facade/v1/mcp/call) : deux allers-retours
pour revenir au même pool. Le Go n'ajoute rien au résultat d'un outil MCP.

ChatShared porte désormais le pool (le même que celui des routes, créé une
fois) ; GoTurnHost::exec_tool l'appelle directement — même résultat que la
route interne, reconnexion comprise. Une reconnexion annonce la version du
Go (/internal/v1/auth), lue une fois et retenue. Sans pool tenu, rien ne
change. Le Go garde la route interne pour les tours qu'il exécute encore.

Test : un tour de la façade contre un faux serveur MCP stdio — rien par le
Go, résultats tels que le modèle les reçoit, erreur après reconnexion,
version du Go annoncée.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
This commit is contained in:
Claude committed 2026-10-16 03:47:58 +00:00
1 parent 9dfce204bf
commit 869bd18bff
8 files changed
+223 -11

No files matched your search

+5 -4
View File
@@ -14,10 +14,11 @@ import (
// de la migration ; expérimental, le Go reste le défaut) : configuration,
// catalogue, état et pool de sessions (rust/loki-rs/src/mcp).
//
// Un seul pool : celui de la façade. Le Go, qui exécute encore les outils de
// l'agent, lui demande les outils MCP à annoncer au modèle et leurs appels
// (/internal/facade/v1/mcp/*), quelle que soit la conversation qui tourne ;
// son propre pool reste vide.
// Un seul pool : celui de la façade. Le Go lui demande les outils MCP à
// annoncer au modèle, et leurs appels pour les tours qu'il exécute encore
// (sous-agents, tâches IA, discussion rendue au Go) via
// /internal/facade/v1/mcp/* ; son propre pool reste vide. Les tours de la
// façade appellent son pool sans passer par ici (lot 36).
const facadeMCPEnv = "LOKI_MCP"