Prostir

技術

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

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

5独立した製品領域

Agent、Skill、Flow、Team、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# 14を使い、型付きcontract、非同期I/O、dependency injection、options、telemetry、HTTP hosting、background services、source generationを構成します。言語だけでコスト、性能、消費電力、supply-chainの安全性が決まるわけではなく、workload、dependencies、deployment、運用に左右されます。

    • net10.0
    • ASP.NET Core 10
    • C# 14
    • 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は実際の運用環境で決まります。

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

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

    Prostir.AppHostはCosmos DB、Azure Storage、Orleans、API、Gateway、WebApp、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が定義します。

    • Microsoft.Orleans.Server 10.2.2
    • ManagedCode.Orleans.Identity
    • ManagedCode.Orleans.RateLimiting
    • Cosmos persistence
    • Grain-owned state
  5. 05MCP境界

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

    MCP仕様が定義するのはprotocolであり、multi-tenant login、audit、cost cap、rate limitではありません。ManagedCode.MCPGatewayはOrleans runtimeの前段で、transport、顧客ごとのアクセス、toolごとの制限、明確なerror responseを公開endpointに提供します。

    • ManagedCode.MCPGateway 0.4.5
    • ModelContextProtocol 1.4.1
    • 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 0.2.7
    • ManagedCode.Storage.Azure
    • JsonSchema.Net 9.3
    • 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 1.15
    • 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
  9. 09製品画面

    Blazor、決済、Stateless、Jint。

    CreatorはBlazor workspaceを、operatorはBlazor Server consoleを使います。Statelessは会話stateをモデル化し、Jintは範囲を限定したJavaScript toolsをsandboxで実行します。StripeとRozetka Payのintegrationはcheckoutとwebhooksをアクセス判断につなげます。各機能はconfigurationと権限に従います。

    • Blazor WebAssembly 10
    • MudBlazor 9.7
    • Stripe and Rozetka Pay integration + webhooks
    • Stateless state machines
    • Jint 4 sandbox
  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 static landing
    • 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を選ぶ理由

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

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

項目Node.js / ExpressPython / FastAPIProstir (.NET 10)
HTTP runtimeNode.js runtimePython ASGI runtimeASP.NET Core 10
identity単位の分散stateChoose a state frameworkChoose a state frameworkOrleans 10.2.2 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 1.15
MCP SDKOfficial MCP TypeScript SDKOfficial MCP Python SDKOfficial MCP C# SDK 1.4.1
tool schema validationLibrary-selected validationLibrary-selected validationJsonSchema.Net 9.3
contract modelTypeScript contractsPython typing toolsC# 14 + 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 team.NET, 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基盤

.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 1.15を使い、MCP C# SDK 1.4.1、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にどう効きますか?Stateはowner、agent、customer、run identityでkey化されるため、workはshared process memoryではなくisolated grainに入ります。壊れたsessionが他tenant向けのglobal mutable stateになることはありません。読む
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は.NET solutionに、projects、dependencies、service discovery、configuration、health、telemetry、cloud resource shapeを知るAppHostを与えます。単なるprocess startupではなく、local dev、CI、Azure deploymentで使うresource graphです。読む
ProstirはテストでAspireをどう使いますか?AppHostはintegration/browser testsに必要なCosmos DB、Azure Storage、Orleans、API、Gateway、Landing、WebApp、SuperAdminを起動します。同じservice boundaryを検証しますが、productionにはdeployment固有の設定とrelease checksがあります。読む
なぜruntimeはC#と.NETですか?Runtimeにはstrong contracts、async IO、dependency injection、options、telemetry、HTTP hosting、background workers、source generation、予測できるdeploymentが必要です。.NETはそれをfirst-party infrastructureとして持っています。読む
.NETだと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はOrleans runtimeの前にあるprotocol edgeです。remote MCP endpointを公開し、tool callsをrouteし、visible tool boundariesを守り、protocol concernsをproduct-state APIから切り離します。読む
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、運用がどこで関わるかを示します。検証済みの顧客事例は別の証拠区分として扱います。