はじめに
本記事は、自然言語による指示を高精度に解釈し、組織内外のナレッジを動的に統合・活用するためのAI基盤として、Azure上におけるMCP(Model Context Protocol)設計を整理したものである。
“技術的には普通”である構成を、意味的・構造的にプロトコル化し再利用可能にすることで、持続可能かつ進化的なナレッジ基盤が成立する。その要となるのが、Cosmos DBによるスケーラブルなRAGと、Durable Functionsによる文脈オーケストレーションである。
1. 全体構成の思想
- テンプレートも文脈も動的に選定される「意味ドリブンAI」
- MCPは「意味の流れ」の設計思想であり、Durable Functionsがその実行基盤
- Cosmos DBをベースにしたRAG構成によって更新性とスケーラビリティを最大化
2. アーキテクチャ全体図(構成要素)
[User (Teams, Web, Bot, Power Apps)]
↓
[Azure Function(API Gateway)]
↓
[RAG Layer - Context & Template Builder]
├─ Instruction Embedding(Azure OpenAI)
├─ PromptTemplate Search(Cosmos DB)
└─ RequiredContextKey抽出
↓
[Durable Functions Orchestrator]
├─ ContextFetcher Functions(非同期分散取得)
├─ Prompt統合(テンプレ+文脈)
├─ LLM呼び出し(Azure OpenAI / 外部LLM)
└─ Output Formatter + Logger
↓
[Response → UIに返却]
3. 各レイヤーの詳細
● RAG Layer(文脈+テンプレ構成)
- **Instruction(自然言語)**をベクトル化(
text-embedding-ada-002
) - Cosmos DB内のPromptTemplateコレクションからベクトル検索でテンプレ選出
- テンプレには
required_context_keys
が定義されており、これに応じて文脈を組立
● ContextFetcher Functions
- keyに応じたFunctionをDurableで非同期実行(例:
user_profile
、project_spec
、product_doc
) - 各FunctionはFabric, CosmosDB, Searchなどに接続してContext取得
● Prompt Builder
- テンプレートにContextを埋め込み、最終プロンプトを構築
- MCP的に構造化されたJSONでLLMへ送信(Instruction, Context, Formatなど)
● LLM Dispatcher & Formatter
- モデルはAzure OpenAI(GPT-4 / 3.5) or 任意外部LLM
- 応答はHTML, JSON, Markdown形式で整形し、UIに返却
● ロギング・ナレッジ進化
- Instruction+Prompt+Context+応答をCosmos DBに保存
- フィードバックに基づくスコアリングやテンプレ精度改善に活用可能
4. スケーラビリティと再利用性の観点
特性 | 実装アプローチ |
---|---|
Contextの分散取得 | DurableのActivityファンアウト構成 |
テンプレート進化 | Cosmos上で管理+Embeddingで意味選定 |
Model切替 | Dispatcherで分岐制御可能(API, Azure, 社内LLM) |
構成テンプレの再利用 | Activity単位でFunction再利用可能 |
5. 本構成の意義
- 技術的には既知の構成要素であるが、それを意味のレイヤーで再設計した点が本質
- テンプレート・Context・LLM呼び出しのすべてが「文脈ドリブン」で動作
- MCPとは、まさに「普通を再構成する名前」であり、それが可能となった構成である
結び
本構成は、Azureという商用インフラ上において、構文処理・情報取得・意味合成・応答生成というすべての段階を“意味”で統合可能とした初期実装である。これを足場に、教育、業務、企業間知識連携への応用は容易であり、MCP思想を現実に落とし込んだ代表事例となる。