e-naxosMAF COURSE / COURS
English

MICROSOFT AGENT FRAMEWORK · 0.16.0-rc.1

Demo300 — External Request

RequestPort et SendResponseAsync sont réels ; le tiers externe est simulé par la décision CLI immédiate. approve donne Completed avec StoredItem, reject zéro item, maybe échoue. Chaque lancement crée une nouvelle opération et une base temporaire.

Objectifs

Préparer le programme

Aucun modèle, embedding, conteneur ou secret nécessaire. Depuis la racine de la distribution complète. Préserver les projets partagés et les fichiers de configuration. Certains prompts et libellés historiques de Demo260–290 sont encore en français dans le code public ; les commandes et identifiants restent ceux de cette révision.

dotnet build BaseTechnique.slnx -m:1 -c Release
Projets nécessaires
ProjetRôle
demos/Demo300_ExternalRequest/Demo300.App.csprojApplication
shared/Maf.Durable/Maf.Durable.csprojImplémentation partagée

Commandes depuis la racine

dotnet run --project demos/Demo300_ExternalRequest/Demo300.App.csproj -c Release --no-build -- approve

Manipulations et variantes

Lancer approve, reject puis maybe dans des invocations distinctes. Relever les identités et les états affichés.

var prepare = new Prepare(store);
var port = RequestPort.Create<ApprovalTicket, ApprovalDecision>("BusinessApprovalV1");
var apply = new Apply(store, failAfterWrite);
return new WorkflowBuilder(prepare).AddEdge(prepare, port).AddEdge(port, apply)
    .WithOutputFrom(apply).Build();

shared/Maf.Durable/ApprovalWorkflow.cs · L20–L24 · 9a895c94534c

Code source · Maf.Durable · Dossier

Ce qui doit être observable

RequestPort et SendResponseAsync sont réels ; le tiers externe est simulé par la décision CLI immédiate. approve donne Completed avec StoredItem, reject zéro item, maybe échoue. Chaque lancement crée une nouvelle opération et une base temporaire.

Ces résultats sont attendus à partir du code lié. Les observations effectivement rejouées pour ce lot sont distinguées dans les exercices et la réception ; aucune sortie live non mesurée n’est donnée comme observée.

Limites et état conservé

Demo300 répond dans le processus vivant ; Demo310 conserve son manager en mémoire ; seule Demo320 conserve les checkpoints sur disque pour une reprise dans un autre processus. La base SQLite existe dans les trois variantes. Unicité locale de la ligne, aucun exactly-once distribué. La CLI fait confiance à son opérateur, sans authentification de relecteur.

dotnet test tests/Maf.Durable.Tests/Maf.Durable.Tests.csproj -m:1 -c Release --no-build --no-restore

Contrats et prérequis

Prérequis

Pour poursuivre

Dossier complet de la démo · README

lot009-workflows-1 · 2026-10-24 · 9a895c94534cd5fc6f3da883e37e5f7856e588c1