変更要約: 各節に図(figure)を追加=cert-figure-retrofit。AI-103 第3章を新規作成(エージェント実装=Foundry Agent Service、構成=モデル+指示+知識+ツール、ツール種別=関数呼び出し/ファイル検索/コードインタープリター、スレッドとrun・multistep reasoning、マルチエージェント=オーケストレーター/ハンドオフ/並列、安全策=最小権限/human-in-the-loop/監視・評価/Content Safety)
3.1エージェントの実装
Foundry Agent Service でエージェントを実装する流れ——モデル・指示・知識(RAG)・ツール(関数呼び出し)の構成、複数ステップの推論(multistep reasoning)、スレッド/実行の管理——を開発者の視点で理解します。
第2章の関数呼び出しは、エージェントの土台でした。AI-103 では Foundry Agent Service を使って、目標を受け取り自律的に複数ステップをこなすエージェントを実装・運用します。エージェントは「モデル+指示+知識(RAG)+ツール」で構成し、実行時には スレッド(会話の文脈)と 実行(run) を通じて、モデルが「考える→ツールを呼ぶ→結果を見る→次を決める」という multistep reasoning を繰り返します。開発者は、各ツールの定義・権限・検証を設計します。
3.1.1エージェントが使うツール
- 関数呼び出し(custom function):開発者が用意した独自関数(在庫検索・予約 API・社内システム連携など)。
- ファイル検索/知識ツール:接続したデータ(Azure AI Search 等)をグラウンディングの根拠として検索する。
- コードインタープリター:計算やデータ処理をコード実行で行う組み込みツール。
- 組み込みツール:Web 連携や特定サービス連携など、用途別に用意されたツール群。
3.1.2スレッドと実行(run)
エージェントの会話は スレッド に蓄積され、ユーザーのメッセージごとに 実行(run) が走ります。1つの run の中で、エージェントは必要に応じてツール呼び出しを行い、その結果(tool output)を受け取って推論を続け、最終的な応答を返します。ツールがアプリ側の関数の場合、run は「ツール呼び出し待ち」状態になり、アプリが関数を実行して結果を戻すと再開します。開発者はこのライフサイクル(作成→ツール実行→完了)を扱い、失敗時の再試行やタイムアウトも設計します。
頻出:
①「Foundry でエージェントを作る/動かす」=Foundry Agent Service。
②エージェント構成=モデル+指示+知識(RAG)+ツール。
③「自前の処理を呼ぶ」=関数呼び出し(custom function)、「接続データを根拠に検索」=ファイル検索/知識ツール、「計算/コード実行」=コードインタープリター。
④会話の文脈=スレッド、1ターンの処理=run、アプリ関数は run がツール実行待ちになり結果を戻して再開。
混同・注意:
①知識(RAG・何を知るか)とツール(関数・何ができるか)は別。
②関数呼び出し(自前関数)とコードインタープリター(組み込みのコード実行)を取り違えない。
③アプリ側ツールは、モデルが要求を返すだけで実行と検証はアプリの責任——run は結果を戻すまで待つ。
④エージェントは自律実行ゆえ、ツールの権限は最小化する(第1章 RBAC と一貫)。
3.1.3この節のまとめ
- Foundry Agent Service で「モデル+指示+知識(RAG)+ツール」のエージェントを実装
- ツール:関数呼び出し(自前)/ファイル検索・知識/コードインタープリター/組み込み
- 実行:スレッドに文脈、run で multistep reasoning。アプリ関数は run が待機→結果を戻して再開
- 権限最小化・失敗時の再試行/タイムアウトを設計(自律実行の統制)
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. Microsoft Foundry でエージェントを構築・運用するためのサービスはどれですか?
Q2. エージェントが計算やデータ処理をコード実行で行うための組み込みツールはどれですか?
Q3. エージェントの会話の文脈が蓄積される単位はどれですか?
Q4. アプリ側の関数をツールに使う場合、実行(run)と開発者の責任の関係として正しいものはどれですか?
Q5. エージェントが社内文書など接続データを根拠として検索するために使うツールはどれですか?
Q6. エージェントの「知識」と「ツール」の違いとして正しいものはどれですか?

