e-naxosMAF COURSE / COURS
English

MICROSOFT AGENT FRAMEWORK · 0.16.0-rc.1

Demo070 — SQLite Backlog

Écrire en SQLite après validation et confirmation dans la fonction.

Objectifs

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.

Projets à lancer
ProjetRôle
demos/Demo070_SqliteBacklog/Demo070.App.csprojApp

Lancer depuis la racine

dotnet run --project demos/Demo070_SqliteBacklog/Demo070.App.csproj -c Release --no-build

Modes 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);

demos/Demo070_SqliteBacklog/Program.cs · L44–L51 · 9a895c94534c

Code source · Demo070 · Dossier

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.

Poursuivre et vérifier

Prérequis

Pour poursuivre

Dossier complet de la démo · README

lot007-foundations-1 · 2026-10-24 · 9a895c94534cd5fc6f3da883e37e5f7856e588c1