L'idée
Aujourd'hui, un agent subit son backend : le routage tier → provider est décidé au hub, l'agent ne sait pas ce qui le sert, et n'a aucun moyen de dire ce dont il a besoin. Or l'agent est la seule entité qui connaît la nature de la tâche qu'il s'apprête à faire.
Proposition (mandat user 2026-08-18) : un MCP qui permet aux agents de dialoguer avec leur backend claudish — typiquement pour moduler les capacités courantes nécessaires, sur le principe d'un switch de modèle appliqué à la prochaine condensation.
Pourquoi la condensation est la bonne couture
Un changement de provider en plein milieu d'une conversation est précisément ce que le design refuse à juste titre (tokenizer différent, comportement différent, dérive invisible). Mais à la condensation, le contexte est reconstruit de toute façon : c'est une frontière propre où un changement ne casse rien.
Le fork sait déjà faire quelque chose de très proche — les recovery notices sont émises « sur 3 condensations ». La couture existe donc déjà dans le code ; ce ticket propose de la rendre pilotable par l'agent au lieu d'être seulement réactive au quota.
Pourquoi déclaratif plutôt qu'automatique
C'est l'arbitrage explicite du user contre l'approche semantic-fleet / MultiConnector (Epic #1210) : celle-ci infère le besoin en observant la forme des appels (vetting coût/durée sur des appels de fonction à préfixe identifiable). Ça marche pour des appels de fonction homogènes ; ça marche mal pour un agent de codage dont la tâche change de nature toutes les dix minutes.
Un agent, lui, sait : « je vais faire une passe de QA visuel », « je vais brûler 40 fichiers d'édition mécanique », « j'attaque une preuve Lean ». L'intention déclarée bat l'intention inférée. Les deux approches ne s'excluent pas — le vetting automatique reste pertinent en dessous — mais le canal déclaratif est le levier à construire en premier.
Surface envisagée
Lecture (sans effet de bord, ce qu'un agent ne peut pas savoir aujourd'hui) :
| Outil |
Rend |
claudish_status |
mapping tier → provider effectif, steps armés, configured/armed/auto, horloges de reset |
claudish_capabilities |
ce que le provider courant sait faire — vision oui/non, fenêtre réelle, tool-use, thinking |
claudish_my_traffic |
consommation récente de ma lane (le hub ventile déjà par machine à chaque cycle 3 h) |
Écriture (négociation, pas ordre) :
| Outil |
Effet |
claudish_request_capability |
déclare le besoin de la tâche à venir (vision · long-context · cheap-bulk · heavy-reasoning) ; le hub choisit et épingle un provider, appliqué à la prochaine condensation |
claudish_release |
retour au nominal (fin de tâche) |
Le hub reste arbitre : une demande est une demande, pas une réquisition. Il peut refuser (quota, frugalité, mandat) et dire pourquoi — un refus motivé est exploitable par l'agent, un silence ne l'est pas.
Trois usages qui existent déjà, aujourd'hui, sans réponse
- Vision. Le dashboard
workspace-claudish acte que « GLM coding reste aveugle à la vision, lane Opus natif recommandé pour tasks vision ». Aujourd'hui c'est une consigne de harnais que chaque agent doit se rappeler ; ce serait une capability négociée, vérifiable, et le fix crash-PDF (6373d37) n'aurait pas eu à être découvert par un 400 en production.
- Arbitrage Haiku ai-01. Le dashboard porte un blocage ouvert : 39 req/3 h de workers GitHub-issue hors mandat CoursIA-2, servis en DeepSeek PAYG, « à arbitrer : migrer vers sonnet→glm-5.3 ou autoriser ». Un agent qui déclare
cheap-bulk résout la question à la source au lieu de la faire remonter en arbitrage humain.
- Semaine de frugalité. po-2023 a signalé deux cycles consécutifs à > 400 req Opus depuis ai-01, « poste de dépense à surveiller ». Un agent capable de déclarer
heavy-reasoning seulement quand il en a besoin rend cette surveillance inutile.
Critères d'acceptation
Dépendances et voisinage
L'idée
Aujourd'hui, un agent subit son backend : le routage tier → provider est décidé au hub, l'agent ne sait pas ce qui le sert, et n'a aucun moyen de dire ce dont il a besoin. Or l'agent est la seule entité qui connaît la nature de la tâche qu'il s'apprête à faire.
Proposition (mandat user 2026-08-18) : un MCP qui permet aux agents de dialoguer avec leur backend claudish — typiquement pour moduler les capacités courantes nécessaires, sur le principe d'un switch de modèle appliqué à la prochaine condensation.
Pourquoi la condensation est la bonne couture
Un changement de provider en plein milieu d'une conversation est précisément ce que le design refuse à juste titre (tokenizer différent, comportement différent, dérive invisible). Mais à la condensation, le contexte est reconstruit de toute façon : c'est une frontière propre où un changement ne casse rien.
Le fork sait déjà faire quelque chose de très proche — les recovery notices sont émises « sur 3 condensations ». La couture existe donc déjà dans le code ; ce ticket propose de la rendre pilotable par l'agent au lieu d'être seulement réactive au quota.
Pourquoi déclaratif plutôt qu'automatique
C'est l'arbitrage explicite du user contre l'approche semantic-fleet / MultiConnector (Epic #1210) : celle-ci infère le besoin en observant la forme des appels (vetting coût/durée sur des appels de fonction à préfixe identifiable). Ça marche pour des appels de fonction homogènes ; ça marche mal pour un agent de codage dont la tâche change de nature toutes les dix minutes.
Un agent, lui, sait : « je vais faire une passe de QA visuel », « je vais brûler 40 fichiers d'édition mécanique », « j'attaque une preuve Lean ». L'intention déclarée bat l'intention inférée. Les deux approches ne s'excluent pas — le vetting automatique reste pertinent en dessous — mais le canal déclaratif est le levier à construire en premier.
Surface envisagée
Lecture (sans effet de bord, ce qu'un agent ne peut pas savoir aujourd'hui) :
claudish_statusconfigured/armed/auto, horloges de resetclaudish_capabilitiesclaudish_my_trafficÉcriture (négociation, pas ordre) :
claudish_request_capabilityvision·long-context·cheap-bulk·heavy-reasoning) ; le hub choisit et épingle un provider, appliqué à la prochaine condensationclaudish_releaseLe hub reste arbitre : une demande est une demande, pas une réquisition. Il peut refuser (quota, frugalité, mandat) et dire pourquoi — un refus motivé est exploitable par l'agent, un silence ne l'est pas.
Trois usages qui existent déjà, aujourd'hui, sans réponse
workspace-claudishacte que « GLM coding reste aveugle à la vision, lane Opus natif recommandé pour tasks vision ». Aujourd'hui c'est une consigne de harnais que chaque agent doit se rappeler ; ce serait une capability négociée, vérifiable, et le fix crash-PDF (6373d37) n'aurait pas eu à être découvert par un 400 en production.cheap-bulkrésout la question à la source au lieu de la faire remonter en arbitrage humain.heavy-reasoningseulement quand il en a besoin rend cette surveillance inutile.Critères d'acceptation
claudish_status+claudish_capabilities(la moitié lecture est déjà utile seule, et se livre en premier)claudish_request_capabilityavec application à la prochaine condensation, jamais en cours de conversationx-api-key/x-proxy-key; le MCP s'authentifie comme un client de plus)Dépendances et voisinage
jsboige/claudish(le hub) plutôt que dans CoursIA ; le ticket est ouvert ici parce que c'est le workspace de coordination. À déplacer si po-2023 préfère.