Azure Functions でホストされるスキル

Azure Functions Hosted Skillsは、関数アプリにAI推論を追加できます。 .agent.mdファイルでは、自然言語の指示、トリガー設定、オプションのツールバインディングを提供します。 イベントが発生すると、ランタイムはモデルを呼び出し、モデルが要求するツールを実行し、結果を返します。 他の関数型アプリと同じように展開します。

まずは、目標に合った体験を選びましょう。

最新かつ最も包括的なランタイムに関するドキュメントについては、Azure Functions Agents Runtimeを参照してください。

Important

Azure Functions Hosted Skillsは現在プレビュー中です。 機能、構成名、およびサポートされているコネクタは、一般公開前に変更される可能性があります。

ホストスキルとは、.agent.mdファイル内で定義されたAI駆動の単一の作業単位です。 各ホストスキルは1つのAzure関数にマッピングされます。 スキル は、それ単独では、ホストされるスキルが必要に応じて読み込める、SKILL.md ファイルに保存された再利用可能な Markdown のガイダンスを指します。

ホストされたスキルを使うタイミング

ビジネスイベントでAIの推論が必要な場合は、Azure Functionsのホストスキルを活用しましょう。 例えば次が挙げられます。

  • 受信メールを仕分けする。 共有郵便受けに苦情が届くとコネクタトリガーが発動します。 ホストスキルはメッセージを読み取り、深刻度を分類し、適切なサポートキューにルーティングします。
  • 新規CRMリードを充実させる。 リードがSalesforceまたはDynamics 365に追加されるとコネクタトリガーが発動します。 ホストされたスキルはリードに関するコンテキストをウェブ検索し、割り当てられた営業担当者に要約を送信します。
  • データ変更の検証。 収益レコードが更新されるとブロブまたはデータベーストリガーが発動します。 ホストされたスキルは収益が閾値を下回ったかどうかを確認し、説明を作成し、レビューワークフローを開始します。
  • ドメイン固有のMCPツールを提供します。 外部エージェントやエージェントハーネスはHTTPまたはMCPを通じてホストされたスキルを呼び出します。 ホストされたスキルは、ストレージやデータベース内のデータにAIロジックを適用し、構造化された応答を返すため、他のAIクライアントが利用できるスマートでドメイン固有のツールとして機能します。

イベント駆動型トリガー、ツールを使ったAI推論、Azure Functionsの運用機能(マネージドアイデンティティ、モニタリング、ゼロへのスケール、仮想ネットワーク統合)が必要な場合、ホスティングスキルは適しています。

なぜAIアプリでFunctionsを使うのか?

本番のAIワークロードには、プロンプトやモデル以上のものが必要です。 作業を開始する、外部システムを呼び出す、会話履歴を保持する、信頼できないコードを安全に実行する、シークレットなしで認証する、テレメトリを出力する、オンデマンドでスケーリングする信頼性の高い方法が必要です。

Functionsはこれらの運用上の課題に対してイベント駆動型の計算モデルを提供します。 Azure Functionsのホストスキルは、同じモデルをAIコードに適用します。 そのメリットは次のとおりです。

  • ホストされている各スキルは1つの .agent.md ファイルです。 宣言的構成と自然言語命令は共存しています。 各ファイルは1つのAzure関数にマッピングされます。
  • イベントはホスト型スキルを開始します。 関数はスケジュール、HTTPリクエスト、キューメッセージ、ブロブの変更、イベントグリッドイベント、Service Busメッセージ、その他サポートイベントからホストスキルを起動します。
  • 機能は、必要なときにコードを使用して最初に構成されます。 ホストされたスキルは、リモート MCP サーバー、コネクター名前空間でホストされた MCP サーバー、再利用可能なスキル、サンドボックス化されたコード実行を利用するように構成できます。 アプリ固有のロジック用に自分でPythonベースのツールを書いてみてください。
  • Azure Functionsホスティングは内蔵されています。 Azure Functionsのホストスキルは、Flex Consumption、Premium、専用(App Service)プランをサポートしています。 Flex Consumptionはスケール・トゥ・ゼロ、秒単位請求、自動スケーリングを提供します。 すべてのプランはマネージドID、仮想ネットワーク統合、アプリケーションインサイトをサポートしています。
  • 配管の運用はあなたの代わりに対応します。 ランタイムはホストされたスキル発見、トリガー登録、ツールアセンブリ、セッション履歴、オプションの組み込みエンドポイントを管理します。

他のMicrosoft AIプラットフォームとも連携

Azure Functionsのホスティングスキルは、他のMicrosoft AI製品と補完的であり、併用可能です。 彼らの得意分野は、Azure Functions上でクラウドホスト型のイベント駆動型インテリジェント機能を構築し、親しみやすいプログラミングモデルで構築することです。 ホストスキルはHTTPやMCPを通じて他のアプリケーション、エージェント、エージェントハーネスで利用できる機能を公開できます。

あなたのシナリオに最適なAzure機能を選択してください:

