Agent, Skill, Flow, Company et Store gardent des identités et cycles de vie distincts.
Tech
Plateforme IA cloud-native. Sur du .NET 10 d'entreprise, dès le premier jour.
Le prompt est la partie facile. L'identité, l'état, l'accès, les opérations et un endpoint public stable demandent davantage. Prostir construit ces frontières sur .NET 10, Orleans, Aspire et Microsoft Agent Framework.
La landing statique publie routes et métadonnées explicites pour chaque locale non russe prise en charge.
Du runtime compilé et des ressources cloud jusqu'à la surface publique statique.
Chaque Agent publié expose son endpoint Streamable HTTP lié au slug.
Le parcours
Votre idée tient en un prompt. La production tient en dix couches d'entreprise.
Toutes les démos d'IA se ressemblent dans ChatGPT. Le vrai écart est entre cette démo et un client qui continue de payer, et c'est là que la plupart des équipes calent. Voici donc la nôtre, du sol compilé jusqu'à l'URL publique. Dix couches. Chacune est le choix prudent et fiable. Chacune est une raison pour qu'une personne sans code puisse livrer un vrai produit.
01Les fondations
.NET 10 et C# : une base compilée et typée.
Prostir utilise .NET 10 et C# pour les contrats typés, l'I/O asynchrone, dependency injection, options, télémétrie, HTTP hosting, services en arrière-plan et source generation. Le langage seul ne garantit ni coût, ni performance, ni énergie, ni sécurité de la supply chain : ces résultats dépendent de la charge, des dépendances, du déploiement et de l'exploitation.
02Le cloud
Azure : services managés et frontières de déploiement explicites.
Prostir utilise Azure Container Apps, Cosmos DB Serverless, Blob Storage, Monitor, managed identity et RBAC. Azure publie des documents de conformité et des conditions de disponibilité par service ; ils ne certifient pas automatiquement Prostir et ne créent pas de SLA global du produit. Les régions et ressources sont définies par l'environnement opérateur. Les données Company et les projections de consultation Store utilisent des comptes Cosmos régionaux et des pools de shards distincts. Les droits du Tenant et du produit sont vérifiés explicitement ; une clé de grain ne donne aucun droit à elle seule. Un seul déploiement Gateway sert les domaines produit. Company se gère dans le WebApp principal et son MCP exige OAuth et une adhésion active.
03Le pont local
Aspire : un AppHost et un câblage d'intégration.
Prostir.AppHost compose Cosmos DB, Azure Storage, Orleans, API, Gateway, WebApp, Landing et SuperAdmin pour les flux locaux et les tests d'intégration. Cela aide à repérer les écarts de configuration ; la readiness production demande encore validation du déploiement, monitoring et contrôles de release.
04Le runtime distribué
Orleans : chaque agent a un jumeau numérique.
Voici l'idée qui rend tout le reste simple. Orleans donne à chaque agent un acteur virtuel. Voyez-le comme un jumeau numérique : une copie logicielle d'une chose réelle, un agent, un client, qui garde sa propre mémoire et fait son propre travail dans sa pièce fermée à lui, sans que personne d'autre n'y touche. Une fois que tout est un jumeau, le travail ne porte plus sur des serveurs mais sur des objets qui se parlent. Vous décrivez juste qui envoie quel message à qui : une personne à un jumeau, un jumeau à un autre jumeau. C'est tout le modèle. Il est ancien et éprouvé. Erlang a fait tourner des réseaux téléphoniques comme ça pendant des décennies presque sans interruption. Orleans s'occupe des parties difficiles, comme l'endroit où vit chaque jumeau et la façon dont sa mémoire est sauvegardée et déplacée entre les machines. La montée en charge n'est donc jamais une astuce de cache fragile. C'est un jumeau sûr et isolé pour chaque chose qui compte. Orleans utilise Azure Tables pour l’état, le cluster et les rappels, et Azure Blob Storage pour les tâches durables. Les données produit passent aussi par EF Core et Cosmos DB. Flow est un produit d’automatisation distinct : Orleans gère son état, ses exécutions et ses déclencheurs ; Elsa.Workflows.Core exécute le graphe dans le processus. Les workflows déclaratifs d’Agent Framework appartiennent à l’Agent.
05La frontière MCP
ManagedCode.MCPGateway : du MCP distant qui passe à l'échelle.
ManagedCode.MCPGateway réunit les outils locaux activés et les outils sélectionnés de serveurs MCP externes dans un catalogue de recherche et d’exécution. Le SDK officiel MCP pour C# gère le protocole. Prostir.Gateway ajoute le routage par produit, OAuth, les autorisations, les droits, les quotas et l’audit avant l’exécution dans Orleans. Une connexion externe fournit des outils seulement après leur découverte et leur sélection explicite.
06La couche de connaissance
ManagedCode.MarkdownLd.Kb : contexte source interrogeable.
ManagedCode.MarkdownLd.Kb transforme les sources prises en charge en artefacts Markdown-LD ou JSON-LD et en graphe interrogeable. JsonSchema.Net valide les arguments des outils MCP. La recherche peut renvoyer un contexte lié à la source lorsque l'index le permet ; qualité et citations dépendent toujours des sources, de l'indexation, de la configuration et du modèle.
07Le cerveau IA
Une frontière applicative pour les modèles configurés.
Microsoft.Extensions.AI fournit IChatClient et Microsoft Agent Framework exécute les Agents prompt et déclaratifs. Les routes actuelles utilisent Azure OpenAI, des fournisseurs OpenAI-compatible ou les connexions du créateur. Disponibilité et changement de modèle dépendent de la configuration, des capacités compatibles, des identifiants et de la politique produit.
08La boucle de développement
Développement assisté par agents avec des règles visibles.
Prostir utilise les règles AGENTS.md, les vertical slices, la code review, les contrôles ciblés, les tests d'intégration et les gates de release. Les coding agents assistent la recherche, l'implémentation et la revue sans remplacer l'ownership, le jugement humain ni la vérification.
Claude CodeOpenAI Codex09La face produit
Blazor, Stripe and Rozetka Pay, Stateless, Jint : la surface côté créateur.
Les créateurs gèrent leurs produits dans Blazor WebAssembly avec MudBlazor ; les opérateurs utilisent une console Blazor Server. Quand le créateur active une machine à états, Stateless contrôle les transitions configurées. Jint exécute les outils JavaScript avec des limites d’instructions, de mémoire, de récursion et de durée, et un accès restreint à .NET 10. Stripe.net et l’intégration HTTP de Rozetka Pay assurent les paiements aux vendeurs, le checkout et les webhooks ; les abonnements à la plateforme passent par Stripe. Les fonctions disponibles dépendent de la configuration et des droits du produit.
10La vitrine statique
Une landing Astro avec des métadonnées de découverte explicites.
La page est générée en HTML statique par Astro. Canonical links, hreflang, données structurées, sitemap, IndexNow et llms.txt décrivent les routes publiques prévues. Les contrôles locaux couvrent HTML, crawlability, accessibilité et templates Lighthouse ; les moteurs de recherche décident du crawl, de l'indexation et du classement.
Le résultat
Un endpoint MCP hébergé, observable et vendable par agent.
Les couches se rejoignent dans une URL MCP liée au slug de chaque Agent publié. Les clients pris en charge peuvent se connecter à l'endpoint Streamable HTTP ; accès, facturation, connaissance, outils, état, mémoire, audit et limites restent des capacités explicites activées par configuration et entitlement.
Pourquoi .NET 10
Trois stacks viables, un choix Prostir documenté.
Node.js, Python et .NET 10 peuvent héberger des serveurs MCP. Le tableau décrit les choix de Prostir, pas un classement universel de performance, coût, énergie ou sécurité.
| Capacité | Node.js / Express | Python / FastAPI | Prostir (.NET 10) |
|---|---|---|---|
| Runtime HTTP | Node.js runtime | Python ASGI runtime | ASP.NET Core |
| État distribué par identité | Choose a state framework | Choose a state framework | Orleans virtual actors |
| Dependency injection, options et télémétrie | Framework or library choice | Framework or library choice | Microsoft.Extensions.* |
| Abstraction IA | Provider libraries or abstraction | Provider libraries or abstraction | Microsoft.Extensions.AI + Agent Framework |
| SDK MCP | Official MCP TypeScript SDK | Official MCP Python SDK | Official MCP C# SDK |
| Validation des schémas d'outils | Library-selected validation | Library-selected validation | JsonSchema.Net |
| Modèle de contrats | TypeScript contracts | Python typing tools | C# + source generation |
| Composition locale | Local process tooling | Local process tooling | dotnet watch + Aspire AppHost |
Les colonnes Node.js et Python indiquent des choix courants, pas des limites. La colonne Prostir est vérifiée dans les package et project files actuels.
Pourquoi Azure
Même backend MCP. Pensé pour le cloud où il tourne.
Pas une grille tarifaire, une grille d'adéquation. Voici ce dont un backend MCP payant et multi-client a vraiment besoin, et où chaque élément se pose mieux sur Azure. AWS est excellent. C'est juste là que le produit se pose.
| Ce qui compte | Sur AWS | Prostir sur Azure |
|---|---|---|
| Éléments de contrôle et conformité | Service-specific controls and certifications | Azure service controls; Prostir deployment assessed separately |
| Conditions de disponibilité | Per-service and per-region terms | No blanket Prostir SLA is claimed here |
| Placement régional | Region configured per workload | Operator-provisioned regional resources |
| Réseau et ingress | Optional global networking services | Configured Gateway and static-site routing |
| Routes de fournisseurs de modèles | Bedrock and partner model routes | Azure OpenAI, OpenAI-compatible, and creator BYOK routes |
| Accès client | Cognito or custom identity | Prostir access and OAuth policy above the hosting layer |
| Runtime applicatif | Runtime selected by the company | .NET 10, Orleans, Aspire, and Managed Code libraries |
| Hébergement de la landing statique | S3 + CloudFront or Amplify | Azure Static Web Apps for this landing |
Les fournisseurs cloud documentent leurs services. Certification, SLA, régions et contrôles opérationnels de Prostir doivent être vérifiés séparément pour l'environnement réel.
Open source
L'open source qu'on livre, l'open source qu'on utilise.
Prostir est construit par Managed Code sur de l'open source Microsoft et communautaire. Chaque paquet ci-dessous est réel, tiré des fichiers de notre projet, pas une liste de souhaits marketing.
Construit par Managed Code
Managed Code n'est pas juste le crédit en pied de page. La passerelle MCP, le pipeline de connaissance, le stockage et les intégrations Orleans sous votre agent publié sont de l'open source Managed Code qu'on maintient et qu'on livre.
- Managed CodeL'équipe derrière Prostir. On ouvre le code des primitives backend qu'on utilise nous-mêmes.
- ManagedCode on GitHubMCPGateway, MarkdownLd.Kb, Storage, Communication, extensions Orleans, et le reste.
- ManagedCode.MCPGatewayRecherche et exécution des outils locaux activés et des outils MCP sélectionnés.
- ManagedCode.MarkdownLd.KbPipeline de connaissance Markdown-LD / JSON-LD avec recherche sur graphe.
- ManagedCode.Storage.AzureAbstraction de stockage pour fichiers, mémoire et artefacts runtime sur Azure Blob.
- ManagedCode.CommunicationContrats Result, Command et CollectionResult aux frontières de l'API et d'Orleans.
- ManagedCode.Orleans.IdentityGitHub · managedcode/Orleans.Identity
- ManagedCode.Orleans.RateLimitingGitHub · managedcode/Orleans.RateLimiting
Les fondations .NET 10
Tout ce que Microsoft fait passer en GA depuis .NET 10 s'est rejoint dans .NET 10 et Aspire. C'est la plomberie sans éclat et fiable sous chaque page de Prostir.
- .NET 10Runtime compilé, C# et générateurs de source.
- ASP.NET CoreHTTP, auth, OpenAPI, Minimal APIs, JsonPatch, services hébergés.
- AspireOrchestration AppHost, service defaults, ressources de déploiement.
- Microsoft OrleansRuntime d'acteurs virtuels pour .NET 10 distribué : grains, persistance, placement, stateless workers et télémétrie dashboard.
- EF Core (Cosmos)Persistance et modèle de requête typés au-dessus d'Azure Cosmos DB.
- MudBlazorComposants Material Design pour l'espace de travail créateur.
- C# / RoslynGitHub · dotnet/roslyn
- BlazorMicrosoft · Blazor
- AzureMicrosoft Learn · Azure
- OpenTelemetryOpenTelemetry
IA, MCP et les bibliothèques au-dessus
Prostir utilise Microsoft.Extensions.AI comme frontière chat et Microsoft Agent Framework pour exécuter les Agents. Le runtime utilise aussi le SDK MCP C#, Jint, Stateless et les intégrations Stripe et Rozetka Pay pour les parcours pris en charge.
- Microsoft.Extensions.AIUne seule interface pour le chat, les embeddings, les appels d'outils et la télémétrie.
- Microsoft Agent FrameworkMicrosoft Agent Framework pour les Agents prompt et déclaratifs.
- Model Context Protocol C# SDKLe SDK officiel en C# pour serveurs et clients MCP.
- JintUn moteur JavaScript dans .NET 10. Il exécute les scripts d'outils que le créateur écrit.
- StatelessDes machines à états qui décident de ce que l'agent peut faire ensuite.
- Stripe.netStripe.net — Le client Stripe and Rozetka Pay pour l'accès payant, le checkout et les webhooks.
- Rozetka Pay APIRozetka Pay — Le client Stripe and Rozetka Pay pour l'accès payant, le checkout et les webhooks.
- Elsa WorkflowsGitHub · elsa-workflows/elsa-core
- JsonSchema.NetGitHub · json-everything/json-everything
- PdfPigGitHub · UglyToad/PdfPig
- Open XML SDKGitHub · dotnet/Open-XML-SDK
Comment ce site est construit et livré
Prostir utilise le développement assisté par agents avec des règles de dépôt, la code review, des contrôles automatisés et un ownership humain. AGENTS.md rend le contrat de livraison visible et Astro génère cette page statique localisée.
- Agent-assisted developmentAGENTS.md et les tests d'intégration rendent prévisible la boucle de construction assistée par agents.
- Repository delivery rulesLe développement assisté par agents suit les mêmes règles de dépôt et de revue que les autres changements.
- AstroLa landing statique et localisée, faite pour les moteurs de recherche et de réponses.
- TUnitTests unitaires, d’intégration et dans le navigateur sur Microsoft.Testing.Platform avec Aspire et Playwright.
- Microsoft.Testing.PlatformGitHub · microsoft/testfx
- PlaywrightGitHub · microsoft/playwright-dotnet
- LighthouseGitHub · GoogleChrome/lighthouse
- IndexNowIndexNow
- llms.txtllms.txt
- JSON-LDJSON-LD
FAQ tech
Les questions que les équipes posent avant de bâtir sur cette stack.
Ces réponses relient la stack à de vraies décisions de production : Orleans, Aspire, C#, MCP, facturation, accès, connaissance et visibilité opérateur.
Quel travail réel Orleans fait-il dans Prostir ?Orleans possède les identités runtime qui vivent longtemps : agents, sessions, clients, access grants, conversations de canaux, réservations de wallet et exécutions de workflow. Chacune a un id stable, un état et un comportement, au lieu de cacher l'état dans un singleton, un cache ou un processus de fond.Lire
Quand Orleans vaut-il mieux qu'une queue plus une API CRUD ?Quand vous avez beaucoup de petites entités assez indépendantes qui ont besoin de request-response, de flux start-monitor-complete ou d'état par identité. Microsoft cite user profiles, purchase orders, sessions, stocks et social pub/sub ; Prostir applique ce modèle aux agents, sessions client et workflow runs.Lire
Qu'est-ce qu'un grain, côté produit ?Un grain est un acteur virtuel : un objet logique avec une identité, un comportement et, si besoin, un état persistant. Dans Prostir, cela peut être un agent publié, une conversation client, un access grant ou une exécution de workflow.Lire
Comment Orleans aide-t-il l'isolation des clients ?Les données Company et les projections de consultation Store utilisent des comptes Cosmos régionaux et des pools de shards distincts. Les droits du Tenant et du produit sont vérifiés explicitement ; une clé de grain ne donne aucun droit à elle seule. Un seul déploiement Gateway sert les domaines produit. Company se gère dans le WebApp principal et son MCP exige OAuth et une adhésion active.Lire
Quels sont les principaux risques avec Orleans ?Les risques sont les grains trop bavards, un coordinateur qui devient goulot, les appels synchrones bloquants, les messages trop gros et l'état partagé caché. Prostir les garde visibles avec ownership vertical, appels async, stateless workers pour le fan-out et tests d'intégration sur le vrai chemin Gateway/API/Orleans.Lire
Qu'est-ce qu'Aspire ajoute à Docker Compose ?Aspire compose les projets, dépendances, découverte de services, contrôles de santé et télémétrie pour le développement local et les tests d’intégration. Aspire.Hosting.Blazor sert l’application WebAssembly locale. Bicep et les pipelines Azure DevOps gèrent les ressources et les mises en production.Lire
Comment Prostir utilise Aspire dans les tests ?L'AppHost démarre les ressources nécessaires aux tests d'intégration et navigateur, dont Cosmos DB, Azure Storage, Orleans, API, Gateway, Landing, WebApp et SuperAdmin. Cela exerce les mêmes frontières de service ; la production garde une configuration et des contrôles de release propres au déploiement.Lire
Pourquoi le runtime est-il en C# et .NET 10 ?Le runtime a besoin de contrats forts, async IO, dependency injection, options, télémétrie, HTTP hosting, background workers, source generation et déploiements prévisibles. .NET 10 fournit cela comme infrastructure first-party, pas comme un collage de paquets sans lien.Lire
.NET 10 enferme-t-il Prostir chez un seul fournisseur IA ?Non. Microsoft.Extensions.AI et `IChatClient` fournissent une frontière stable pour chat et tools. Le modèle concret vient d'une connexion Azure OpenAI, OpenAI-compatible ou du créateur qui respecte le contrat runtime.Lire
Pourquoi MCP est-il difficile en production ?Le protocole n'est que l'entrée. Un endpoint MCP distant payant a aussi besoin d'OAuth, access grants, tenant checks, tool schemas, rate limits, quotas, facturation, audit, erreurs fiables et d'un hot path qui ne relit pas toute la base produit à chaque request.Lire
Où se place ManagedCode.MCPGateway ?ManagedCode.MCPGateway réunit les outils locaux activés et les outils sélectionnés de serveurs MCP externes dans un catalogue de recherche et d’exécution. Le SDK officiel MCP pour C# gère le protocole. Prostir.Gateway ajoute le routage par produit, OAuth, les autorisations, les droits, les quotas et l’audit avant l’exécution dans Orleans. Une connexion externe fournit des outils seulement après leur découverte et leur sélection explicite.Lire
Comment l'accès payé devient-il une permission runtime ?Checkout et webhooks des providers du vendeur créent ou révoquent des access grants. Gateway vérifie ces grants avant les appels MCP protégés, donc l'état de paiement devient une permission runtime, pas une feuille de calcul.Lire
Comment la couche connaissance évite-t-elle le prompt stuffing ?Les fichiers deviennent des artefacts Markdown-LD / JSON-LD et des graphes consultables. Le runtime récupère un contexte borné et relié aux sources quand l'index le permet ; la qualité dépend des sources, de l'indexation, de la configuration et du modèle.Lire
Quels cas réels correspondent à cette stack ?Les bons cas : agents de connaissance payants, copilotes support avec mémoire client, process agents avec state machines, agents de canal pour Telegram ou web widgets, skill passports vendables et workflows qui ont besoin de progression, retries et audit.Lire
Quand cette stack est-elle trop lourde ?Si vous avez seulement besoin d'un site statique, d'une démo de prompt ou d'un chatbot privé sans auth, tools, billing, state ni customer memory, prenez plus simple. Prostir existe quand l'agent devient un produit hébergé dont d'autres dépendent.Lire
Prostir fonctionne-t-il par API ou par MCP ?Pour utiliser un Agent dans Claude, ChatGPT et d'autres clients compatibles, le parcours passe par son endpoint MCP distant. Prostir utilise aussi des APIs et webhooks pour la gestion web, les paiements et les intégrations approuvées. La plateforme est hébergée sur .NET et Azure ; connecter un CRM, une base de données ou un système privé dépend du plan et peut demander un périmètre sur mesure.Lire
Tech
Reliez la technologie à un parcours produit concret.
Les guides et exemples montrent où comptent connaissance, outils, état, mémoire, facturation, accès, quotas et visibilité opérateur. Les cas clients vérifiés restent une catégorie distincte.