MICROSOFT AGENT FRAMEWORK · 0.16.0-rc.1
Demo070 — SQLite Backlog
Écrire en SQLite après validation et confirmation dans la fonction.
Objectifs
- Observer Demo070 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 : 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/Demo070_SqliteBacklog/Demo070.App.csproj | App |
Lancer depuis la racine
dotnet run --project demos/Demo070_SqliteBacklog/Demo070.App.csproj -c Release --no-buildModes et manipulation
Choisir un chemin de base de travail, saisir list puis une demande claire de bug Auth. Lire le draft avant toute confirmation. L’agent écrivain appelle create_backlog_item avec le proposalId du host ; la fonction demande alors Approve this exact proposal? [y/N].
var gate = new WriteGate(store, draft, canWrite: global::Maf.DemoConnection.DemoConfiguration.GetSetting("MAF_DEMO_READ_ONLY") != "1");
[Description("Creates the fixed reviewed backlog draft in SQLite after host permission and console confirmation. Returns Created, Invalid, Refused or Error; never accepts replacement draft fields.")]
ToolOutcome CreateReviewed([Description("Exact host-issued proposal ID for the reviewed draft.")] string proposalId)
{
Console.WriteLine($"Fixed draft: {JsonSerializer.Serialize(draft)}");
Console.Write("Approve this exact proposal? [y/N] > ");
gate.Approve("create_backlog_item", proposalId, Console.ReadLine() == "y");
return gate.Create(proposalId);
Résultats et échecs utiles
Refuser avec n, vérifier les observations et list ; recommencer avec un nouveau draft puis y. Exiger Created avec ItemId et la ligne réellement relue. Avec MAF_DEMO_READ_ONLY=1, y ne suffit pas. Une demande encore ambiguë ne doit pas atteindre l’outil écrivain.
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
La confirmation est dans le corps de l’outil ; ce n’est pas encore ApprovalRequiredAIFunction. Le verrou porte sur un draft copié et une capacité en mémoire consommable une fois. Le fichier et les lignes SQLite survivent ; cette permission ne survit pas.