Scenario Option
決定論的関数を別のAIクライアントのツールとして公開する Azure Functions MCP 拡張機能
人による承認を含む、長時間実行される多段階のオーケストレーション Durable Functions
カスタムホスティングなしでAIエージェントを作成・管理 Microsoft FoundryまたはCopilot Studio

Projectの定義

Azure Functionsのホスト型スキルアプリは、ホストされたスキルプロジェクトファイルと一緒にデプロイされた標準的なPython v2関数アプリプロジェクトです。 以下のプロジェクトファイルは、Python関数アプリで常に必要です:

File Purpose
function_app.py create_function_app() をインポートし、構成されたAzure Functions アプリを返します。
host.json Azure Functions ホストを構成します。
requirements.txt ホストされたSkillsランタイムパッケージと、アプリ固有のPython依存関係が含まれています。

詳細については、PythonアプリのAzure Functions開発者参考ガイドをご覧ください。

ホストされたスキルプロジェクトファイル

ランタイムはこれらのファイルやフォルダを発見し、アプリプロジェクトとともにデプロイします:

ファイルまたはフォルダー Purpose
*.agent.md ホストスキルを定義します。 YAMLフロントマターはホストされたスキルを設定し、マークダウンの本文は指示となります。 プロジェクトには少なくとも1つの .agent.md ファイルが必要です。
agents.config.yaml (任意)モデル、タイムアウト、サンドボックス設定などのアプリ全体のランタイムデフォルトを定義します。
mcp.json ホストスキルがツールとして使用できるリモートHTTP MCPサーバーを定義し、メール送信やTeamsの操作などの操作のためのコネクタツールも含まれます。
tools/ (任意)MCPサーバー、接続、スキル、サンドボックス実行などで提供されていない機能を提供するために作成したカスタムPythonツールが含まれています。
skills/ (任意) ホストされたスキルが必要に応じて読み込める、再利用可能な SKILL.md プロンプト アセットが含まれています。

各 .agent.md ファイルは、YAML フロントマターの後に Markdown の指示が続く構成になっています。 この例は、毎日午後3時(UTC)に実行されるタイマートリガー型ホストスキルを定義しています:

---
name: Daily Tech News Email
description: Fetches top tech news and emails a summary daily.

trigger:
  type: timer_trigger
  args:
    schedule: "0 0 15 * * *"
---

You are a news assistant. When triggered, do the following:

1. Gather today's top technology news from reputable sources.
1. Summarize the stories in a concise HTML email body.
1. Email the summary to $TO_EMAIL with the subject "Daily Tech News Summary".

フロントマターにはホストスキルの発動方法が記載されています。 マークダウン本文は、実行時にランタイムがモデルに渡す命令ブロックです。 環境変数の置換により、命令と構成値は、 $TO_EMAILなどのアプリ設定を参照できます。

各 .agent.md ファイルは1つのホストスキルを定義しています。 ファイル名はAzure関数名と組み込みエンドポイントのルートセグメントを派生させます。 nameフィールドはログ、ラベル、ドキュメントの表示名です。

.agent.mdファイルフィールド、アプリ設定オプション、変数置換ルールの全リストについては、Azure Functions hosted skills referenceをご覧ください。

ホストされたスキル キャンバスで作成してテストする

ホスト型スキルプレビューの一環として、Azure FunctionsはGitHub Copilotにオプションのホスト型スキルキャンバスを提供します。 キャンバスはインタラクティブなサーフェスで、あなたとGitHub Copilotはスターターアプリを作成し、タイマー、HTTP、またはキューのイベントコントロールを選択し、スキル指示を編集し、対応モデルを選択し、ローカルのFunctionsホストを起動し、トリガーを呼び出し、アクティビティと結果をチェックできます。

キャンバスから生成されたプロジェクトをVisual Studio Codeで開くか、組み込みのDeploy to Azureアクションを使えます。 展開アクションはAzure Developer CLI(azd)を使用します。

キャンバスは開発ワークフローを案内し可視化しますが、ホストされたスキルランタイムやプロジェクトフォーマットの代わりにはなりません。 キャンバス上で作成されたアプリは、ホストされたスキルプロジェクトファイルを使用する標準的なPython v2関数アプリのままです。 キャンバスの外で、アプリの編集、実行、デプロイを続けることができます。

キャンバス クイックスタートは、タイマーでトリガーされるローカルでホストされるスキルの作成、実行、検査に焦点を当てています。 ガイド付きワークフローについては、「Azure Functionsのホストスキルキャンバスでホストされたスキルを構築・テストする」をご覧ください。

アプリの起動プロセス

Functionsホストがアプリを読み込むと、 create_function_app メソッドはプロジェクト内の .agent.md ファイル、MCPサーバー、スキル、カスタムツールを発見します。 設定を検証し、各ホストスキルのツールを組み立て、必要なトリガーやエンドポイントを登録します。

トリガーが発動すると、ランタイムは解決された命令、モデル、ツール、セッション履歴とともにホストされたスキルを構築し、その後実行します。

