このレッスンでは、このコースのコードサンプルの実行方法について説明します。
リポジトリをクローンする前に、セットアップのサポート、コースに関する質問、または他の学習者との交流のために、AI Agents For Beginners Discordチャンネルに参加してください。
まず、GitHubリポジトリをクローンまたはフォークしてください。これにより、コース教材の自分のバージョンが作成され、コードを実行、テスト、調整できます!
これはリポジトリをフォークするリンクをクリックして行えます。
次のリンクにあなたのフォークしたコースのバージョンができているはずです:

履歴とすべてのファイルを完全にダウンロードすると、リポジトリ全体は大きくなる場合があります(約3 GB)。ワークショップへの参加のみや、一部のレッスンフォルダだけが必要な場合は、浅いクローン(またはスパースクローン)でかなり小さくダウンロードできます。
下記のコマンドで<your-username>をあなたのフォークURL(またはアップストリームURL)に置き換えてください。
最新のコミット履歴のみをクローンするには:
git clone --depth 1 https://github.com/<your-username>/ai-agents-for-beginners.git
特定のブランチをクローンするには:
git clone --depth 1 --branch <branch-name> https://github.com/<your-username>/ai-agents-for-beginners.git
これは部分クローンとスパースチェックアウトを使用します(Git 2.25以上が必要で、部分クローンをサポートする最新のGitが推奨されます):
git clone --depth 1 --filter=blob:none --sparse https://github.com/<your-username>/ai-agents-for-beginners.git
リポジトリフォルダに移動:
cd ai-agents-for-beginners
次に、必要なフォルダを指定します(以下の例は2つのフォルダを表示):
git sparse-checkout set 00-course-setup 01-intro-to-ai-agents
クローンしてファイル確認後、ファイルのみが必要で容量を開放したい場合(git履歴は不要)は、リポジトリのメタデータを削除してください(💀元に戻せません — Git機能はすべて失われます):
# zsh/bash
rm -rf .git
# PowerShell
Remove-Item -Recurse -Force .git
GitHub UIからこのリポジトリの新しいCodespaceを作成します。
このコースでは、AIエージェントの構築を体験できる一連のJupyterノートブックを提供しています。
コードサンプルでは、FoundryChatClientを使用したMicrosoft Agent Framework (MAF)を用い、Microsoft Foundryを通じてMicrosoft Foundry Agent Service V2(Responses API)に接続します。
すべてのPythonノートブックは*-python-agent-framework.ipynbというラベルが付いています。
注意:Python3.12がインストールされていない場合は必ずインストールしてください。requirements.txtの正しいバージョンをインストールするために、python3.12で仮想環境を作成してください。
例
Python仮想環境ディレクトリを作成:
python -m venv venv
次に仮想環境を有効化:
# zsh/bash
source venv/bin/activate
# Command Prompt for Windows
venv\Scripts\activate
.NET 10以上:.NETを使用するサンプルコードの場合、.NET 10 SDK以上をインストールし、インストール済みの.NET SDKバージョンを確認してください。
dotnet --list-sdks
gpt-5-mini) を持つプロジェクト。以下のステップ1を参照してください。このリポジトリのルートにはコードサンプルを実行するのに必要なPythonパッケージをすべて記載したrequirements.txtファイルがあります。
リポジトリのルートで次のコマンドを実行してインストールできます:
pip install -r requirements.txt
コンフリクトや問題を避けるため、Pythonの仮想環境を作成することを推奨します。
VSCodeで正しいPythonバージョンを使用していることを確認してください。
ノートブックを実行するには、Microsoft Foundryのハブと、デプロイされたモデルを持つプロジェクトが必要です。
gpt-5-mini)をデプロイします。Microsoft Foundryポータルのプロジェクトから:

