Prostir

技術

業務運用を前提に、最初から.NET 10で構築したクラウドネイティブAIプラットフォーム。

プロンプトは簡単な部分です。難しいのは、identity、state、アクセス、運用、安定した公開endpointです。Prostirは.NET 10、Orleans、Aspire、Microsoft Agent Frameworkでその境界を作ります。

5独立した製品領域

Agent、Skill、Flow、Company、Storeは、それぞれ固有のidentityとライフサイクルを持ちます。

14対応言語

静的Landingは、対応する各言語に専用routeとmetadataを公開します。

10アーキテクチャ層

コンパイル済みruntimeとcloud resourcesから、公開される静的画面までを分けています。

1公開AgentごとのMCP endpoint

公開された各Agentは、slugに結び付いた専用のStreamable HTTP endpointを持ちます。

アイデアから運用まで

アイデアは一つのプロンプトから始められます。 製品として運用するには十の層が必要です。

AIデモだけでは、利用者がログインし、料金を支払い、継続して使うために必要な要素までは見えません。ここでは、コンパイル済みコードから公開URLまで、Prostirの構成を十の責務に分けて説明します。

  1. 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、運用に左右されます。

    • .NET 10
    • ASP.NET Core
    • C#
    • Source generators
    • Typed contracts
  2. 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と有効なメンバー資格が必要です。

    • Azure Container Apps
    • Cosmos DB Serverless
    • Azure Blob + Table Storage
    • Azure Monitor
    • Managed identity + RBAC
  3. 03ローカル統合

    Aspire: integrationを組み立てる一つのAppHost。

    Prostir.AppHostはCosmos DB、Azure Storage、Orleans、API、Gateway、作成者向け画面、Landing、SuperAdminをローカルおよび自動integration flow向けに構成します。設定差分を見つけやすくしますが、本番準備にはdeployment固有の検証、monitoring、release checksが別途必要です。

    • Aspire AppHost SDK
    • Aspire.Hosting.Azure.CosmosDB
    • Aspire.Hosting.Azure.Storage
    • Aspire.Hosting.Orleans
    • TUnit.Aspire
  4. 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に属します。

    • Microsoft.Orleans.Server
    • ManagedCode.Orleans.Identity
    • ManagedCode.Orleans.RateLimiting
    • Azure Tables + Blob
    • Elsa.Workflows.Core
  5. 05MCP境界

    ManagedCode.MCPGateway: 製品制御を備えたremote MCP。

    ManagedCode.MCPGatewayは、有効なローカルツールと外部MCPサーバーで選択したツールを、検索・実行できるカタログにまとめます。プロトコル処理は公式MCP C# SDKが担当します。Prostir.GatewayはOrleansでの実行前に製品ルーティング、OAuth、認可、利用権限、上限、監査を適用します。外部接続のツールは、検出して明示的に選択してから利用できます。

    • ManagedCode.MCPGateway
    • ModelContextProtocol
    • Streamable HTTP
    • OAuth + PKCE
    • Bounded quotas
  6. 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に依存します。

    • ManagedCode.MarkdownLd.Kb
    • ManagedCode.Storage.Azure
    • JsonSchema.Net
    • PdfPig + OpenXml
    • Graph-backed retrieval
  7. 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に依存します。

    • Microsoft.Extensions.AI
    • Microsoft.Agents.AI
    • Azure OpenAI + OpenAI-compatible
    • Prompt + declarative workflows
    • IChatClient middleware
  8. 08開発ループ

    ルールを明示したAgent支援開発。

    Prostirはrepository管理のAGENTS.md rules、vertical slices、code review、focused checks、integration tests、release gatesを使います。Coding agentsは調査、実装、reviewを支援しますが、product ownership、人の判断、検証の代わりにはなりません。

    Claude CodeOpenAI Codex
    • AI-assisted delivery
    • AGENTS.md rules
    • Vertical slices
    • Human-reviewed changes
    • Integration test gates
    • TUnit
    • Microsoft.Testing.Platform
  9. 09製品画面

    Blazor、決済、Stateless、Jint。

    作成者はMudBlazorを使ったBlazor WebAssemblyで製品を管理し、運用担当者はBlazor Serverの管理画面を使います。作成者がステートマシンを有効にすると、Statelessが設定された状態遷移を制御します。Jintは命令数、メモリ、再帰、実行時間に上限を設け、.NET 10へのアクセスを制限してJavaScriptツールを実行します。Stripe.netとRozetka PayのHTTP連携が販売者への支払い、購入手続き、Webhookを支え、プラットフォームの契約にはStripeを使います。利用できる機能は製品設定と権限によって決まります。

    • Blazor WebAssembly
    • MudBlazor
    • Stripe.net + Rozetka Pay API
    • Stateless
    • Jint
  10. 10静的公開面

    明示的なdiscovery metadataを持つAstro。

    ページは静的Astro HTMLとして生成されます。Canonical、hreflang、structured data、sitemap、IndexNow、llms.txtが公開予定routeを記述します。ローカルcheckはHTML、crawlability、accessibility、Lighthouse templateを対象にし、crawl、indexing、rankingは検索エンジンが判断します。

    • Astro
    • JSON-LD + sitemap
    • IndexNow + llms.txt
    • Local Lighthouse checks
    • Localized hreflang

