Agent, Skill, Flow, Company e Store hanno identità e cicli di vita distinti.
Tech
Piattaforma IA cloud-native. Su .NET 10 aziendale, dal primo giorno.
Il prompt è la parte facile. Più difficili sono identità, stato, accesso, operazioni e un endpoint pubblico stabile. Prostir costruisce questi confini su .NET 10, Orleans, Aspire e Microsoft Agent Framework.
La landing statica pubblica route e metadata espliciti per ogni locale non russo supportato.
Dal runtime compilato e dalle risorse cloud alla superficie pubblica statica.
Ogni Agent pubblicato espone il proprio endpoint Streamable HTTP legato allo slug.
Il percorso
La tua idea è un prompt. La produzione sono dieci strati aziendali.
Ogni demo IA sembra uguale dentro ChatGPT. La distanza reale è tra quella demo e un cliente che continua a pagare, ed è lì che la maggior parte dei company si blocca. Quindi ecco la nostra, dal pavimento compilato fino all'URL pubblico. Dieci strati. Ognuno è la scelta noiosa e affidabile. Ognuno è un motivo per cui anche chi non scrive codice può rilasciare un prodotto vero.
01Le fondamenta
.NET 10 e C#: una base compilata e tipizzata.
Prostir usa .NET 10 e C# per contratti tipizzati, I/O asincrono, dependency injection, options, telemetria, HTTP hosting, servizi in background e source generation. Il linguaggio da solo non garantisce costi, prestazioni, consumo energetico o sicurezza della supply chain: questi risultati dipendono dal carico, dalle dipendenze, dal deployment e dalle operazioni.
02Il cloud
Azure: servizi gestiti con confini di deployment espliciti.
Prostir usa Azure Container Apps, Cosmos DB Serverless, Blob Storage, Monitor, managed identity e RBAC. Azure pubblica documenti di conformità e termini di disponibilità per i singoli servizi, ma questi non certificano automaticamente Prostir né creano un unico SLA di prodotto. Regioni e risorse sono definite dall'ambiente operativo. I dati Company e le proiezioni di consultazione Store usano account regionali Cosmos e pool di shard separati. I permessi del Tenant e del prodotto vengono verificati esplicitamente; una chiave grain non concede accesso. Un solo Gateway serve i domini dei prodotti. Company si gestisce nel WebApp principale e il suo MCP richiede OAuth e appartenenza attiva.
03Il ponte locale
Aspire: un AppHost e wiring di integrazione.
Prostir.AppHost compone Cosmos DB, Azure Storage, Orleans, API, Gateway, WebApp, Landing e SuperAdmin per flussi locali e test di integrazione. Questo aiuta a trovare differenze di configurazione; la readiness di produzione richiede comunque validazione del deployment, monitoraggio e controlli di release.
04Il runtime distribuito
Orleans: ogni agente ha un gemello digitale.
Ecco l'unica idea che rende semplice tutto il resto. Orleans dà a ogni agente un attore virtuale. Pensalo come un gemello digitale: una copia software di una cosa reale, un agente, un cliente, che tiene la propria memoria e fa il proprio lavoro in una stanza chiusa tutta sua, senza che nessun altro la tocchi. Quando tutto è un gemello, il lavoro smette di essere sui server e diventa oggetti che si parlano tra loro. Basta descrivere chi manda quale messaggio a chi: una persona a un gemello, un gemello a un altro gemello. È tutto qui il modello. È vecchio e collaudato. Erlang ha fatto funzionare le reti telefoniche così per decenni quasi senza interruzioni. Orleans si occupa delle parti difficili, come dove vive ogni gemello e come la sua memoria viene salvata e spostata tra le macchine. Così lo scaling non è mai un fragile trucco di cache. È un gemello sicuro e isolato per ogni cosa che conta. Orleans usa Azure Tables per stato, cluster e promemoria, e Azure Blob Storage per i job durabili. I dati di prodotto usano anche EF Core con Cosmos DB. Flow è un prodotto di automazione distinto: Orleans ne gestisce stato, esecuzioni e trigger; Elsa.Workflows.Core esegue il grafo all’interno del processo. I workflow dichiarativi di Agent Framework appartengono all’Agent.
05Il confine MCP
ManagedCode.MCPGateway: MCP remoto che scala.
ManagedCode.MCPGateway riunisce gli strumenti locali attivi e quelli selezionati dai server MCP esterni in un catalogo per la ricerca e l’esecuzione. Il protocollo è gestito dall’SDK ufficiale MCP per C#. Prostir.Gateway aggiunge instradamento per prodotto, OAuth, autorizzazione, permessi, quote e audit prima dell’esecuzione in Orleans. Una connessione esterna rende disponibili gli strumenti solo dopo il rilevamento e la selezione esplicita.
06Lo strato di conoscenza
ManagedCode.MarkdownLd.Kb: contesto delle fonti ricercabile.
ManagedCode.MarkdownLd.Kb trasforma le fonti supportate in artefatti Markdown-LD o JSON-LD e dati di grafo ricercabili. JsonSchema.Net valida gli argomenti degli strumenti MCP. Il recupero può restituire contesto collegato alle fonti quando l'indice lo supporta; qualità e citazioni dipendono comunque dalle fonti, dall'indicizzazione, dalla configurazione e dal modello.
07Il cervello IA
Un confine applicativo per i modelli configurati.
Microsoft.Extensions.AI fornisce IChatClient e Microsoft Agent Framework esegue Agents prompt e dichiarativi. Le route correnti usano Azure OpenAI, provider OpenAI-compatible o connessioni del creator. Disponibilità e cambio di modello dipendono da configurazione, capacità compatibili, credenziali e policy di prodotto.
08Il loop di sviluppo
Sviluppo assistito da agenti con regole visibili.
Prostir usa regole AGENTS.md, vertical slice, code review, controlli mirati, test di integrazione e gate di release. I coding agent aiutano con ricerca, implementazione e revisione, ma non sostituiscono ownership, giudizio umano o verifica.
Claude CodeOpenAI Codex09Il bordo prodotto
Blazor, Stripe and Rozetka Pay, Stateless, Jint: la superficie verso il creator.
I creatori gestiscono i prodotti in Blazor WebAssembly con MudBlazor; gli operatori usano una console Blazor Server. Quando il creatore attiva una macchina a stati, Stateless controlla le transizioni configurate. Jint esegue strumenti JavaScript con limiti di istruzioni, memoria, ricorsione e tempo, e accesso limitato a .NET 10. Stripe.net e l’integrazione HTTP di Rozetka Pay gestiscono pagamenti ai venditori, checkout e webhook; gli abbonamenti alla piattaforma usano Stripe. Le funzionalità disponibili dipendono da configurazione e permessi del prodotto.
10La parte statica
Landing Astro con metadata di discovery espliciti.
La pagina viene generata come HTML statico Astro. Canonical link, hreflang, dati strutturati, sitemap, IndexNow e llms.txt descrivono le route pubbliche previste. I controlli locali coprono HTML, crawlability, accessibilità e template Lighthouse; i motori di ricerca decidono crawl, indicizzazione e ranking.
Il risultato
Un endpoint MCP ospitato, osservabile e vendibile per ogni agente.
Gli strati si incontrano in un URL MCP legato allo slug di ogni Agent pubblicato. I client supportati possono collegarsi all'endpoint Streamable HTTP; accesso, fatturazione, conoscenza, strumenti, stato, memoria, audit e limiti restano capacità esplicite abilitate da configurazione ed entitlement.
Perché .NET 10
Tre stack validi, una scelta Prostir documentata.
Node.js, Python e .NET 10 possono ospitare server MCP. La tabella descrive le scelte implementative di Prostir, non una classifica universale di prestazioni, costo, energia o sicurezza.
| Capacità | Node.js / Express | Python / FastAPI | Prostir (.NET 10) |
|---|---|---|---|
| Runtime HTTP | Node.js runtime | Python ASGI runtime | ASP.NET Core |
| Stato distribuito per identità | Choose a state framework | Choose a state framework | Orleans virtual actors |
| Dependency injection, options e telemetria | Framework or library choice | Framework or library choice | Microsoft.Extensions.* |
| Astrazione 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 |
| Validazione degli schema degli strumenti | Library-selected validation | Library-selected validation | JsonSchema.Net |
| Modello dei contratti | TypeScript contracts | Python typing tools | C# + source generation |
| Composizione locale | Local process tooling | Local process tooling | dotnet watch + Aspire AppHost |
Le colonne Node.js e Python indicano scelte comuni, non limiti. La colonna Prostir è verificata nei package e project file correnti.
Perché Azure
Stesso backend MCP. Costruito per il cloud su cui gira.
Non è un listino, è una questione di adattamento. Ecco ciò di cui un backend MCP a pagamento e multi-cliente ha davvero bisogno, e dove ognuna di queste cose si colloca meglio su Azure. AWS è eccellente. Questo è semplicemente dove il prodotto si colloca.
| Cosa conta | Su AWS | Prostir su Azure |
|---|---|---|
| Evidenza di controlli e conformità | Service-specific controls and certifications | Azure service controls; Prostir deployment assessed separately |
| Termini di disponibilità | Per-service and per-region terms | No blanket Prostir SLA is claimed here |
| Collocazione regionale | Region configured per workload | Operator-provisioned regional resources |
| Rete e ingress | Optional global networking services | Configured Gateway and static-site routing |
| Route dei provider di modelli | Bedrock and partner model routes | Azure OpenAI, OpenAI-compatible, and creator BYOK routes |
| Accesso cliente | Cognito or custom identity | Prostir access and OAuth policy above the hosting layer |
| Runtime applicativo | Runtime selected by the company | .NET 10, Orleans, Aspire, and Managed Code libraries |
| Hosting della landing statica | S3 + CloudFront or Amplify | Azure Static Web Apps for this landing |
I cloud provider documentano le capacità dei propri servizi. Certificazione, SLA, regioni e controlli operativi di Prostir vanno verificati separatamente per l'ambiente effettivo.
Open source
L'open source che pubblichiamo, l'open source che usiamo.
Prostir è costruito da Managed Code sopra open source di Microsoft e della community. Ogni pacchetto qui sotto è reale, preso dai file del nostro progetto, non una lista dei desideri da marketing.
Pubblicato da Managed Code
Managed Code non è solo la firma nel footer. Il gateway MCP, la pipeline di conoscenza, lo storage e le integrazioni Orleans sotto la tuo agente pubblicato sono open source Managed Code che manteniamo e rilasciamo.
- Managed CodeIl company dietro Prostir. Apriamo le primitive backend che usiamo per primi.
- ManagedCode on GitHubMCPGateway, MarkdownLd.Kb, Storage, Communication, estensioni Orleans e altro.
- ManagedCode.MCPGatewayRicerca ed esecuzione degli strumenti locali attivi e degli strumenti MCP selezionati.
- ManagedCode.MarkdownLd.KbPipeline di conoscenza Markdown-LD / JSON-LD con ricerca a grafo.
- ManagedCode.Storage.AzureAstrazione di storage per file, memoria e artefatti di runtime su Azure Blob.
- ManagedCode.CommunicationContratti Result, Command e CollectionResult sui confini API e Orleans.
- ManagedCode.Orleans.IdentityGitHub · managedcode/Orleans.Identity
- ManagedCode.Orleans.RateLimitingGitHub · managedcode/Orleans.RateLimiting
La base .NET 10
Tutto quello che Microsoft ha portato in GA da .NET 10 in poi converge in .NET 10 e Aspire. È la tubatura noiosa e affidabile sotto ogni pagina di Prostir.
- .NET 10Runtime compilato, C# e generatori di codice.
- ASP.NET CoreHTTP, auth, OpenAPI, Minimal APIs, JsonPatch, hosted service.
- AspireOrchestrazione AppHost, default di servizio, risorse di deploy.
- Microsoft OrleansRuntime ad attori virtuali per .NET 10 distribuito: grain, persistenza, placement, stateless workers e telemetria dashboard.
- EF Core (Cosmos)Persistenza tipizzata e modello di query su Azure Cosmos DB.
- MudBlazorComponenti Material Design per il workspace del creator.
- C# / RoslynGitHub · dotnet/roslyn
- BlazorMicrosoft · Blazor
- AzureMicrosoft Learn · Azure
- OpenTelemetryOpenTelemetry
IA, MCP e le librerie sopra
Prostir usa Microsoft.Extensions.AI come confine chat e Microsoft Agent Framework per eseguire Agents. Il runtime usa anche l'SDK MCP C#, Jint, Stateless e integrazioni Stripe e Rozetka Pay per i percorsi supportati.
- Microsoft.Extensions.AIUna sola interfaccia per chat, embedding, chiamate a strumenti e telemetria.
- Microsoft Agent FrameworkMicrosoft Agent Framework per Agents prompt e dichiarativi.
- Model Context Protocol C# SDKL'SDK ufficiale in C# per server e client MCP.
- JintUn motore JavaScript dentro .NET 10. Esegue gli script degli strumenti che scrive il creator.
- StatelessMacchine a stati che decidono cosa l'agente può fare dopo.
- Stripe.netStripe.net — Il client Stripe and Rozetka Pay per accesso a pagamento, checkout e webhook.
- Rozetka Pay APIRozetka Pay — Il client Stripe and Rozetka Pay per accesso a pagamento, checkout e webhook.
- Elsa WorkflowsGitHub · elsa-workflows/elsa-core
- JsonSchema.NetGitHub · json-everything/json-everything
- PdfPigGitHub · UglyToad/PdfPig
- Open XML SDKGitHub · dotnet/Open-XML-SDK
Come è costruito e pubblicato questo sito
Prostir usa sviluppo assistito da agenti insieme a regole del repository, code review, controlli automatizzati e ownership umano. AGENTS.md rende visibile il contratto di delivery e Astro genera la pagina statica localizzata.
- Agent-assisted developmentAGENTS.md e i test di integrazione rendono prevedibile il loop di sviluppo assistito da agenti.
- Repository delivery rulesLo sviluppo assistito da agenti segue le stesse regole di repository e revisione delle altre modifiche.
- AstroLa landing statica e localizzata, fatta per i motori di ricerca e di risposta.
- TUnitTest unitari, di integrazione e nel browser su Microsoft.Testing.Platform con Aspire e Playwright.
- Microsoft.Testing.PlatformGitHub · microsoft/testfx
- PlaywrightGitHub · microsoft/playwright-dotnet
- LighthouseGitHub · GoogleChrome/lighthouse
- IndexNowIndexNow
- llms.txtllms.txt
- JSON-LDJSON-LD
FAQ tech
Le domande che i company fanno prima di costruire su questo stack.
Queste risposte collegano lo stack a decisioni vere di produzione: Orleans, Aspire, C#, MCP, fatturazione, accesso, conoscenza e visibilità operativa.
Che lavoro reale fa Orleans in Prostir?Orleans gestisce identità di runtime che vivono a lungo: agenti, sessioni, clienti, access grant, conversazioni di canale, wallet hold e workflow run. Ognuna ha un id stabile, stato e comportamento, invece di nascondere stato in un singleton, una cache o un processo in background.Leggi
Quando Orleans è meglio di una coda più una API CRUD?Quando hai molte entità piccole e quasi indipendenti che hanno bisogno di request-response, flussi start-monitor-complete o stato per identità. Microsoft cita user profiles, purchase orders, sessions, stocks e social pub/sub; Prostir applica lo stesso pattern ad agenti, sessioni cliente e workflow run.Leggi
Cos'è un grain in termini di prodotto?Un grain è un attore virtuale: un oggetto logico con identità, comportamento e stato persistente opzionale. In Prostir può essere un agente pubblicato, una conversazione cliente, un access grant o una workflow run.Leggi
Come aiuta Orleans con l'isolamento dei clienti?I dati Company e le proiezioni di consultazione Store usano account regionali Cosmos e pool di shard separati. I permessi del Tenant e del prodotto vengono verificati esplicitamente; una chiave grain non concede accesso. Un solo Gateway serve i domini dei prodotti. Company si gestisce nel WebApp principale e il suo MCP richiede OAuth e appartenenza attiva.Leggi
Quali sono i rischi principali di Orleans?I rischi sono grain troppo chiacchieroni, un coordinatore collo di bottiglia, chiamate sincrone bloccanti, messaggi enormi e stato condiviso nascosto. Prostir li tiene visibili con ownership verticale, chiamate async, stateless worker per fan-out e test di integrazione sul percorso reale Gateway/API/Orleans.Leggi
Cosa aggiunge Aspire rispetto a Docker Compose?Aspire compone progetti, dipendenze, individuazione dei servizi, controlli di integrità e telemetria per sviluppo locale e test di integrazione. Aspire.Hosting.Blazor serve l’applicazione WebAssembly locale. Bicep e le pipeline Azure DevOps gestiscono risorse e rilasci di produzione.Leggi
Come usa Prostir Aspire nei test?L'AppHost avvia le risorse richieste dai test di integrazione e browser, tra cui Cosmos DB, Azure Storage, Orleans, API, Gateway, Landing, WebApp e SuperAdmin. Questo esercita gli stessi confini di servizio; la produzione mantiene configurazione e controlli di release specifici del deployment.Leggi
Perché il runtime è in C# e .NET 10?Il runtime richiede contratti forti, async IO, dependency injection, options, telemetria, HTTP hosting, background worker, source generation e deployment prevedibile. .NET 10 offre tutto questo come infrastruttura first-party, non come pacchetti sparsi.Leggi
.NET 10 lega Prostir a un solo provider IA?No. Microsoft.Extensions.AI e `IChatClient` offrono un confine stabile per chat e tool. Il modello concreto arriva da una connessione Azure OpenAI, OpenAI-compatible o del creator che rispetta il contratto runtime.Leggi
Cosa rende difficile MCP in produzione?Il protocollo è solo l'ingresso. Un endpoint MCP remoto e a pagamento ha bisogno anche di OAuth, access grant, tenant check, tool schema, rate limit, quote, billing, audit trail, errori affidabili e un hot path che non legga tutto il database a ogni request.Leggi
Dove entra ManagedCode.MCPGateway?ManagedCode.MCPGateway riunisce gli strumenti locali attivi e quelli selezionati dai server MCP esterni in un catalogo per la ricerca e l’esecuzione. Il protocollo è gestito dall’SDK ufficiale MCP per C#. Prostir.Gateway aggiunge instradamento per prodotto, OAuth, autorizzazione, permessi, quote e audit prima dell’esecuzione in Orleans. Una connessione esterna rende disponibili gli strumenti solo dopo il rilevamento e la selezione esplicita.Leggi
Come l'accesso pagato diventa permesso di runtime?Checkout e webhook dei provider del venditore creano o revocano access grant. Gateway li controlla prima delle chiamate MCP protette, quindi lo stato del pagamento diventa un permesso di runtime, non un foglio di calcolo.Leggi
Come la knowledge layer evita il prompt stuffing?I file diventano artefatti Markdown-LD / JSON-LD e dati di grafo ricercabili. Il runtime recupera contesto limitato e collegato alle fonti quando l'indice lo supporta; la qualità dipende da fonti, indicizzazione, configurazione e modello.Leggi
Quali casi reali stanno bene su questo stack?Vanno bene agenti di conoscenza a pagamento, copiloti supporto con memoria cliente, process agent con state machine, agenti di canale per Telegram o web widget, skill passport vendibili e workflow che richiedono progresso, retry e audit.Leggi
Quando questo stack è troppo?Se ti serve solo un sito statico, una demo di prompt o un chatbot privato senza auth, tool, billing, state o customer memory, scegli qualcosa di più semplice. Prostir serve quando l'agente diventa un prodotto ospitato su cui altri fanno affidamento.Leggi
Prostir funziona tramite API o MCP?Per usare un Agent in Claude, ChatGPT e altri client compatibili, il percorso è il suo endpoint MCP remoto. Prostir usa anche API e webhooks per gestione web, pagamenti e integrazioni approvate. La piattaforma è ospitata su .NET e Azure; collegare un CRM, un database o un sistema privato dipende dal piano e può richiedere un ambito personalizzato.Leggi
Tech
Collega la tecnologia a un percorso di prodotto concreto.
Guide ed esempi mostrano dove contano conoscenza, strumenti, stato, memoria, fatturazione, accesso, quote e visibilità operativa. I casi cliente verificati restano una categoria separata.