Agent, Skill, Flow, Team, Store는 각각 고유한 identity와 lifecycle을 유지합니다.
기술
처음부터 기업 운영을 고려해 .NET으로 만든 클라우드 네이티브 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# 14를 사용해 typed contracts, 비동기 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는 실제 운영 환경에서 결정합니다.
03로컬 통합
Aspire: integration을 구성하는 하나의 AppHost.
Prostir.AppHost는 Cosmos DB, Azure Storage, Orleans, API, Gateway, WebApp, Landing, SuperAdmin을 로컬 및 자동 integration flow에 맞게 구성합니다. 설정 차이를 찾는 데 도움이 되지만 production readiness에는 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가 정의합니다.
05MCP 경계
ManagedCode.MCPGateway: 제품 control을 갖춘 remote MCP.
MCP 사양은 protocol을 정의하지만 multi-tenant login, audit, cost cap, rate limit까지 정의하지는 않습니다. ManagedCode.MCPGateway는 Orleans runtime 앞에서 transport, 고객별 접근, tool별 제한, 명확한 error response를 게시된 endpoint에 제공합니다.
06지식 계층
ManagedCode.MarkdownLd.Kb: 검색 가능한 source context.
ManagedCode.MarkdownLd.Kb는 지원 source를 Markdown-LD 또는 JSON-LD artifacts와 검색 가능한 graph data로 변환합니다. ManagedCode.Storage가 file boundary를 소유하고 JsonSchema.Net이 MCP tool arguments를 검증합니다. 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.
Creator는 Blazor workspace를 사용하고 operator는 Blazor Server console을 사용합니다. Stateless는 대화 state를 모델링하고 Jint는 범위를 제한한 JavaScript tools를 sandbox에서 실행합니다. Stripe와 Rozetka Pay integration은 checkout과 webhooks를 접근 결정에 연결합니다. 각 기능은 configuration과 권한을 따릅니다.
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을 선택한 이유
세 가지 실용적인 stack과 문서화된 Prostir의 선택.
Node.js, Python, .NET은 모두 MCP server를 host할 수 있습니다. 이 표는 Prostir가 실제로 사용하는 구현 선택을 설명하며 성능, 비용, 에너지, 안전성의 보편적인 순위가 아닙니다.
| 항목 | Node.js / Express | Python / FastAPI | Prostir (.NET 10) |
|---|---|---|---|
| HTTP runtime | Node.js runtime | Python ASGI runtime | ASP.NET Core 10 |
| identity별 분산 state | Choose a state framework | Choose a state framework | Orleans 10.2.2 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 1.15 |
| MCP SDK | Official MCP TypeScript SDK | Official MCP Python SDK | Official MCP C# SDK 1.4.1 |
| tool schema validation | Library-selected validation | Library-selected validation | JsonSchema.Net 9.3 |
| contract model | TypeScript contracts | Python typing tools | C# 14 + 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 team | .NET, 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를 만듭니다. 아래 package는 marketing용 목록이 아니라 실제 project file에서 확인한 구성 요소입니다.
Managed Code가 만든 구성 요소
게시된 Agent 아래에서 동작하는 MCP gateway, knowledge pipeline, storage, Orleans integration은 Managed Code가 유지보수하고 공개하는 components입니다.
- Managed CodeProstir를 만들고 직접 사용하는 backend components를 공개하는 team.
- ManagedCode on GitHubMCPGateway, MarkdownLd.Kb, Storage, Communication, Orleans extensions 등.
- ManagedCode.MCPGatewayOAuth, multi-tenancy, audit, tool별 quota를 갖춘 remote MCP gateway.
- 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.
.NET 기반
.NET 10, ASP.NET Core, Aspire는 Prostir가 사용하는 typed contracts, hosting, telemetry, resource composition을 제공합니다.
- .NET 10컴파일된 runtime, C# 14, source generators.
- ASP.NET Core 10HTTP, auth, OpenAPI, Minimal APIs, JsonPatch, hosted services.
- AspireAppHost orchestration, service defaults, deployment resources.
- Microsoft Orleans 10Grains, persistence, placement, stateless workers, dashboard telemetry를 갖춘 virtual actor runtime.
- EF Core 10 (Cosmos)Azure Cosmos DB 위의 typed persistence와 query model.
- MudBlazorCreator workspace를 위한 Material Design components.
AI, MCP 및 상위 libraries
Prostir는 IChatClient boundary에 Microsoft.Extensions.AI, Agent 실행에 Microsoft Agent Framework 1.15를 사용하며 MCP C# SDK 1.4.1, Jint, Stateless, 지원 결제 integration을 함께 구성합니다.
- Microsoft.Extensions.AIChat, embeddings, tool calls, telemetry를 위한 하나의 interface.
- Microsoft Agent FrameworkPrompt-based 및 declarative Agents용 Microsoft Agent Framework 1.15.
- Model Context Protocol C# SDKMCP server와 client를 위한 공식 C# SDK.
- JintCreator가 작성한 범위 제한 tool script를 실행하는 .NET 내부 JavaScript engine.
- StatelessAgent가 다음에 수행할 수 있는 동작을 모델링하는 state machines.
- Stripe and Rozetka Pay integration유료 접근, checkout, webhooks를 위한 결제 client.
이 사이트의 개발과 배포
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는 같은 패턴을 agents, customer sessions, workflow runs에 적용합니다.읽기
Product 관점에서 grain은 무엇인가요?Grain은 virtual actor입니다. identity, behavior, 필요하면 persistent state를 가진 논리 객체입니다. Prostir에서는 published agent, customer conversation, access grant, workflow run이 grain이 될 수 있습니다.읽기
Orleans는 tenant isolation에 어떻게 도움이 되나요?State는 owner, agent, customer, run identity로 key 처리되므로 작업은 shared process memory가 아니라 isolated grains 안에 들어갑니다. 실패한 session이 다른 tenant의 global mutable state가 되지 않습니다.읽기
Orleans의 주요 위험은 무엇인가요?위험한 패턴은 chatty grains, 하나의 bottleneck coordinator, blocking synchronous 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별 configuration과 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이 Prostir를 하나의 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마다 전체 product database를 읽지 않는 hot path가 필요합니다.읽기
ManagedCode.MCPGateway는 어디에 들어가나요?ManagedCode.MCPGateway는 Orleans runtime 앞의 protocol edge입니다. remote MCP endpoint를 노출하고, tool calls를 라우팅하고, 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에 맞는 실제 use case는 무엇인가요?Paid knowledge agents, customer memory가 있는 support copilots, state machines가 있는 process agents, Telegram 또는 web widgets용 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, 운영이 어디에서 연결되는지 보여 줍니다. 검증된 고객 사례는 별도의 근거 유형으로 다룹니다.