Agent、Skill、Flow、Company、Storeは、それぞれ固有のidentityとライフサイクルを持ちます。
技術
業務運用を前提に、最初から.NET 10で構築したクラウドネイティブAIプラットフォーム。
プロンプトは簡単な部分です。難しいのは、identity、state、アクセス、運用、安定した公開endpointです。Prostirは.NET 10、Orleans、Aspire、Microsoft Agent Frameworkでその境界を作ります。
静的Landingは、対応する各言語に専用routeとmetadataを公開します。
コンパイル済みruntimeとcloud resourcesから、公開される静的画面までを分けています。
公開された各Agentは、slugに結び付いた専用のStreamable HTTP endpointを持ちます。
アイデアから運用まで
アイデアは一つのプロンプトから始められます。 製品として運用するには十の層が必要です。
AIデモだけでは、利用者がログインし、料金を支払い、継続して使うために必要な要素までは見えません。ここでは、コンパイル済みコードから公開URLまで、Prostirの構成を十の責務に分けて説明します。
01基盤
.NET 10とC#: コンパイルと強い型付け。
Prostirは.NET 10とC#を使い、型付きcontract、非同期I/O、dependency injection、options、telemetry、HTTP hosting、background services、source generationを構成します。言語だけでコスト、性能、消費電力、supply-chainの安全性が決まるわけではなく、workload、dependencies、deployment、運用に左右されます。
02クラウド
Azure: deployment境界を明示したmanaged services。
ProstirはAzure Container Apps、Cosmos DB Serverless、Blob Storage、Monitor、managed identity、RBACをクラウドの構成要素として使います。Azureの各serviceには個別の条件とcontrolがありますが、それだけでProstirが認証されるわけではなく、包括的なProstir SLAも生まれません。regionとresourceは実際の運用環境で決まります。 CompanyデータとStoreの検索用データは、別々のリージョン別Cosmosアカウントとシャードプールを使います。Tenantと製品の権限を明示的に確認するため、grainのキーだけではアクセスできません。単一のGatewayデプロイが製品ドメインを処理します。Companyの管理画面はProstirにあり、Company MCPにはOAuthと有効なメンバー資格が必要です。
03ローカル統合
Aspire: integrationを組み立てる一つのAppHost。
Prostir.AppHostはCosmos DB、Azure Storage、Orleans、API、Gateway、作成者向け画面、Landing、SuperAdminをローカルおよび自動integration flow向けに構成します。設定差分を見つけやすくしますが、本番準備にはdeployment固有の検証、monitoring、release checksが別途必要です。
04分散runtime
Orleans: statefulな処理に明確なownerを置く。
Microsoft Orleansは、Agents、sessions、access grants、workflow runsなど長期間残るstateにidentity-keyed virtual actorsを与えます。各grainは限定された責務を所有します。Orleansはactivation、placement、persistence integration、reminders、messagingを担い、authorization、製品境界、障害処理はProstirが定義します。 Orleansの状態、クラスタ情報、リマインダーはAzure Tablesに、永続ジョブはAzure Blob Storageに保存します。製品データにはEF CoreとCosmos DBも使います。Flowは独立した自動化製品で、状態・実行・トリガーをOrleansが管理し、非公開の実行カーネルがプロセス内部でFlowブロックを実行します。Agent Frameworkの宣言型ワークフローはAgentに属します。
05MCP境界
ManagedCode.MCPGateway: 製品制御を備えたremote MCP。
ManagedCode.MCPGatewayは、有効なローカルツールと外部MCPサーバーで選択したツールを、検索・実行できるカタログにまとめます。プロトコル処理は公式MCP C# SDKが担当します。Prostir.GatewayはOrleansでの実行前に製品ルーティング、OAuth、認可、利用権限、上限、監査を適用します。外部接続のツールは、検出して明示的に選択してから利用できます。
06ナレッジ層
ManagedCode.MarkdownLd.Kb: 検索できるsource context。
ManagedCode.MarkdownLd.Kbは対応sourceをMarkdown-LDまたはJSON-LD artifactと検索可能なgraph dataに変換します。ManagedCode.Storageがfile boundaryを所有し、JsonSchema.NetがMCP toolのargumentを検証します。Indexが対応するときはsource-linked contextを取得できますが、品質と引用はsource、indexing、configuration、modelに依存します。
07AI層
設定済みmodelのための一つのapplication boundary。
Microsoft.Extensions.AIがIChatClient boundaryを提供し、Microsoft Agent Frameworkがprompt-basedおよびdeclarative Agentsを実行します。現在の接続はAzure OpenAI、OpenAI-compatible connection、creator-owned connectionです。利用可否と切り替えはconfiguration、model capability、credentials、product policyに依存します。
08開発ループ
ルールを明示したAgent支援開発。
Prostirはrepository管理のAGENTS.md rules、vertical slices、code review、focused checks、integration tests、release gatesを使います。Coding agentsは調査、実装、reviewを支援しますが、product ownership、人の判断、検証の代わりにはなりません。
Claude CodeOpenAI Codex09製品画面
Blazor、決済、Stateless、Jint。
作成者はMudBlazorを使ったBlazor WebAssemblyで製品を管理し、運用担当者はBlazor Serverの管理画面を使います。作成者がステートマシンを有効にすると、Statelessが設定された状態遷移を制御します。Jintは命令数、メモリ、再帰、実行時間に上限を設け、.NET 10へのアクセスを制限してJavaScriptツールを実行します。Stripe.netとRozetka PayのHTTP連携が販売者への支払い、購入手続き、Webhookを支え、プラットフォームの契約にはStripeを使います。利用できる機能は製品設定と権限によって決まります。
10静的公開面
明示的なdiscovery metadataを持つAstro。
ページは静的Astro HTMLとして生成されます。Canonical、hreflang、structured data、sitemap、IndexNow、llms.txtが公開予定routeを記述します。ローカルcheckはHTML、crawlability、accessibility、Lighthouse templateを対象にし、crawl、indexing、rankingは検索エンジンが判断します。
結果
公開Agentごとに一つの、hostedかつ観測可能なMCP endpoint。
各層は、公開Agentのslugに結び付いたMCP URLに集約されます。対応clientはStreamable HTTPで接続し、アクセス、課金、ナレッジ、tools、state、memory、audit、limitは明示的に設定される機能として残ります。
.NET 10を選ぶ理由
三つの実用的なstackと、文書化されたProstirの選択。
Node.js、Python、.NET 10はいずれもMCP serverをhostできます。この表はProstirが実際に採用する実装を示すもので、性能、コスト、電力、安全性の普遍的な順位ではありません。
| 項目 | Node.js / Express | Python / FastAPI | Prostir (.NET 10) |
|---|---|---|---|
| HTTP runtime | Node.js runtime | Python ASGI runtime | ASP.NET Core |
| identity単位の分散state | Choose a state framework | Choose a state framework | Orleans virtual actors |
| Dependency injection、options、telemetry | Framework or library choice | Framework or library choice | Microsoft.Extensions.* |
| AI abstraction | Provider libraries or abstraction | Provider libraries or abstraction | Microsoft.Extensions.AI + Agent Framework |
| MCP SDK | Official MCP TypeScript SDK | Official MCP Python SDK | Official MCP C# SDK |
| tool schema validation | Library-selected validation | Library-selected validation | JsonSchema.Net |
| contract model | TypeScript contracts | Python typing tools | C# + source generation |
| ローカル構成 | Local process tooling | Local process tooling | dotnet watch + Aspire AppHost |
Node.jsとPythonの列は一般的な選択肢であり、制約を示すものではありません。Prostirの列は現在のrepositoryにあるpackageとproject fileに基づきます。
Azureを選ぶ理由
同じMCP backendを、明確なcloud boundaryで運用する。
この比較はcloud providerのservice capabilityと、個別のProstir deploymentにおけるconfigurationおよび責任を分けて示します。
| 確認項目 | AWSの場合 | Azure上のProstir |
|---|---|---|
| Complianceとcontrolの資料 | Service-specific controls and certifications | Azure service controls; Prostir deployment assessed separately |
| Availabilityの条件 | Per-service and per-region terms | No blanket Prostir SLA is claimed here |
| Regional placement | Region configured per workload | Operator-provisioned regional resources |
| Networkとingress | Optional global networking services | Configured Gateway and static-site routing |
| Model providerへのroute | Bedrock and partner model routes | Azure OpenAI, OpenAI-compatible, and creator BYOK routes |
| 顧客アクセス | Cognito or custom identity | Prostir access and OAuth policy above the hosting layer |
| Application runtime | Runtime selected by the company | .NET 10, Orleans, Aspire, and Managed Code libraries |
| 静的Landingのhosting | S3 + CloudFront or Amplify | Azure Static Web Apps for this landing |
Cloud providerは各serviceの機能を文書化します。Prostirの認証、SLA、deployment region、運用controlは、実際の環境ごとに別途確認する必要があります。
オープンソース
私たちが公開するものと、利用しているオープンソース。
Managed CodeはMicrosoftとcommunityのオープンソースを基盤にProstirを構築しています。以下はmarketing上の候補ではなく、実際のproject fileに含まれるpackageです。
Managed Codeが構築
公開Agentの下で動くMCP gateway、knowledge pipeline、storage、Orleans integrationは、Managed Codeが保守し公開しているcomponentsです。
- Managed CodeProstirを開発し、自ら使うbackend componentsを公開するcompany。
- ManagedCode on GitHubMCPGateway、MarkdownLd.Kb、Storage、Communication、Orleans extensionsなど。
- ManagedCode.MCPGateway有効なローカルツールと選択したMCPツールを検索・実行。
- ManagedCode.MarkdownLd.KbGraph searchを備えたMarkdown-LDとJSON-LDのknowledge pipeline。
- ManagedCode.Storage.AzureAzure Blob上のfiles、memory、runtime artifacts向けstorage abstraction。
- ManagedCode.CommunicationAPIとOrleansの境界で使うResult、Command、CollectionResult contracts。
- ManagedCode.Orleans.IdentityGitHub · managedcode/Orleans.Identity
- ManagedCode.Orleans.RateLimitingGitHub · managedcode/Orleans.RateLimiting
.NET 10基盤
.NET 10、ASP.NET Core、Aspireが、Prostirで使う型付きcontract、hosting、telemetry、resource compositionを提供します。
- .NET 10コンパイル済みruntime、C#、source generators。
- ASP.NET CoreHTTP、auth、OpenAPI、Minimal APIs、JsonPatch、hosted services。
- AspireAppHost orchestration、service defaults、deployment resources。
- Microsoft OrleansGrains、persistence、placement、stateless workers、dashboard telemetryを備えたvirtual actor runtime。
- EF Core (Cosmos)Azure Cosmos DB上の型付きpersistenceとquery model。
- MudBlazorCreator workspace向けMaterial Design components。
- C# / RoslynGitHub · dotnet/roslyn
- BlazorMicrosoft · Blazor
- AzureMicrosoft Learn · Azure
- OpenTelemetryOpenTelemetry
AI、MCP、その上のlibraries
ProstirはIChatClient boundaryにMicrosoft.Extensions.AI、Agent実行にMicrosoft Agent Frameworkを使い、MCP C# SDK、Jint、Stateless、対応する決済integrationを組み合わせます。
- Microsoft.Extensions.AIChat、embeddings、tool calls、telemetryの共通interface。
- Microsoft Agent FrameworkPrompt-basedおよびdeclarative Agents向けMicrosoft Agent Framework。
- Model Context Protocol C# SDKMCP serverとclient向けの公式C# SDK。
- JintCreatorが作る範囲限定tools scriptを動かす.NET 10内のJavaScript engine。
- StatelessAgentが次に実行できる処理をモデル化するstate machines。
- Stripe.netStripe.net — 有料アクセス、checkout、webhooks向けの決済client。
- Rozetka Pay APIRozetka Pay — 有料アクセス、checkout、webhooks向けの決済client。
- Elsa WorkflowsGitHub · elsa-workflows/elsa-core
- JsonSchema.NetGitHub · json-everything/json-everything
- PdfPigGitHub · UglyToad/PdfPig
- Open XML SDKGitHub · dotnet/Open-XML-SDK
このサイトの開発と公開
ProstirはAgent支援開発にrepository rules、code review、自動checks、人によるownershipを組み合わせます。AGENTS.mdがdelivery contractを明示し、Astroがこの静的なローカライズページを生成します。
- Agent-assisted developmentAGENTS.mdとintegration testsが開発ループを予測可能にします。
- Repository delivery rulesAgent支援開発にも他の変更と同じrepository rulesとreviewが適用されます。
- Astro検索エンジンと回答エンジン向けの静的ローカライズLanding。
- TUnitMicrosoft.Testing.Platform 上の単体・統合・ブラウザテスト。Aspire と Playwright に対応。
- Microsoft.Testing.PlatformGitHub · microsoft/testfx
- PlaywrightGitHub · microsoft/playwright-dotnet
- LighthouseGitHub · GoogleChrome/lighthouse
- IndexNowIndexNow
- llms.txtllms.txt
- JSON-LDJSON-LD
技術FAQ
このスタックで作る前にチームが確認すること。
Orleans、Aspire、C#、MCP、課金、アクセス、ナレッジ、運用可視性を、実際のproduction判断に結びつけた答えです。
ProstirでOrleansは実際に何を担当しますか?Orleansは、agent、session、customer、access grant、channel conversation、wallet hold、workflow runのような長く生きるruntime identityを持ちます。それぞれが安定したid、state、behaviorを持ち、singletonやcacheやbackground processにstateを隠しません。読む
QueueとCRUD APIよりOrleansが合うのはいつですか?小さく独立したentityが大量にあり、request-response、start-monitor-complete flow、identityごとのstateが必要なときです。Microsoftはuser profiles、purchase orders、sessions、stocks、social pub/subを例に出していて、Prostirではagent、customer session、workflow runに同じ型を使います。読む
Productの言葉でgrainとは何ですか?Grainはvirtual actorです。identity、behavior、必要ならpersistent stateを持つ論理オブジェクトです。Prostirでは、公開済みagent、customer conversation、access grant、workflow runがその単位になります。読む
Orleansはtenant isolationにどう効きますか?CompanyデータとStoreの検索用データは、別々のリージョン別Cosmosアカウントとシャードプールを使います。Tenantと製品の権限を明示的に確認するため、grainのキーだけではアクセスできません。単一のGatewayデプロイが製品ドメインを処理します。Companyの管理画面はProstirにあり、Company MCPにはOAuthと有効なメンバー資格が必要です。読む
Orleansで危ないパターンは何ですか?危ないのは、chatty grains、単一のbottleneck coordinator、blocking sync calls、大きすぎるmessages、隠れたshared stateです。Prostirはvertical ownership、async grain calls、fan-out用stateless workers、実Gateway/API/Orleans経路のintegration testsで見える状態にします。読む
AspireはDocker Compose以上に何を足しますか?Aspireはローカル開発と統合テスト向けに、プロジェクト、依存関係、サービス検出、稼働確認、テレメトリをまとめます。ローカルのWebAssemblyアプリは公式のAspire.Hosting.Blazorで配信します。本番のAzureリソースとリリースはBicepとAzure DevOpsパイプラインが管理します。読む
ProstirはテストでAspireをどう使いますか?AppHostはintegration/browser testsに必要なCosmos DB、Azure Storage、Orleans、API、Gateway、Landing、作成者向け画面、SuperAdminを起動します。同じservice boundaryを検証しますが、productionにはdeployment固有の設定とrelease checksがあります。読む
なぜruntimeはC#と.NET 10ですか?Runtimeにはstrong contracts、async IO、dependency injection、options、telemetry、HTTP hosting、background workers、source generation、予測できるdeploymentが必要です。.NET 10はそれをfirst-party infrastructureとして持っています。読む
.NET 10だとAI providerが固定されますか?いいえ。Microsoft.Extensions.AIと`IChatClient`が安定したchat/tool boundaryを作ります。具体的なmodelは、runtime contractを満たす設定済みAzure OpenAI、OpenAI-compatible、またはcreator-owned connectionから選ばれます。読む
ProductionのMCPは何が難しいですか?Protocolは入口だけです。有料remote MCP endpointには、OAuth、access grants、tenant checks、tool schemas、rate limits、quotas、billing、audit trails、信頼できるerrors、毎requestで全DBを読まないhot pathが必要です。読む
ManagedCode.MCPGatewayはどこに入りますか?ManagedCode.MCPGatewayは、有効なローカルツールと外部MCPサーバーで選択したツールを、検索・実行できるカタログにまとめます。プロトコル処理は公式MCP C# SDKが担当します。Prostir.GatewayはOrleansでの実行前に製品ルーティング、OAuth、認可、利用権限、上限、監査を適用します。外部接続のツールは、検出して明示的に選択してから利用できます。読む
Paid accessはどうruntime permissionになりますか?Seller-owned providersからのcheckoutとwebhooksがaccess grantsを作成または取り消します。Gatewayはprotected MCP callsの前にgrantsを確認するので、payment stateはspreadsheetではなくruntime permissionになります。読む
Knowledge layerはprompt stuffingをどう避けますか?FilesはMarkdown-LD / JSON-LD knowledge artifactsとsearchable graph dataになります。Indexが対応するとき、runtimeは範囲を限定したsource-linked contextを取得します。品質はsource、indexing、configuration、modelに依存します。読む
このstackに合う実例は何ですか?Paid knowledge agents、customer memory付きsupport copilots、state machinesを持つprocess agents、Telegramやweb widget向けchannel agents、販売できるskill passports、progress、retries、auditが必要なworkflowsに向いています。読む
このstackが重すぎるのはいつですか?Static website、単発のprompt demo、auth、tools、billing、state、customer memoryなしのprivate chatbotだけなら、もっと単純なものを使うべきです。Prostirはagentが他人に使われるhosted productになった瞬間のためのものです。読む
Prostir は API と MCP のどちらで動きますか?Claude、ChatGPT、その他の対応 AI client で Agent を使う場合は remote MCP endpoint が提供経路です。ブラウザ管理、決済、承認済みのシステム連携には APIs と webhooks も使います。プラットフォームは .NET と Azure 上の cloud-hosted 構成です。CRM、database、社内システムとの接続はプランにより、個別要件になる場合があります。読む
技術
技術を具体的な製品づくりに結び付ける。
ガイドと例では、ナレッジ、tools、state、memory、課金、アクセス、quota、運用がどこで関わるかを示します。検証済みの顧客事例は別の証拠区分として扱います。