結果

公開Agentごとに一つの、hostedかつ観測可能なMCP endpoint。

各層は、公開Agentのslugに結び付いたMCP URLに集約されます。対応clientはStreamable HTTPで接続し、アクセス、課金、ナレッジ、tools、state、memory、audit、limitは明示的に設定される機能として残ります。

  • Remote MCP endpoint
  • OAuth 2.1 + entitlements
  • Per-agent quotas + audit
  • Live operator visibility

.NET 10を選ぶ理由

三つの実用的なstackと、文書化されたProstirの選択。

Node.js、Python、.NET 10はいずれもMCP serverをhostできます。この表はProstirが実際に採用する実装を示すもので、性能、コスト、電力、安全性の普遍的な順位ではありません。

項目Node.js / ExpressPython / FastAPIProstir (.NET 10)
HTTP runtimeNode.js runtimePython ASGI runtimeASP.NET Core
identity単位の分散stateChoose a state frameworkChoose a state frameworkOrleans virtual actors
Dependency injection、options、telemetryFramework or library choiceFramework or library choiceMicrosoft.Extensions.*
AI abstractionProvider libraries or abstractionProvider libraries or abstractionMicrosoft.Extensions.AI + Agent Framework
MCP SDKOfficial MCP TypeScript SDKOfficial MCP Python SDKOfficial MCP C# SDK
tool schema validationLibrary-selected validationLibrary-selected validationJsonSchema.Net
contract modelTypeScript contractsPython typing toolsC# + source generation
ローカル構成Local process toolingLocal process toolingdotnet 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 certificationsAzure service controls; Prostir deployment assessed separately
Availabilityの条件Per-service and per-region termsNo blanket Prostir SLA is claimed here
Regional placementRegion configured per workloadOperator-provisioned regional resources
NetworkとingressOptional global networking servicesConfigured Gateway and static-site routing
Model providerへのrouteBedrock and partner model routesAzure OpenAI, OpenAI-compatible, and creator BYOK routes
顧客アクセスCognito or custom identityProstir access and OAuth policy above the hosting layer
Application runtimeRuntime selected by the company.NET 10, Orleans, Aspire, and Managed Code libraries
静的LandingのhostingS3 + CloudFront or AmplifyAzure Static Web Apps for this landing

Cloud providerは各serviceの機能を文書化します。Prostirの認証、SLA、deployment region、運用controlは、実際の環境ごとに別途確認する必要があります。

オープンソース

私たちが公開するものと、利用しているオープンソース。

Managed CodeはMicrosoftとcommunityのオープンソースを基盤にProstirを構築しています。以下はmarketing上の候補ではなく、実際のproject fileに含まれるpackageです。

01

Managed Codeが構築

公開Agentの下で動くMCP gateway、knowledge pipeline、storage、Orleans integrationは、Managed Codeが保守し公開しているcomponentsです。

02

.NET 10基盤

.NET 10、ASP.NET Core、Aspireが、Prostirで使う型付きcontract、hosting、telemetry、resource compositionを提供します。

03

AI、MCP、その上のlibraries

ProstirはIChatClient boundaryにMicrosoft.Extensions.AI、Agent実行にMicrosoft Agent Frameworkを使い、MCP C# SDK、Jint、Stateless、対応する決済integrationを組み合わせます。

04

このサイトの開発と公開

ProstirはAgent支援開発にrepository rules、code review、自動checks、人によるownershipを組み合わせます。AGENTS.mdがdelivery contractを明示し、Astroがこの静的なローカライズページを生成します。

技術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、運用がどこで関わるかを示します。検証済みの顧客事例は別の証拠区分として扱います。