Foundryで単一エージェントを作る|モデル呼び出しとの違い・作り方【AI-901】

Foundryで単一エージェントを作る(役割・ツールを保存して一貫動作)|Azure資格の森 AI-901 Azure AI Fundamentals
無料公式シラバス(AI-901)準拠|ドメイン2「Foundryで実装する」。今回はいよいよAIエージェント。役割を“保存”して、いつも同じ振る舞いで呼べるAIを作ります。

これまでは毎回モデルに役割(システムプロンプト)を書いて送っていました。今回作るエージェントは、その役割・指示・ツールをあらかじめ保存しておき、いつも同じ振る舞いで呼び出せるAIです。AI-901シラバスの「単一エージェントソリューションを作成してテストする」に対応し、上位資格AI-103(エージェント開発)の入口にもなる重要テーマです。

名札とツールベルトを身につけたAIエージェントのロボットが、役割とツールを備えて準備できているイメージ図

「エージェント」とは?(ただのモデル呼び出しとの違い)

ただのモデル呼び出し(毎回役割を書いて送る使い捨て)と、エージェント(役割・指示・ツールを保存していつも同じ振る舞いで呼べる)の違いの図
  • ただのモデル呼び出し:毎回、役割や指示を書いて送る使い捨て。便利だけど、同じ設定を毎回くり返す必要があります。
  • エージェント:役割(instructions)・モデル・ツールなどを“保存”しておき、名前で呼ぶだけでいつも同じ振る舞い。さらにツールを使って“行動”もできます。

つまりエージェントは、設定済み・名前つきのAI担当者のようなもの。一度作れば、何度でも一貫した応答が得られます。

エージェントを作って使う流れ

エージェントを作って使う流れ:①モデルと指示でエージェントを作成 ②会話を作る ③エージェントに質問する ④同じ会話で続けて聞く(履歴つき)

ステップ①:エージェントを作る(コード)

モデル指示(instructions)を決めて、名前をつけて作成します。

from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import PromptAgentDefinition

PROJECT_ENDPOINT = "ここに自分のエンドポイント"
AGENT_NAME = "MyAgent"

project = AIProjectClient(endpoint=PROJECT_ENDPOINT, credential=DefaultAzureCredential())

# モデルと指示(instructions)でエージェントを作成
agent = project.agents.create_version(
    agent_name=AGENT_NAME,
    definition=PromptAgentDefinition(
        model="gpt-5-mini",
        instructions="あなたは一般的な質問に答える親切なアシスタントです",
    ),
)
print(agent.id, agent.name, agent.version)   # 作成されたエージェントの情報
  • PromptAgentDefinition:エージェントの中身(モデル+指示)の定義。
  • create_version:その定義でエージェントを作成。一度作れば名前で呼べます。

ステップ②〜④:エージェントと会話する(コード)

作ったエージェントを、名前で指定して呼びます。会話(conversation)を作っておくと、履歴を覚えたまま続けられます。

openai = project.get_openai_client()

# 会話を作る(履歴の入れ物)
conversation = openai.conversations.create()

# エージェントに質問する(名前で指定)
response = openai.responses.create(
    conversation=conversation.id,
    extra_body={"agent_reference": {"name": AGENT_NAME, "type": "agent_reference"}},
    input="フランスの面積は?",
)
print(response.output_text)

# 同じ会話で続けて聞く(履歴を覚えている)
response = openai.responses.create(
    conversation=conversation.id,
    extra_body={"agent_reference": {"name": AGENT_NAME, "type": "agent_reference"}},
    input="では首都は?",
)
print(response.output_text)        # 「フランスの首都は…」と続けて答えてくれる
⚠️ つまずきポイント:エージェントは名前(agent_reference)で指定します。会話(conversation)を同じにすると履歴が続き、別にすると“はじめまして”からになります。「同じ会話=記憶が続く」と覚えましょう。
🧪 やってみよう
instructions を「あなたは関西弁のガイドです」などに変えて作り直すと、性格の違うエージェントができます。ポータルのBuild → Agents → Create agent からは、コードなしでも同じことが試せます。
📝 AI-901 試験のポイント

  • エージェント=役割・指示・ツールを“保存”して、いつも同じ振る舞いで呼べるAI(使い捨てのモデル呼び出しとの違い)
  • 作成はモデル+instructionsを定義して作る。呼ぶときは名前で指定
  • 同じ会話(conversation)を使うと履歴が続く=多ターン

確認クイズ

Q1. 「ただのモデル呼び出し」と比べた、エージェントの特徴はどれ?

A. 役割・指示・ツールを保存し、いつも同じ振る舞いで呼べる
B. 毎回ゼロから役割を書く必要がある
C. モデルを使わない
D. 1回しか使えない

Q2. エージェントを作るとき、最低限決めるものは?

A. モデルと指示(instructions)
B. temperature だけ
C. エンドポイントのパスワード
D. 画像ファイル

Q3. 同じエージェントとの会話で「前の話を覚えたまま」続けるには?

A. 同じ会話(conversation)を使う
B. 毎回エージェントを作り直す
C. model を変える
D. エンドポイントを変える

Q4. コードでエージェントを呼ぶとき、どれで「どのエージェントか」を指定する?

A. agent_reference(エージェントの名前)
B. temperature
C. print
D. DefaultAzureCredential

よくある質問(FAQ)

Q. エージェントとチャット(前回)の違いは?

A. 前回は毎回役割を送る使い捨ての呼び出し。エージェントは役割・ツールを保存して名前で呼べる点が違います。何度も同じ役割で使うなら、エージェントが便利です。

Q. ツールも使えますか?

A. はい。エージェントには、検索や関数などのツールを持たせて“行動”させられます。本格的なエージェント開発は上位資格AI-103のテーマです。

Q. コードなしでも作れますか?

A. はい。ポータルのBuild → Agents → Create agent から、名前と指示を入れて作成できます。

まとめ

  • エージェント=役割・指示・ツールを保存し、名前で呼べる一貫したAI(使い捨て呼び出しとの違い)
  • 作成はモデル+instructions。呼び出しは名前(agent_reference)で指定
  • 同じ会話(conversation)で履歴が続く=多ターン
🎯 次のステップ

※本記事はMicrosoft公式のFoundryクイックスタート(azure-ai-projects 2.x/エージェント作成)に基づき、エンジニアKが作成しています。仕様は更新されるため、最新は Microsoft公式 をご確認ください。

コメント

タイトルとURLをコピーしました