MICROSOFT AGENT FRAMEWORK · 0.16.0-rc.1
Demo010 — Code ou agent
Exécuter le chemin déterministe, puis comprendre l’option --agent.
Objectifs
- Rejouer le chemin sans modèle.
- Identifier les projets et dépendances.
- Distinguer résultat prévu et preuve d’exécution.
Avant de lancer
Depuis la racine de BaseTechnique, utiliser le SDK .NET 10.0.402 fixé par global.json et restaurer les dépendances NuGet. C# de base suffit au chemin par défaut ; async/await et un profil de connexion fonctionnel sont nécessaires pour --agent. Aucun service de modèle n’est nécessaire pour le chemin déterministe.
| Élément | Rôle | Distribution |
|---|---|---|
| demos/Demo010_CodeOrAgent/Demo010.App.csproj | Application console net10.0 | Point d’entrée Program.cs |
| shared/Maf.Backlog/Maf.Backlog.csproj | Référence de projet déclarée | Conserver le graphe de dépendances partagées, dont DemoConnection |
| shared/Configuration/ai-settings.json | Profil copié vers la sortie | Utilisé seulement après --agent |
| global.json et Directory.Packages.props | SDK et versions centralisées | Conserver à la racine de la distribution |
Les liens ci-dessous visent la révision publique immuable. Conserver les projets partagés et la configuration de la distribution complète ; le dossier Demo010 isolé ne suffit pas.
Chemin sans modèle
dotnet build BaseTechnique.slnx -m:1 -c Release
dotnet run --project demos/Demo010_CodeOrAgent/Demo010.App.csproj -c Release --no-buildRésultat attendu par lecture du code : un calcul de remise valant 90, puis un message de routage indiquant Component: Auth et précisant que ce n’est pas un graphe MAF. Le séparateur décimal dépend de la culture de la console. Le programme se termine avant le chargement du profil. Ces observations attendues ne constituent pas un nouveau test runtime.
Console.WriteLine("Deterministic C#: a fixed discount rule returns " + (100m * 0.9m));
var request = "Login fails for a known account";
var component = request.Contains("Login", StringComparison.OrdinalIgnoreCase) ? "Auth" : "Other";
Console.WriteLine($"Explicit C# orchestration: classify -> route -> display. Component: {component}. This is not a MAF workflow graph.");
if (!args.Contains("--agent")) return;
Code source · Demo010 · Dossier
Deterministic C#: a fixed discount rule returns 90,0
Explicit C# orchestration: classify -> route -> display. Component: Auth. This is not a MAF workflow graph.
Variante optionnelle et limites
dotnet run --project demos/Demo010_CodeOrAgent/Demo010.App.csproj -c Release --no-build -- --agentLe profil partagé fournit le fournisseur et le modèle ; aucune bascule cloud automatique n’est supposée. La branche affiche le fournisseur puis demande deux questions en anglais pour une panne ambiguë. Le texte exact varie. Le délai global est de deux minutes et Ctrl+C demande l’annulation. Une erreur de configuration ou un fournisseur indisponible reste un échec visible.
La branche --agent charge ce composant partagé avant de créer le client. Il assemble le fichier de configuration, les variables d’environnement et les options explicites. Le même code est distribué pour toutes les démos qui le référencent.
public static ConnectionOptions Load(string[] args) => ConnectionOptions.FromConfiguration(
new ConfigurationBuilder().AddDemoConfiguration(args).Build());