gpt-5-mini)を記録します。az login でAzureにサインインするほとんどのノートブックは azure-identity パッケージの AzureCliCredential または DefaultAzureCredential で Azure CLI のサインイン状態(az login)を使用して認証します。これによりAPIキーは不要です。一部のレッスンやオプション統合はAPIキーを使用しますので、各レッスンの前提条件で追加の環境変数を確認してください。Azure CLIへのサインインが必要です。
Azure CLIが未インストールの場合はインストール:aka.ms/installazurecli
次を実行しサインイン:
az login
ブラウザがないリモート/Codespace環境の場合:
az login --use-device-code
プロンプトが表示されたらサブスクリプションを選択 — Foundryプロジェクトが含まれるものを選んでください。
サインイン済みを確認:
az account show
なぜ
az login? ノートブックはazure-identityのAzureCliCredential(またはDefaultAzureCredential)を使って認証します。これにより.envファイルにAPIキーやシークレットが不要になり、Azure CLIセッションが資格情報を提供します。これはセキュリティのベストプラクティスです。
.env ファイルを作成するサンプルファイルをコピー:
# zsh/bash
cp .env.example .env
# PowerShell
Copy-Item .env.example .env
.env を開き、次の2つの値を記入してください:
AZURE_AI_PROJECT_ENDPOINT=https://<your-project>.services.ai.azure.com/api/projects/<your-project-id>
AZURE_AI_MODEL_DEPLOYMENT_NAME=gpt-5-mini
| 変数 | 場所 |
|---|---|
AZURE_AI_PROJECT_ENDPOINT |
Foundryポータル → プロジェクト → Overview ページ |
AZURE_AI_MODEL_DEPLOYMENT_NAME |
Foundryポータル → Models + Endpoints → デプロイ済みモデル名 |
これでほとんどのレッスンは準備完了です!ノートブックは自動的に az login セッションで認証します。
pip install -r requirements.txt
先ほど作成した仮想環境内で実行することを推奨します。
レッスン5(Agentic RAG)とレッスン16のノートブックは、インメモリのナレッジベースでそのまま実行可能で、追加のAzureリソースは不要です。実際のAzure AI Searchインデックスでバックアップしたい場合、レッスン16ノートブックは現在キー認証を使用しており、AZURE_SEARCH_SERVICE_ENDPOINTとAZURE_SEARCH_API_KEYの両方が設定された時だけインメモリ検索からAzure AI Searchに切り替わります。そのため実際のインデックスで実行するには管理キーも設定する必要があります。本コースの他の部分で使用されているaz loginフローに準拠した推奨のキーなし認証のMicrosoft Entra ID (RBAC)は、本番コードでは推奨されます。
以下のRBAC手順はセットアップガイドサンプルと自身のコードに適用されますが、レッスン16ノートブックでキーなし認証を有効にするものではありません。レッスン16は引き続きエンドポイントと管理キーの両方を必要とします。
検索サービスでロールベースアクセスを有効にします:
az search service update --name <service-name> --resource-group <resource-group> --auth-options aadOrApiKey
必要なロールを自分に割り当てる(インデックスの作成/ロードおよびクエリ):
az role assignment create --assignee <your-user-or-principal-id> --role "Search Service Contributor" --scope $(az search service show -g <resource-group> -n <service-name> --query id -o tsv)
az role assignment create --assignee <your-user-or-principal-id> --role "Search Index Data Contributor" --scope $(az search service show -g <resource-group> -n <service-name> --query id -o tsv)
.env ファイルにエンドポイントを追加します:
| 変数 | 場所 |
|---|---|
AZURE_SEARCH_SERVICE_ENDPOINT |
Azureポータル → Azure AI Search リソース → Overview → URL |
AZURE_SEARCH_API_KEY |
レッスン16ノートブックでAzure AI Searchをキー認証で使用するために必要。Azureポータル → 設定 → キー → プライマリ管理キー |
なぜキーなし? 管理キーは検索サービスに対する完全な書き込みアクセスを許可し、
.envファイルを通じて漏洩する恐れがあります。RBACでは代わりにaz loginのIDが使われます。これが本コースノートブックのキーなしEntra IDパターン(AzureCliCredential/DefaultAzureCredentialを介す)と一致します。ロールを使ったAzure AI Searchへの接続を参照してください。
Azure AI SearchセットアップガイドにPythonや.NETでの完全なインデックス作成サンプルが掲載されています。
レッスン6と8の一部ノートブックは、Microsoft Foundryプロジェクトを経由せずAzure OpenAIを直接(Responses APIを使って)呼び出します。これらのサンプルは旧GitHub Modelsを使用していましたが廃止され、Responses APIをサポートしていません。.envに次の変数を追加してください:
| 変数 | 場所 |
|---|---|
AZURE_OPENAI_ENDPOINT |
Azureポータル → Azure OpenAI リソース → キーとエンドポイント → エンドポイント (例:https://<your-resource>.openai.azure.com) |
AZURE_OPENAI_DEPLOYMENT |
Responses APIをサポートするデプロイ済みモデル名(例:gpt-5-mini) |
AZURE_OPENAI_API_KEY |
任意 — az login / Entra ID以外のキー認証を使う場合のみ必要 |
Responses APIは安定版の
/openai/v1/エンドポイントを使用するため、api-versionは不要です。キーなしのEntra ID認証にはaz loginでサインインしてください。
MiniMaxは、最大204Kトークンの長大コンテキスト対応モデルをOpenAI互換APIで提供します。Microsoft Agent FrameworkのOpenAIChatClientは任意のOpenAI互換エンドポイントで動作するため、OpenAIChatClientを使うレッスンはMiniMaxを代替としてそのまま利用可能です。
.env に以下の変数を追加してください:
| 変数 | 場所 |
|---|---|
MINIMAX_API_KEY |
MiniMaxプラットフォーム → APIキー |
MINIMAX_BASE_URL |
https://api.minimax.io/v1(デフォルト値)を使用 |
MINIMAX_MODEL_ID |
使用するモデル名(例:MiniMax-M3) |
モデル例:MiniMax-M3(推奨)、MiniMax-M2.7、MiniMax-M2.7-highspeed(高速応答)。モデル名と提供状況は時々変わることがあります。また、モデルへのアクセスはアカウントに依存します。
OpenAIChatClientを使用するコードサンプル(例:レッスン14のホテル予約ワークフロー)は、MINIMAX_API_KEYが設定されていると自動的にMiniMax設定を検出して利用します。
Novita AI は、オープンソースおよび最先端のLLM(DeepSeek、Llama、Qwenなど)向けのOpenAI互換APIを提供しています。Microsoft Agent Frameworkの OpenAIChatClient はあらゆるOpenAI互換のエンドポイントで動作するため、Novita AIをAzure OpenAIやOpenAIの代替としてそのまま利用できます。
これらの変数を .env ファイルに追加してください:
| 変数 | 入手場所 |
|---|---|
NOVITA_API_KEY |
Novita AI ダッシュボード → API Keys |
NOVITA_BASE_URL |
https://api.novita.ai/openai/v1 を使う(デフォルト値) |
NOVITA_MODEL_ID |
使用するモデル名(例:moonshotai/kimi-k3) |
例モデル: moonshotai/kimi-k3, zai-org/glm-5.2, deepseek/deepseek-v4-flash-0731。Novita AIは他にも多くのオープンソースモデルファミリー(Llama、Qwen、GLMなど)をホストしています — 利用可能なモデルとモデルIDの一覧はNovita AIモデルライブラリで確認できます。
現状のサンプルは NOVITA_* 変数を自動で使用しません。Novita AIを使うには、実行中のサンプルの OpenAIChatClient 構築時にこれらの値を明示的に渡してください。
Foundry Local は軽量なランタイムで、言語モデルを完全に自分のマシン上でダウンロード、管理、提供し、OpenAI互換API経由で利用できます — クラウド不要です。
Microsoft Agent Frameworkの OpenAIChatClient はどのOpenAI互換エンドポイントとも動くため、Foundry LocalはAzure OpenAIのローカル代替としてそのまま使えます。
1. Foundry Local をインストール
# ウィンドウズ
winget install Microsoft.FoundryLocal
# macOS
brew install foundrylocal
2. モデルをダウンロード・実行(これでローカルサービスも起動します):
foundry model list # 利用可能なモデルを見る
foundry model run phi-4-mini
3. ローカルエンドポイントを発見するためのPython SDKをインストール:
pip install foundry-local-sdk
4. Microsoft Agent Frameworkをローカルのモデルに向ける:
from foundry_local import FoundryLocalManager
from agent_framework.openai import OpenAIChatClient
# 必要に応じてモデルをダウンロードし、ローカルで提供してから、エンドポイント/ポートを検出します。
manager = FoundryLocalManager("phi-4-mini")
chat_client = OpenAIChatClient(
base_url=manager.endpoint, # 例: http://localhost:<port>/v1
api_key=manager.api_key, # Foundry Localでは常に「not-required」です。
model_id=manager.get_model_info("phi-4-mini").id,
)
agent = chat_client.as_agent(
name="LocalAgent",
instructions="You are a helpful assistant running fully on-device.",
)
補足: Foundry LocalはOpenAI互換のChat Completionsエンドポイントを公開しています。ローカル開発やオフライン用途に使えます。完全なResponses API機能セット(状態管理会話など)はAzure OpenAIやMicrosoft Foundryプロジェクトをご利用ください。
レッスン8の条件付きワークフローノートブックはMicrosoft Foundry経由のBing groundingを使っています。そのサンプルを実行する場合は、以下の変数を .env ファイルに追加してください:
| 変数 | 入手場所 |
|---|---|
BING_CONNECTION_ID |
Microsoft Foundryポータル → あなたのプロジェクト → 管理 → 接続リソース → あなたのBing接続 → 接続IDをコピー |
macOS上で次のようなエラーが出る場合:
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain
これはmacOSのPythonでシステムSSL証明書が自動的に信頼されない既知の問題です。以下の順で解決策を試してください:
オプション1: PythonのInstall Certificatesスクリプトを実行(推奨)
# インストールされているPythonのバージョン(例: 3.12 または 3.13)に3.XXを置き換えてください。
/Applications/Python\ 3.XX/Install\ Certificates.command
オプション2: ノートブックで connection_verify=False を使う(GitHub Modelsノートブック限定)
レッスン6のノートブック(06-building-trustworthy-agents/code_samples/06-system-message-framework.ipynb)には既にコメントアウトされた回避策が含まれています。証明書エラーがでたら connection_verify=False のコメントアウトを外してください:
client = ChatCompletionsClient(
endpoint=endpoint,
credential=AzureKeyCredential(token),
connection_verify=False, # 証明書エラーが発生した場合はSSL検証を無効にしてください
)
⚠️ 警告: SSL検証を無効化する(
connection_verify=False)と証明書検証をスキップするためセキュリティが低下します。これは開発環境での一時的回避策としてのみ使い、本番環境では絶対に使用しないでください。
オプション3: truststore をインストールして使用
pip install truststore
その後、ネットワーク呼び出しの前にノートブックやスクリプトの冒頭に以下を追加してください:
import truststore
truststore.inject_into_ssl()
もしセットアップで問題があれば、Azure AI Community Discordに参加するか、Issueを作成してください。
これでコースのコードを実行する準備が整いました。AIエージェントの世界をさらに学んでください!
免責事項: 本書類は AI 翻訳サービス Co-op Translator を使用して翻訳されています。正確性を期していますが、自動翻訳には誤りや不正確な部分が含まれる可能性があることをご承知おきください。原文の原語版が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用により生じたいかなる誤解や解釈違いについても、当方は責任を負いかねます。