Home
concierge とは¶
concierge は、Microsoft Foundry
上のモデルを LangChain /
LangGraph
から扱う LLM アプリケーション構築用の Python ハンズオンリポジトリです。
読みどころは大きく 2 つあります。
| 構成 | 完全ローカルで動く? | 学べること |
|---|---|---|
| Todo アプリ (クリーンアーキテクチャ) | はい | FastAPI + Typer + クリーンアーキテクチャの小さな参考実装 |
| ハンズオンチュートリアル | 一部 | Foundry チャット / 埋め込み、観測性、pgvector、LangGraph エージェント |
サービス構成と依存関係¶
concierge/
配下の Python コードは、機能ごとに小さなパッケージに分かれています。
各パッケージは同じクリーンアーキテクチャの構成 (domain / application
/ infrastructure) を踏襲し、共通の concierge.settings
設定レイヤを経由して結線されます。
| パッケージ | 役割 | 提供する Surface | 依存先 (concierge) |
|---|---|---|---|
settings |
サービスごとに名前空間化された Pydantic-Settings 設定 (Foundry / Postgres / 観測性 など) | — | — |
loggers, observability |
共通ロギング + Foundry / Azure Monitor / MLflow トレーシングのヘルパー | — | settings |
todo |
タスク CRUD のリファレンス実装 | REST API, CLI | settings |
knowledge |
Markdown 取り込み + pgvector ベースの RAG ストア | CLI | settings |
agents |
共有エージェントランタイム。AgentRegistry、各種アダプタ (Echo / GitHub Copilot SDK / LangGraph / Microsoft Agent Framework)、組み込みツール (echo、ファイル操作、シェル、画像生成) |
CLI | settings |
chat |
チャット会話・応答 (同期チャット + リアルタイム音声) | REST API, CLI, Realtime | settings, agents (任意、エージェント連動レスポンダ利用時のみ) |
cloud_agent |
キュー + リポジトリ経由でエージェントジョブを実行する非同期ディスパッチャ | REST API, CLI | settings, agents |
依存方向は厳密に一方向です。
agents,todo,knowledgeは独立した bounded context です。 これらは他のサービスパッケージを import しません。agentsを import するのはchatとcloud_agentの 2 つだけで、 どちらも infrastructure / application 層からの参照に限定されており、 domain 層は依存しません。- これらのルールは
pyproject.tomlに定義されたimport-linterコントラクトで CI 強制されています (ローカルではmake lint-importsで実行)。
flowchart LR
settings[settings]
obs["loggers / observability"]
agents[agents]
todo[todo]
knowledge[knowledge]
chat[chat]
cloud_agent[cloud_agent]
obs --> settings
todo --> settings
knowledge --> settings
agents --> settings
chat --> settings
cloud_agent --> settings
chat --> agents
cloud_agent --> agents
Note
チュートリアル用の CLI
scripts/langgraph/vanilla.py
は httpx 経由で Todo アプリの公開 REST API を叩いており、
concierge.todo を直接 import してはいません。これはランタイム
レベルの結合に過ぎない点に注意してください。
どこから読むか¶
目的にいちばん近いところから始めてください。各経路は次のステップに繋がっ ているので、必要なところまで進めばOKです。
Todo アプリ概要 から始めます。uv run todo-web
の 1 コマンドで起動し、Azure 認証も不要です。FastAPI / Typer /
リポジトリ層の繋がりを最小構成で確認できます。
ステップ 1 - Microsoft Foundry + LangChain に進みます。Typer CLI から Foundry プロジェクトに対するチャット completion を 5 分以内に実行できます。
ステップ 2 - 観測性 (トレース & MLflow) を読みます。LangChain 実行を Azure Monitor に送り、ローカル MLflow UI で閲覧する方法をスクリーンショット付きで紹介しています。
VS Code Copilot を Application Insights で可視化する を読みます。同梱の OTel Collector が Copilot Chat のオペレーション数 / トークン / ツール呼び出し / モデル別レイテンシを Azure Application Insights に転送し、ポータルや aka.ms/amg/dash/gh-copilot のプリビルド Grafana ダッシュボードからクエリできます。
ステップ 3 - PostgreSQL (pgvector) CRUD を読みます。1 本の Typer CLI で Docker Compose 上の pgvector と Azure Database for PostgreSQL Flexible Server の両方を切り替えて使えます。
ステップ 4 - LangGraph Todo Agent CLI を読みます。LangGraph エージェントがツール経由で Todo Web API を操作 し、ステップ 1~3 の要素をひとまとめにします。
クイックリファレンス¶
- 開発ガイド: 環境構築、
makeターゲット、Docker 操作。 - チュートリアル概要: 推奨される読み進め方。
- Appendix - 外部参考リンク: Microsoft Learn / 上流ドキュメントへのリンク集。