MICROSOFT AGENT FRAMEWORK · 0.16.0-rc.1
Limites et revue de production
Relier les capacités enseignées à leurs preuves et préparer les décisions qui restent propres au produit.
Objectifs
- Revue des contrôles existants
- Authentification et exploitation non démontrées
- Réserves de qualification et décisions restantes
Transformer la démonstration en décision de projet
Un POC réduit une incertitude : les documents disponibles permettent-ils une aide utile et un opérateur sait-il contrôler son effet ? Une application exploitée doit aussi résister aux changements de données, de droits, de prompts et de charge. Les épisodes EP018 et les synthèses J2 invitent à poser ces questions. Ici, chaque réponse doit citer un mécanisme, sa preuve et sa limite ; afficher une question avec une coche ne construit aucun contrôle.
Lire la grille des capacités enseignées
| Mécanisme | Portée |
|---|---|
| Contrat et outils | Validate et tests hôte ; définir les règles du vrai métier et les droits serveur |
| Corpus et citation | Admissibilité et citation exacte ; gouverner sources, mises à jour et données réelles |
| Approbation et reprise | Checkpoint + clé unique SQLite ; choisir identité de l’approbateur et périmètre transactionnel |
| Harness | Boucles bornées et annulation ; définir quotas partagés et comportement sous charge |
| Traces et journal | Export restreint et transaction locale ; définir rétention, accès et supervision |
| Évaluation | Fixtures et portes strictes ; faire annoter indépendamment et qualifier le profil réel |
Ces familles se complètent. Une sortie typée doit encore satisfaire le métier. Une approbation valide une proposition précise sans certifier sa vérité. Un appel outil observé ne démontre pas sa persistance. L’historique conversationnel n’est pas une mémoire de faits gouvernée. Une séquence C# ou un plan JSON n’est pas automatiquement un graphe natif MAF. SQLite et SQL Server partagent une approche ADO.NET, sans partager toutes leurs garanties opérationnelles.
Exiger des preuves des contrôles non implémentés
Console.WriteLine("Production review checklist - educational scope");
Console.WriteLine("A checklist does not implement or certify these controls.");
foreach (string question in new[]
{
"Is the business contract validated by host code?",
"Does the host bind approval to the exact proposal?",
"Are evidence eligibility and citations checked before action?",
"Does a restart preserve the pending decision and prevent duplicate effects?",
"Are permissions, budgets, cancellation and failure paths exercised?",
"Are safe traces distinct from committed business records?",
"Is the exact model/provider profile qualified on the intended workload?",
"Have authentication, deployment, backups and operational recovery been designed?"
})
Console.WriteLine("Review: " + question);
Console.WriteLine("Start with docs/lot-015/Guide.md and AuditClosure.md in the canonical distribution.");
Code source · Demo490 · Dossier
| Mécanisme | Portée |
|---|---|
| Authentification et autorisation | Identités, révocation, approbateur et contrôles serveur ; tests de refus d’accès |
| Isolation multi-tenant | Propriété des opérations, index et fichiers ; tests de lecture/écriture croisée |
| Sauvegarde et reprise | Copie cohérente business/checkpoints, secrets, versions ; restauration exercée avec objectifs de perte et délai |
| Disponibilité et charge | Topologie, concurrence, capacité, pannes et alertes ; essais sous charge représentative |
| Effets distants | Clés idempotentes, outbox/compensation selon besoin ; tests de coupure entre systèmes |
| Maintenance et confidentialité | Migrations, versions, déploiement/rollback, accès et effacement ; procédures réellement exécutées |
Ces contrôles ne sont pas livrés par Demo490. Son unique programme imprime huit questions et la mention éducative, sans modèle, base ou serveur. Le README générique évoque des modes live optionnels ; Program.cs n’en expose aucun pour cette démo. Le verrou de fichier de Demo470 coordonne un hôte, pas un cluster. Ses fichiers modifiables ne sont ni signés ni inviolables. Le backend ASP.NET Core et les clients Web/WPF Demo410 restent distincts de l’approbation console.
Préparer une revue argumentée
Pour chaque capacité retenue, écrire le risque, le propriétaire de la décision, le mécanisme envisagé, le test d’échec attendu et le critère d’acceptation. Classer les preuves : lecture du code, fixture exécutée, appel réel daté, validation métier indépendante et essai d’exploitation. Une réussite d’une catégorie ne remplit pas les autres. Commencer par un cas utile et borné ; si une règle déterministe suffit, conserver le code et mesurer la complexité évitée.
Versionner ensemble contrat, corpus/index, graphe, prompts, références et configuration utile. Avant de modifier le graphe, décider du sort des demandes Waiting de l’ancienne version. Rejouer une décision avec la même clé ne valide pas une migration de schéma ou une restauration de sauvegarde. Les tests de non-régression couvrent les règles contrôlées ; une nouvelle campagne modèle doit conserver les échecs et calibrer son juge au lieu d’ajuster les attendus aux sorties.
Reprendre les ouvertures techniques du cours
Pour les sessions, tester save/load/newsession, versionner le format et décider du refus en cas de restauration impossible. Distinguer sérialisation AgentSession et simple reconstruction textuelle. Pour la mémoire, choisir une représentation de contexte et valider les mises à jour via le provider ; définir ensemble le cycle de vie des faits et de la session. Un stockage distribué éventuel demande des règles de concurrence et de provenance supplémentaires.
Pour le RAG, garder identifiants stables de document/chunk et manifeste de modèle, dimension et métrique. Une indexation incrémentale avec reprise reste un approfondissement à concevoir. Régler seuils et top-k sur des cas documentés ; choisir contexte explicite, provider ou outil selon le moment où la recherche est nécessaire. Encadrer les outils par annulation, durée et résultats vérifiables. Le stockage vectoriel du cours reste SQLite avec cosinus exact.
Pour les plans, ResponseFormat peut cadrer la génération sans valider ordre, cohérence et étapes critiques du métier. Compiler et réutiliser le schéma quand c’est approprié, borner les retries et exécuter seulement un plan validé. Les workflows natifs du parcours rénové remplacent l’ancienne réserve « aucun graphe natif montré » ; handoff et concurrence ouverte restent distincts. Pour la télémétrie, une exportation centralisée future doit préserver la projection restreinte et sa politique de minimisation plutôt que réintroduire requêtes et secrets dans les tags.
Ce que vous savez maintenant relier
Au début du parcours, la question était de choisir entre une fonction et un agent. Vous pouvez maintenant suivre une donnée depuis sa source admissible jusqu’à une ligne métier, en nommant chaque frontière : configuration du transport, contrat, outil autorisé, contexte, preuve, proposition, décision et commit. Demo470 permet de quitter le processus au milieu du parcours puis de distinguer attente, refus et effet réellement présent. C’est une capacité d’analyse réutilisable lorsque le modèle ou l’interface change.
La suite consiste à appliquer ces distinctions à un processus réel et à chercher les cas qui mettent les garanties en défaut. Garder une proposition lisible pour l’opérateur, un refus explicable et une preuve de stockage indépendante du récit généré. La mesure doit porter sur toute la chaîne, y compris les appels auxiliaires et la qualité perdue. Le cours fournit des mécanismes locaux et des expériences reproductibles ; la qualification du produit reste une décision appuyée sur vos données, vos droits et votre exploitation.
Choisir un approfondissement vérifiable
Après Demo470, explorer Demo480 pour comparer routage et baseline, puis Demo490 pour construire votre grille de décisions. Pour fan-out/fan-in, concevoir jointure, annulation et échec partiel avant d’ajouter la concurrence. Pour handoff ou conversation de groupe, définir propriétaire, visibilité et arrêt. Le harness borné ne livre pas un planificateur multi-agent ouvert. Ces orchestrations supplémentaires restent des travaux à réaliser.
Le cours ne distribue ni chargeur de skills, ni protocole A2A, ni hébergement d’agents distants. Un skill doit avoir provenance, règles d’admission et droits bornés ; son texte ne peut pas s’accorder des permissions. Étendre MCP au réseau demande identité serveur, autorisation et protection du transport. Une API compatible ou un nouveau fournisseur exige sa qualification propre. Pour une interface, repartir des contrats Demo410 et de WPF MVVM Toolkit, puis réaliser la recette graphique et les contrôles d’exploitation manquants.
Réserves toujours ouvertes
Le profil candidat/juge par défaut granite4:3b reste non qualifié. Les références métier n’ont pas de validation humaine indépendante établie. La recette WPF interactive, la disponibilité, l’isolation multi-tenant et les sauvegardes de production ne sont pas établies par cette synthèse. Les droits des textes et visuels restent distincts de la candidate MIT du code non publiée. Aucune page du cours ne constitue une certification de mise en production.