イベントをトリガーとしてホスト型スキルを起動する

ランタイムはアプリ内で複数のトリガーをサポートしていますが、 .agent.md ファイルごとにトリガーは1つだけです。 トリガー定義には、 type と args オブジェクトがあります。 typeはトリガーバインディングを特定し、argsはどのイベントがホストスキルを開始するかを設定するトリガー固有の設定を含みます。

一般的なトリガー パターンは次のとおりです。

Pattern 例
HTTP 要求を受信し、ツールを呼び出し、構造化された応答を返します。
スケジュール 日次レポート、ダイジェスト、クリーンアップ、または調整ワークフローを実行します。
キューまたはメッセージ モデルの推論またはツール呼び出しを必要とする作業項目を処理します。
ストレージイベントまたはデータベースイベント 変更されたファイル、レコード、またはイベントに対応します。
コネクタトリガー 管理型コネクター(Teamsメッセージ、Outlookメール、コネクターがサポートするカレンダーイベントなど)からのイベントに反応します。

トリガー設定の詳細、サポート型、args参照については、ホストされたスキルリファレンスAzure Functionsを参照してください。

対応AIツール

Azure Functionsのホストスキルは、いくつかの種類のツールをサポートしています。 まずは構成済みの機能を使用し、それらのオプションに収まらないアプリ固有のロジックにはカスタム Python ツールを使用します。

リモート MCP サーバー

mcp.jsonでリモートHTTPまたはストリーム可能なHTTP MCPサーバーを定義します。 ランタイムはこれらのサーバーを発見し、すべてのホストスキルにツールを提供します。 ホストスキルが他のサービスでホストされているツールを呼び出す必要がある場合や、アプリをまたぐ機能を組み合わせる必要がある場合には、リモートMCPサーバーを活用しましょう。

Azure コネクタ

コネクターは、ホストされたスキルをカスタムAPIクライアントコードなしで外部サービスと連携させてくれます。 コネクターネームスペースは、Microsoft 365 Outlook、Teams、Salesforce、SAP、SQLなどのサービスのための接続、トリガー、MCPサーバーをホストします。 コネクタトリガーを使って外部イベントからホストされたスキルを開始し、コネクタMCPツールを使ってホストされたスキル指示からサービスアクションを呼び出します。

スキル

再利用可能なプロンプトアセットを skills/ フォルダの下に保存してください。 各スキルフォルダには名前、説明、マークダウンの指示が記載された SKILL.md ファイルが含まれています。 ランタイムは自動的にスキルを発見し、ホストされたスキルに利用可能にします。 スキルは基本的な指示を簡潔に保ちつつ、必要に応じてドメイン固有のガイダンスを提供できます。

サンドボックス実行

ランタイムはAzure Container Apps動的セッションを活用して、ホストされたスキルにexecute_pythonツールを付与できます。 このツールはPythonを孤立したセッションプールで実行し、コード実行やデータ分析に便利です。 セッションプールエンドポイントを agents.config.yamlで設定してください。

カスタム Python ツール

アプリ固有の機能はカスタムPythonツールを使ってください。 .pyフォルダにtools/ファイルを追加し、実行時パッケージの@toolで関数を装飾します。 ランタイムはこれらのツールを自動的に発見し登録します。

各ツールタイプの設定詳細、フィールドテーブル、コード例については、Azure Functions Hosted skills referenceを参照してください。

動的ワークフロー

動的なワークフローにより、サポートされたAIタスクは、ワークフローに安全なツール呼び出し、サブエージェントタスク、待機からなる持続的で多段階の計画を開始できます。 彼らはプログラムツール呼び出しパターンをDurable Functionsで拡張し、タスクを分散させたり、独立したスペシャリストを実行させたり、耐久タイマーを待機したり、作業者の再起動を乗り越えたり、大きな中間結果を最終的な要約が準備されるまで会話から除外したりできるようにしています。

現在の実験的なv1表面では、独立して実行可能な .agent.md ファイルでワークフローを有効にしてください。 ワークフロータスクは、明示的に@workflow_toolで装飾したPython関数や、workflows.subagentsを通じて付与する専門的なタスクを呼び出すことができます。 詳細については、Azure Functionsのホストスキルにおける動的ワークフローをご覧ください。

セッションと状態

マルチターン対話にはセッション履歴が必要です。 Azureでは、ランタイムは関数アプリのAzureWebJobsStorageアカウントを通じてセッション履歴をBlob Storageに保存します。 ローカル開発の場合、ランタイムはファイルベースのセッション履歴にフォールバックされます。 サンドボックス実行はセッション認識も備えており、無関係な実行には分離されたセッションを使用します。

Observability

azure-functions-agents-runtime バージョン 0.1.0b6 以降、ランタイムには、現在も活発に開発中で今後変更される可能性があるオブザーバビリティ機能セットが含まれています。

最新の設定詳細、テレメトリフィールド、使用ガイダンスについては、ランタイムリポジトリのドキュメントをご利用ください: