Skip to content

MCP claudish: permettre à un agent de négocier ses capacités avec le backend, appliqué à la prochaine condensation #11556

Description

@myia-ai-01

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

  1. 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.
  2. 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.
  3. 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

  • Un serveur MCP joignable par les agents du cluster, avec au minimum claudish_status + claudish_capabilities (la moitié lecture est déjà utile seule, et se livre en premier)
  • claudish_request_capability avec application à la prochaine condensation, jamais en cours de conversation
  • Refus motivé (quota / frugalité / mandat), lisible par l'agent
  • Aucun secret dans la surface MCP (le hub exige déjà x-api-key/x-proxy-key ; le MCP s'authentifie comme un client de plus)
  • Documenté dans la section Claudish du dépôt (voir le ticket de rafraîchissement doc)

Dépendances et voisinage

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions