Skip to content

Latest commit

 

History

History
311 lines (239 loc) · 18.2 KB

File metadata and controls

311 lines (239 loc) · 18.2 KB

Foundry Toolkit + Foundry Hosted Agents ワークショップ

Python Microsoft Agent Framework Hosted Agents Microsoft Foundry Azure OpenAI Azure CLI Azure Developer CLI Docker Foundry Toolkit License

Microsoft Foundry Agent ServiceHosted Agents として AI エージェントを構築、テスト、デプロイします - すべて VS Code 上で Microsoft Foundry 拡張機能Foundry Toolkit を使用して行えます。

Hosted Agents は現在プレビュー段階です。 対応リージョンは限定されているため、リージョンの可用性をご確認ください。

各ラボ内の agent/ フォルダーは Foundry 拡張機能 によって 自動でスキャフォールド され、その後コードをカスタマイズし、ローカルでテストしてデプロイできます。

🌐 多言語サポート

GitHub Action によるサポート(自動化&常に最新)

Arabic | Bengali | Bulgarian | Burmese (Myanmar) | Chinese (Simplified) | Chinese (Traditional, Hong Kong) | Chinese (Traditional, Macau) | Chinese (Traditional, Taiwan) | Croatian | Czech | Danish | Dutch | Estonian | Finnish | French | German | Greek | Hebrew | Hindi | Hungarian | Indonesian | Italian | Japanese | Kannada | Khmer | Korean | Lithuanian | Malay | Malayalam | Marathi | Nepali | Nigerian Pidgin | Norwegian | Persian (Farsi) | Polish | Portuguese (Brazil) | Portuguese (Portugal) | Punjabi (Gurmukhi) | Romanian | Russian | Serbian (Cyrillic) | Slovak | Slovenian | Spanish | Swahili | Swedish | Tagalog (Filipino) | Tamil | Telugu | Thai | Turkish | Ukrainian | Urdu | Vietnamese

ローカルでクローンしたい場合は?

このリポジトリには50以上の言語翻訳が含まれており、ダウンロードサイズが大きくなります。翻訳ファイルを除いてクローンする場合は、スパースチェックアウトを使用してください。

Bash / macOS / Linux:

git clone --filter=blob:none --sparse https://github.com/microsoft-foundry/Foundry_Toolkit_for_VSCode_Lab.git
cd Foundry_Toolkit_for_VSCode_Lab
git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'

CMD (Windows):

git clone --filter=blob:none --sparse https://github.com/microsoft-foundry/Foundry_Toolkit_for_VSCode_Lab.git
cd Foundry_Toolkit_for_VSCode_Lab
git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"

これにより、より高速なダウンロードで講座を完了するために必要なすべてのものを取得できます。


アーキテクチャ

flowchart TB
    subgraph Local["ローカル開発 (VS Code)"]
        direction TB
        FE["Microsoft Foundry
        Extension"]
        FoundryToolkit["Foundry Toolkit
        Extension"]
        Scaffold["Scaffolded Agent Code
        (main.py · agent.yaml · Dockerfile)"]
        Inspector["Agent Inspector
        (Local Testing)"]
        FE -- "Create New
        Hosted Agent" --> Scaffold
        Scaffold -- "F5 デバッグ" --> Inspector
        FoundryToolkit -.- Inspector
    end

    subgraph Cloud["Microsoft Foundry"]
        direction TB
        ACR["Azure Container
        Registry"]
        AgentService["Foundry Agent Service
        (Hosted Agent Runtime)"]
        Model["Azure OpenAI
        (gpt-4.1 / gpt-4.1-mini)"]
        Playground["Foundry Playground
        & VS Code Playground"]
        ACR --> AgentService
        AgentService -- "/responses API" --> Model
        AgentService --> Playground
    end

    Scaffold -- "Deploy
    (Docker build + push)" --> ACR
    Inspector -- "POST /responses
    (localhost:8088)" --> スキャフォールド
    Playground -- "テストプロンプト" --> AgentService

    style Local fill:#f0f4ff,stroke:#4a6cf7,stroke-width:2px
    style Cloud fill:#fff4e6,stroke:#f59e0b,stroke-width:2px
Loading

フロー: Foundry拡張機能がエージェントをスキャフォールド → コードと指示をカスタマイズ → Agent Inspectorでローカルテスト → Foundryにデプロイ(DockerイメージをACRにプッシュ) → Playgroundで検証。


何を構築するか

ラボ 説明 ステータス
Lab 01 - Single Agent 「エグゼクティブ向け説明」エージェントを構築し、ローカルでテストし、Foundryにデプロイ ✅ 利用可能
Lab 02 - マルチエージェント ワークフロー 「履歴書 → ジョブ適合評価」を構築 - 4つのエージェントが協力して履歴書の適合度をスコアリングし、学習ロードマップを生成 ✅ 利用可能

エグゼクティブ エージェントの紹介

このワークショップでは、「エグゼクティブ向け説明」エージェントを構築します。これは複雑な技術用語を取り、落ち着いた取締役会向けの要約に翻訳するAIエージェントです。率直に言って、C-suiteの誰もが「v3.2で導入された同期呼び出しによるスレッドプール枯渇」という話は聞きたくないでしょう。

何度も経験したのは、私の完璧に作成したポストモーテムの回答が「じゃあ...サイトはダウンしてるの?」だったことです。

動作原理

技術的なアップデートを入力すると、エグゼクティブ向けの要約が返ってきます — ジャーゴンなし、スタックトレースなし、不安なし。何が起きたかビジネスへの影響次のステップの3つの箇条書きだけです。

動きを見る

あなたが言う:

"v3.2で導入された同期呼び出しによるスレッドプールの枯渇によりAPIのレイテンシが増加しました。"

エージェントの返答:

エグゼクティブサマリー:

  • 何が起きたか: 最新リリース後、システムが遅くなりました。
  • ビジネスへの影響: 一部のユーザーがサービスの遅延を経験しました。
  • 次のステップ: 変更はロールバックされ、修正後に再デプロイ予定です。

なぜこのエージェント?

これは単純明快な単一目的のエージェントで、複雑なツールチェーンに煩わされることなくホステッドエージェントのワークフローを一通り学ぶのに最適です。率直に言って、どのエンジニアリングチームにも必要なものです。


ワークショップ構成

📂 Foundry_Toolkit_for_VSCode_Lab/
├── 📄 README.md                      ← You are here
└── 📂 workshop/
    ├── 📂 lab01-single-agent/        ← Full lab: docs + agent code
    │   ├── README.md                 ← Hands-on lab instructions
    │   ├── 📂 docs/                  ← Step-by-step tutorial modules
    │   │   ├── 00-prerequisites.md
    │   │   ├── 01-setup.md
    │   │   ├── 02-create-hosted-agent.md
    │   │   ├── 03-configure-and-code.md
    │   │   ├── 04-test-locally.md
    │   │   ├── 05-deploy-to-foundry.md
    │   │   ├── 06-verify-in-playground.md
    │   │   ├── 07-summary.md
    │   │   └── 08-troubleshooting.md
    │   └── 📂 agent/                 ← Reference solution (auto-scaffolded by Foundry extension)
    │       ├── agent.yaml
    │       ├── Dockerfile
    │       ├── main.py
    │       └── requirements.txt
    └── 📂 lab02-multi-agent/         ← Resume → Job Fit Evaluator
        ├── README.md                 ← Hands-on lab instructions (end-to-end)
        ├── 📂 docs/                  ← Step-by-step tutorial modules
        │   ├── 00-prerequisites.md
        │   ├── 01-understand-multi-agent.md
        │   ├── 02-scaffold-multi-agent.md
        │   ├── 03-configure-agents.md
        │   ├── 04-orchestration-patterns.md
        │   ├── 05-test-locally.md
        │   ├── 06-deploy-to-foundry.md
        │   ├── 07-verify-in-playground.md
        │   └── 08-troubleshooting.md
        └── 📂 PersonalCareerCopilot/ ← Reference solution (multi-agent workflow)
            ├── agent.yaml
            ├── Dockerfile
            ├── main.py
            └── requirements.txt

注意: 各ラボ内の agent/ フォルダーは、コマンドパレットから Microsoft Foundry: Create a New Hosted Agent を実行するとMicrosoft Foundry拡張機能が生成します。その後、エージェントの指示やツール、設定に応じてファイルをカスタマイズします。Lab 01 ではこれを一から再構築する方法を紹介します。


はじめに

1. リポジトリをクローンする

git clone https://github.com/microsoft-foundry/Foundry_Toolkit_for_VSCode_Lab.git
cd Foundry_Toolkit_for_VSCode_Lab

2. Pythonの仮想環境をセットアップ

python -m venv venv

アクティベートします:

  • Windows (PowerShell):
    .\venv\Scripts\Activate.ps1
  • macOS / Linux:
    source venv/bin/activate

3. 依存関係をインストール

pip install -r workshop/lab01-single-agent/agent/requirements.txt

4. 環境変数を設定

agent フォルダー内のサンプル .env ファイルをコピーし、値を入力します:

cp workshop/lab01-single-agent/agent/.env.example workshop/lab01-single-agent/agent/.env

workshop/lab01-single-agent/agent/.env を編集:

AZURE_AI_PROJECT_ENDPOINT=https://<your-account>.services.ai.azure.com/api/projects/<your-project>
AZURE_AI_MODEL_DEPLOYMENT_NAME=<your-model-deployment-name>

5. ワークショップラボを進める

各ラボは独立したモジュール構成です。まず Lab 01 で基礎を学び、続いて Lab 02 でマルチエージェントワークフローを学びます。

Lab 01 - Single Agent (完全な手順)

# モジュール リンク
1 前提条件を読む 00-prerequisites.md
2 Foundry Toolkit と Foundry 拡張機能をインストール 01-setup.md
3 Foundry プロジェクトを作成 01-setup.md
4 ホステッドエージェントを作成 02-create-hosted-agent.md
5 指示と環境を設定 03-configure-and-code.md
6 ローカルでテスト 04-test-locally.md
7 Foundryにデプロイ 05-deploy-to-foundry.md
8 Playgroundで検証 06-verify-in-playground.md
9 トラブルシューティング 08-troubleshooting.md

Lab 02 - マルチエージェント ワークフロー (完全な手順)

# モジュール リンク
1 前提条件 (Lab 02) 00-prerequisites.md
2 マルチエージェントアーキテクチャを理解 01-understand-multi-agent.md
3 マルチエージェントプロジェクトをスキャフォールド 02-scaffold-multi-agent.md
4 エージェントと環境を設定 03-configure-agents.md
5 オーケストレーションパターン 04-orchestration-patterns.md
6 ローカルでテスト (マルチエージェント) 05-test-locally.md

| 7 | Foundryへのデプロイ | 06-deploy-to-foundry.md | | 8 | プレイグラウンドでの検証 | 07-verify-in-playground.md | | 9 | トラブルシューティング(マルチエージェント) | 08-troubleshooting.md |


メンテナー

Shivam Goyal
Shivam Goyal


必要な権限(クイックリファレンス)

シナリオ 必要な役割
新しいFoundryプロジェクトの作成 FoundryリソースのAzure AI所有者
既存プロジェクトへのデプロイ(新リソース) サブスクリプションのAzure AI所有者 + 共同作成者
完全構成済みプロジェクトへのデプロイ アカウントのリーダー + プロジェクトのAzure AIユーザー

重要: Azureの所有者および共同作成者ロールは、管理権限のみを含み、開発(データアクション)権限は含みません。エージェントの作成とデプロイにはAzure AIユーザーまたはAzure AI所有者が必要です。


参考資料


ライセンス

MIT


免責事項: 本書類は AI 翻訳サービス Co-op Translator を使用して翻訳されています。正確性を期していますが、自動翻訳には誤りや不正確な部分が含まれる可能性があることをご承知おきください。原文の原語版が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用により生じたいかなる誤解や解釈違いについても、当方は責任を負いかねます。