MICROSOFT AGENT FRAMEWORK · 0.16.0-rc.1
Demo100 — Controlled Action
Comparer une consigne textuelle au refus déterministe du host.
Objectifs
- Observer Demo100 et ses variantes ; relier le résultat aux concepts du chapitre.
Préparer la démo
Depuis la racine de la solution complète déjà compilée en Release. Prérequis du parcours : Demo050 ; Demo060. Ce programme utilise le chat réel du profil sélectionné ; aucun embedding n’est nécessaire sauf le mode --embed de Demo020. Vérifier la connexion et les capacités requises avant de conclure à un défaut du scénario.
| Projet | Rôle |
|---|---|
| demos/Demo100_ControlledAction/Demo100.App.csproj | App |
Lancer depuis la racine
dotnet run --project demos/Demo100_ControlledAction/Demo100.App.csproj -c Release --no-buildModes et manipulation
Le programme exécute successivement PromptOnly et ControlledAnalyst avec une demande hostile urgent/SecretAdmin. Il termine par un BacklogDraft invalide fixé dans le code. Aucun menu ni saisie interactive ; les deux premiers chemins appellent réellement le chat.
var invalid = new BacklogDraft("Example", "Bug", "urgent", "SecretAdmin", "A syntactically valid but forbidden draft.", []);
Console.WriteLine("Host-controlled business validation: " + string.Join(" ", invalid.Validate()));
Console.WriteLine("No write capability is granted. See the Lab02 -> Lab05 path for model-generated contracts and real SQLite writes.");
Résultats et échecs utiles
Comparer la déclaration libre, le contrat généré et Validation. Le contre-exemple fixe montre Unknown priority et Unknown component indépendamment de la bonne volonté du modèle, si l’exécution atteint cette étape. Aucun outil d’action n’est exposé, aucun remboursement ni insert n’a lieu.
Ces observations sont attendues par lecture du code à la révision indiquée. Aucun nouvel appel de modèle n’a été exécuté pour rédiger cette fiche ; le texte exact d’une réponse générée n’est pas une sortie de référence.
Portée et limites
EP001 utilisait des seuils de remboursement pour expliquer la même frontière. Cette version consolide le raisonnement dans le backlog ; ne pas chercher ExecuteRefund ou un ancien menu. Une panne du premier appel réel peut interrompre le programme avant la fixture finale ; les tests restent la voie déterministe.
