Agent, Skill, Flow, Company e Store mantêm identidades e ciclos de vida distintos.
Tecnologia
Plataforma de IA cloud-native. Em .NET 10 empresarial, desde o primeiro dia.
A prompt é a parte fácil. Mais difícil é tratar identidade, estado, acesso, operações e um endpoint público estável. O Prostir constrói esses limites em .NET 10, Orleans, Aspire e Microsoft Agent Framework.
A landing estática publica rotas e metadados explícitos para cada locale não russo suportado.
Do runtime compilado e recursos cloud até à superfície pública estática.
Cada Agent publicado expõe o seu endpoint Streamable HTTP ligado ao slug.
O percurso
A sua ideia é uma prompt. Produção são dez camadas empresariais.
Qualquer demo de IA parece igual dentro do ChatGPT. A distância real está entre essa demo e um cliente que continua a pagar, e é aí que a maioria das equipas encalha. Por isso, aqui está a nossa, do chão compilado até ao URL público. Dez camadas. Cada uma é a escolha aborrecida e de confiança. Cada uma é uma razão para alguém sem código conseguir lançar um produto a sério.
01A Fundação
.NET 10 e C#: uma base compilada e tipada.
O Prostir usa .NET 10 e C# para contratos tipados, I/O assíncrono, dependency injection, options, telemetria, HTTP hosting, serviços em background e source generation. Estas capacidades servem um produto com APIs, proprietários de runtime duradouros, endpoints de protocolo e aplicações de browser. A linguagem, por si só, não garante custo, desempenho, consumo de energia nem segurança da cadeia de fornecimento; isso depende da carga, das dependências, do deployment e da operação.
02A Cloud
Azure: serviços geridos com limites de deployment explícitos.
O Prostir usa Azure Container Apps, Cosmos DB Serverless, Blob Storage, Monitor, managed identity e RBAC como primitivas cloud. A Azure publica documentação de conformidade e condições de disponibilidade por serviço, mas isso não certifica automaticamente o Prostir nem cria um SLA geral do produto. As regiões e os recursos são aprovisionados pelo ambiente operacional, não escolhidos por quem visita esta página. Os dados de Company e as projeções de consulta de Store usam contas regionais de Cosmos e conjuntos de shards separados. As permissões do Tenant e do produto são verificadas explicitamente; uma chave de grain não concede acesso. Um único Gateway serve os domínios dos produtos. A gestão de Company fica no WebApp principal e o MCP exige OAuth e participação ativa.
03A Ponte Local
Aspire: um AppHost e wiring de integração.
O Prostir.AppHost compõe Cosmos DB, Azure Storage, Orleans, API, Gateway, WebApp, Landing e SuperAdmin para fluxos locais e testes de integração automatizados. O harness de testes é dono dessas dependências e percorre limites reais quando o cenário o exige. Isto ajuda a encontrar diferenças de configuração, mas a prontidão de produção ainda exige validação do deployment, monitorização e verificações de release.
04O Runtime Distribuído
Orleans: proprietários duradouros do estado.
O Microsoft Orleans dá ao Prostir atores virtuais ligados a uma identidade para Agents, sessões, access grants, workflow runs e outro estado duradouro. Cada grain possui uma responsabilidade limitada e coordena o próprio estado em vez de depender de memória partilhada do processo. O Orleans fornece activation, placement, integrações de persistência, reminders e mensagens; o Prostir continua a definir autorização, limites de produto, falhas e política operacional. O Orleans usa Azure Tables para estado, dados do cluster e lembretes, e Azure Blob Storage para tarefas duráveis. Os dados de produto também usam EF Core com Cosmos DB. Flow é um produto de automação separado: Orleans gere o estado, as execuções e os disparadores; Elsa.Workflows.Core executa o grafo dentro do processo. Os workflows declarativos do Agent Framework pertencem ao Agent.
05A Fronteira MCP
ManagedCode.MCPGateway: MCP remoto que escala.
O ManagedCode.MCPGateway reúne ferramentas locais ativas e ferramentas selecionadas de servidores MCP externos num catálogo para pesquisa e execução. O SDK oficial de MCP para C# trata do protocolo. O Prostir.Gateway acrescenta encaminhamento por produto, OAuth, autorização, permissões, quotas e auditoria antes da execução em Orleans. Uma ligação externa só disponibiliza ferramentas depois da descoberta e seleção explícita.
06A Camada de Conhecimento
ManagedCode.MarkdownLd.Kb: contexto pesquisável das fontes.
O ManagedCode.MarkdownLd.Kb transforma fontes suportadas em artefactos Markdown-LD ou JSON-LD e dados de grafo pesquisáveis. O ManagedCode.Storage possui a fronteira dos ficheiros e o JsonSchema.Net valida argumentos das ferramentas MCP contra o schema declarado. A pesquisa pode devolver contexto ligado à fonte quando o material indexado o permite; a qualidade das respostas e citações continua a depender das fontes, indexação, configuração e modelo.
07O Cérebro de IA
Uma fronteira de aplicação para modelos configurados.
O Microsoft.Extensions.AI fornece a abstração IChatClient usada pelo Prostir, e o Microsoft Agent Framework executa Agents prompt e declarativos. As rotas atuais usam Azure OpenAI, fornecedores OpenAI-compatible ou ligações do criador expostas por essa fronteira. Disponibilidade e troca de modelo dependem da configuração, das capacidades compatíveis, das credenciais e da política do produto.
08O Ciclo de Desenvolvimento
Entrega assistida por agentes com regras de engenharia visíveis.
O Prostir usa regras AGENTS.md do repositório, fatias verticais, code review, verificações focadas, testes de integração e gates de release. Os coding agents ajudam na investigação, implementação e revisão, mas não substituem o ownership de produto, o critério humano nem a verificação de cada alteração.
Claude CodeOpenAI Codex09A Borda do Produto
Blazor, Stripe and Rozetka Pay, Stateless, Jint: a superfície virada ao criador.
Os criadores gerem produtos em Blazor WebAssembly com MudBlazor; os operadores usam uma consola Blazor Server. Quando o criador ativa uma máquina de estados, o Stateless controla as transições configuradas. O Jint executa ferramentas JavaScript com limites de instruções, memória, recursão e tempo, e acesso restrito ao .NET 10. Stripe.net e a integração HTTP do Rozetka Pay suportam pagamentos aos vendedores, checkout e webhooks; as subscrições da plataforma usam Stripe. As funcionalidades disponíveis dependem da configuração e das permissões do produto.
10A Story Estática
Landing Astro com metadados de descoberta explícitos.
A página que está a ler é gerada como HTML estático pelo Astro. Canonical links, hreflang localizado, dados estruturados, sitemap, suporte IndexNow e llms.txt descrevem as rotas públicas pretendidas para máquinas. As verificações locais cobrem HTML, crawlability, acessibilidade e templates Lighthouse; os motores de busca decidem crawl, indexação e ranking.
O Resultado
Um endpoint MCP por agente, alojado, observável e vendável.
As camadas encontram-se num URL MCP ligado ao slug de cada Agent publicado. Clientes compatíveis ligam-se a esse endpoint Streamable HTTP, enquanto acesso, faturação, conhecimento, ferramentas, estado, memória, auditoria e limites permanecem capacidades explícitas ativadas pela configuração e pelos entitlements do Agent. O runtime usa ASP.NET Core, Aspire, Orleans, ManagedCode.MCPGateway e Microsoft.Extensions.AI.
Porquê .NET 10
Três stacks válidos e uma escolha documentada do Prostir.
Node.js, Python e .NET 10 podem alojar servidores MCP. A tabela descreve as escolhas de implementação do Prostir; não é um ranking universal de desempenho, custo, energia ou segurança.
| Capacidade | Node.js / Express | Python / FastAPI | Prostir (.NET 10) |
|---|---|---|---|
| Runtime HTTP | Node.js runtime | Python ASGI runtime | ASP.NET Core |
| Estado distribuído por identidade | 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.* |
| Abstração de 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 |
| Validação de schemas de ferramentas | Library-selected validation | Library-selected validation | JsonSchema.Net |
| Modelo de contratos | TypeScript contracts | Python typing tools | C# + source generation |
| Composição local | Local process tooling | Local process tooling | dotnet watch + Aspire AppHost |
As colunas Node.js e Python indicam escolhas comuns, não limitações. A coluna Prostir foi verificada nos package e project files atuais.
Porquê Azure
Mesmo backend MCP. Feito para a cloud onde corre.
Não é uma folha de preços, é de adequação. É aquilo de que um backend MCP pago e multi-cliente precisa mesmo, e onde cada coisa assenta melhor na Azure. A AWS é excelente. Isto é, simplesmente, onde o produto assenta.
| O que importa | Na AWS | Prostir na Azure |
|---|---|---|
| Evidência de controlos e conformidade | Service-specific controls and certifications | Azure service controls; Prostir deployment assessed separately |
| Condições de disponibilidade | Per-service and per-region terms | No blanket Prostir SLA is claimed here |
| Colocação regional | Region configured per workload | Operator-provisioned regional resources |
| Rede e ingress | Optional global networking services | Configured Gateway and static-site routing |
| Rotas de fornecedores de modelos | Bedrock and partner model routes | Azure OpenAI, OpenAI-compatible, and creator BYOK routes |
| Acesso de clientes | Cognito or custom identity | Prostir access and OAuth policy above the hosting layer |
| Runtime da aplicação | Runtime selected by the company | .NET 10, Orleans, Aspire, and Managed Code libraries |
| Hosting da landing estática | S3 + CloudFront or Amplify | Azure Static Web Apps for this landing |
Os fornecedores cloud documentam as capacidades dos seus serviços. Certificação, SLA, regiões de deployment e controlos operacionais do Prostir devem ser verificados separadamente para o ambiente real.
Open source
O open source que entregamos. O open source que usamos.
O Prostir é construído pela Managed Code sobre open source da Microsoft e da comunidade. Cada pacote em baixo é real, dos ficheiros do nosso projeto, não uma lista de desejos de marketing.
Feito pela Managed Code
Managed Code não é só o crédito do rodapé. O gateway MCP, o pipeline de conhecimento, o storage e as integrações Orleans por baixo da seu agente publicado são open source da Managed Code que mantemos e entregamos.
- Managed CodeA equipa por trás do Prostir. Abrimos os primitivos de backend que nós próprios usamos.
- ManagedCode on GitHubMCPGateway, MarkdownLd.Kb, Storage, Communication, extensões Orleans e mais.
- ManagedCode.MCPGatewayPesquisa e execução de ferramentas locais ativas e ferramentas MCP selecionadas.
- ManagedCode.MarkdownLd.KbPipeline de conhecimento Markdown-LD / JSON-LD com pesquisa por grafo.
- ManagedCode.Storage.AzureAbstração de storage para ficheiros, memória e artefactos de runtime em Azure Blob.
- ManagedCode.CommunicationContratos Result, Command e CollectionResult nas fronteiras de API e Orleans.
- ManagedCode.Orleans.IdentityGitHub · managedcode/Orleans.Identity
- ManagedCode.Orleans.RateLimitingGitHub · managedcode/Orleans.RateLimiting
A fundação .NET 10
Tudo o que a Microsoft tem levado a GA desde o .NET 10 juntou-se em .NET 10 e Aspire. É a canalização aborrecida e de confiança por baixo de cada página do Prostir.
- .NET 10Runtime compilado, C# e source generators.
- ASP.NET CoreHTTP, autenticação, OpenAPI, Minimal APIs, JsonPatch e hosted services.
- AspireOrquestração do AppHost, service defaults e recursos de deployment.
- Microsoft OrleansRuntime de atores virtuais para .NET 10 distribuído: grains, persistência, placement, stateless workers e telemetria de dashboard.
- EF Core (Cosmos)Persistência tipada e modelo de query sobre Azure Cosmos DB.
- MudBlazorComponentes Material Design para o workspace do criador.
- C# / RoslynGitHub · dotnet/roslyn
- BlazorMicrosoft · Blazor
- AzureMicrosoft Learn · Azure
- OpenTelemetryOpenTelemetry
IA, MCP e as bibliotecas por cima
O Prostir usa Microsoft.Extensions.AI como fronteira de chat e Microsoft Agent Framework para executar Agents. O runtime também usa o SDK MCP oficial para C#, Jint para ferramentas JavaScript limitadas, Stateless para máquinas de estados e integrações Stripe e Rozetka Pay para fluxos de pagamento suportados.
- Microsoft.Extensions.AIUma única interface para chat, embeddings, chamadas a ferramentas e telemetria.
- Microsoft Agent FrameworkMicrosoft Agent Framework para Agents prompt e declarativos.
- Model Context Protocol C# SDKO SDK oficial em C# para servidores e clientes MCP.
- JintUm motor de JavaScript dentro do .NET 10. Corre os scripts de ferramenta que o criador escreve.
- StatelessMáquinas de estados que decidem o que o agente pode fazer a seguir.
- Stripe.netStripe.net — O cliente Stripe and Rozetka Pay para acesso pago, checkout e webhooks.
- Rozetka Pay APIRozetka Pay — O cliente Stripe and Rozetka Pay para acesso pago, checkout e webhooks.
- Elsa WorkflowsGitHub · elsa-workflows/elsa-core
- JsonSchema.NetGitHub · json-everything/json-everything
- PdfPigGitHub · UglyToad/PdfPig
- Open XML SDKGitHub · dotnet/Open-XML-SDK
Como este site é construído e publicado
O Prostir usa desenvolvimento assistido por agentes com regras do repositório, code review, verificações automatizadas e ownership humano. O AGENTS.md mantém o contrato de entrega visível e o Astro gera a página estática e localizada que está a ler.
- Agent-assisted developmentO AGENTS.md e os testes de integração mantêm previsível o ciclo de construção assistido por agentes.
- Repository delivery rulesO desenvolvimento assistido por agentes segue as mesmas regras do repositório e de revisão que as outras alterações.
- AstroA landing estática e localizada, feita para motores de busca e de resposta.
- TUnitTestes unitários, de integração e de navegador sobre Microsoft.Testing.Platform com Aspire e Playwright.
- Microsoft.Testing.PlatformGitHub · microsoft/testfx
- PlaywrightGitHub · microsoft/playwright-dotnet
- LighthouseGitHub · GoogleChrome/lighthouse
- IndexNowIndexNow
- llms.txtllms.txt
- JSON-LDJSON-LD
FAQ técnica
Perguntas que as equipas fazem antes de construir neste stack.
Estas respostas ligam o stack a decisões reais de produção: Orleans, Aspire, C#, MCP, faturação, acesso, conhecimento e visibilidade operacional.
Que trabalho real o Orleans faz no Prostir?O Orleans gere identidades de runtime que vivem muito tempo: agentes, sessões, clientes, access grants, conversas de canais, reservas de wallet e execuções de workflow. Cada uma tem id estável, estado e comportamento, em vez de esconder estado num singleton, cache ou processo de fundo.Ler
Quando o Orleans é melhor que uma fila mais uma API CRUD?Quando há muitas entidades pequenas e quase independentes que precisam de request-response, fluxos start-monitor-complete ou estado por identidade. A Microsoft cita user profiles, purchase orders, sessions, stocks e social pub/sub; o Prostir aplica o padrão a agentes, sessões de cliente e workflow runs.Ler
O que é um grain em termos de produto?Um grain é um ator virtual: um objeto lógico com identidade, comportamento e estado persistente opcional. No Prostir pode ser um agente publicado, uma conversa de cliente, um access grant ou uma execução de workflow.Ler
Como o Orleans ajuda no isolamento entre clientes?Os dados de Company e as projeções de consulta de Store usam contas regionais de Cosmos e conjuntos de shards separados. As permissões do Tenant e do produto são verificadas explicitamente; uma chave de grain não concede acesso. Um único Gateway serve os domínios dos produtos. A gestão de Company fica no WebApp principal e o MCP exige OAuth e participação ativa.Ler
Quais são os principais riscos do Orleans?Os riscos são grains demasiado faladores, um coordenador que vira gargalo, chamadas síncronas bloqueantes, mensagens grandes e estado partilhado escondido. O Prostir controla isso com ownership vertical, chamadas async, stateless workers para fan-out e testes de integração pelo caminho real Gateway/API/Orleans.Ler
O que o Aspire acrescenta além do Docker Compose?O Aspire compõe projetos, dependências, descoberta de serviços, verificações de saúde e telemetria para desenvolvimento local e testes de integração. Aspire.Hosting.Blazor serve a aplicação WebAssembly local. Bicep e os pipelines de Azure DevOps gerem os recursos e as entregas em produção.Ler
Como o Prostir usa Aspire nos testes?O AppHost inicia os recursos necessários aos testes de integração e browser, incluindo Cosmos DB, Azure Storage, Orleans, API, Gateway, Landing, WebApp e SuperAdmin. Isto exercita os mesmos limites de serviço; produção mantém configuração e controlos de release próprios do deployment.Ler
Por que o runtime é em C# e .NET 10?O runtime precisa de contratos fortes, async IO, dependency injection, options, telemetria, HTTP hosting, background workers, source generation e deployments previsíveis. O .NET 10 entrega isso como infraestrutura first-party, não como pacotes soltos.Ler
O .NET 10 prende o Prostir a um só provider de IA?Não. Microsoft.Extensions.AI e `IChatClient` dão uma fronteira estável para chat e tools. O modelo concreto vem de uma ligação Azure OpenAI, OpenAI-compatible ou do creator que cumpra o contrato de runtime.Ler
O que torna MCP difícil em produção?O protocolo é só a entrada. Um endpoint MCP remoto e pago também precisa de OAuth, access grants, tenant checks, tool schemas, rate limits, quotas, faturação, auditoria, erros confiáveis e um hot path que não leia a base de dados inteira a cada request.Ler
Onde entra o ManagedCode.MCPGateway?O ManagedCode.MCPGateway reúne ferramentas locais ativas e ferramentas selecionadas de servidores MCP externos num catálogo para pesquisa e execução. O SDK oficial de MCP para C# trata do protocolo. O Prostir.Gateway acrescenta encaminhamento por produto, OAuth, autorização, permissões, quotas e auditoria antes da execução em Orleans. Uma ligação externa só disponibiliza ferramentas depois da descoberta e seleção explícita.Ler
Como o acesso pago vira permissão de runtime?Checkout e webhooks dos providers do vendedor criam ou revogam access grants. O Gateway verifica esses grants antes de chamadas MCP protegidas, então o estado de pagamento vira permissão de runtime, não uma folha de cálculo.Ler
Como a camada de conhecimento evita prompt stuffing?Os ficheiros viram artefactos Markdown-LD / JSON-LD e dados de grafo pesquisáveis. O runtime recupera contexto limitado e ligado à fonte quando o índice o suporta; a qualidade depende das fontes, indexação, configuração e modelo.Ler
Que casos reais encaixam neste stack?Encaixam agentes de conhecimento pagos, copilotos de suporte com memória de cliente, process agents com state machines, agentes de canal para Telegram ou web widgets, skill passports vendáveis e workflows que precisam de progresso, retries e audit.Ler
Quando este stack é demais?Se só precisa de um site estático, uma demo de prompt ou um chatbot privado sem auth, tools, billing, state nem customer memory, use algo mais simples. O Prostir existe quando o agente vira um produto hospedado de que outras pessoas dependem.Ler
O Prostir funciona por API ou por MCP?Para usar um Agent no Claude, ChatGPT e noutros clientes compatíveis, a entrega acontece pelo endpoint MCP remoto. O Prostir também usa APIs e webhooks para gestão no browser, pagamentos e integrações aprovadas. A plataforma corre na cloud com .NET e Azure; ligar um CRM, base de dados ou sistema privado depende do plano e pode exigir um âmbito personalizado.Ler
Tecnologia
Ligue a tecnologia a um percurso de produto concreto.
Os guias e exemplos mostram onde entram conhecimento, ferramentas, estado, memória, faturação, acesso, quotas e visibilidade operacional. Casos de clientes verificados continuam a ser uma categoria de evidência separada.