何時間も実行され、外部ツールを呼び出し、インフラストラクチャの障害に耐えなければならない AI エージェントには 永続的な実行 が必要です。これは、進行状況を自動的にチェックポイント処理し、中断したところから再開する機能です。 Durable Task Scheduler と Durable Task プログラミング モデルでは、このインフラストラクチャが提供され、状態管理、チェックポイント処理、分散調整が処理されるため、エージェント コードは必要ありません。
このプログラミング モデルでは、.NET、Python、Java、JavaScript/TypeScript の標準プログラミング コンストラクト (ループ、条件、エラー処理) を使用して、回復性に優れたステートフルなエージェント ワークフローを構築します。 ランタイムは状態を保持し、エラーから自動的に回復します。
Durable Task はエージェント フレームワークではありません。with Microsoft Agent Framework、LangChain、または直接 LLM API 呼び出しを含む任意の AI エージェント フレームワークで動作します。 エージェント ロジックに重点を置きます。Durable Task は、信頼性の高い実行を大規模に処理します。
この記事では、以下について説明します。
- 永続的な実行が AI エージェントに対して解決する運用環境の課題
- Durable Task プログラミング モデルでサポートされるエージェント ワークフロー パターン
- Durable Task テクノロジ スタックと、Azureの他のエージェント ワークフロー オプションとの比較
Tip
ビルドを開始する準備はできましたか? コード サンプルの Agentic アプリケーション パターン に移動するか、ターンキー統合用の Durable Task 拡張機能 (Microsoft Agent Framework を試してください。
耐久性のある実行が解決する生産上の課題
運用環境の AI エージェントは、永続的な実行が対処するいくつかの課題に直面しています。
- 実行時間の長いステートフル セッション — 人間のループ内対話、複数ステップの推論、ツール拡張ワークフローでは、エージェントを数時間、数日、または数週間アクティブな状態に保つことができます。 エージェントは、すべてのステップで保持する必要がある状態 (会話履歴、中間結果、保留中の決定) を蓄積します。
- 高価なトークン消費 — 大量の LLM トークンを処理すると、コストと時間がかかります。 レート制限により、ワークフローの途中でエージェントの能力が抑制されることがあります。 途中でエラーが発生した場合、トークンは既に消費され、既に費やされた時間は失われます。
- インフラストラクチャの中断 — コンピューティングの再起動、デプロイ、スケールイン イベント、および一時的な障害により、エージェント セッションがクラッシュする可能性があります。 復旧を行わない場合、エージェントは最初から再起動し、以前に費やしたすべてのトークンを再利用し、完了したすべての作業を繰り返す必要があります。
永続的な実行は、次の課題を解決します。
- 自動チェックポイント — Durable Task ランタイムは、永続的ストレージへのすべての状態遷移 (LLM 応答、ツール呼び出し結果、制御フローの決定) をチェックポイント処理します。
- 最後のチェックポイントからの再開 — 障害が発生すると、正常な VM で 実行が自動的に 再開されます。 完了した LLM 呼び出しが再度行われることはなく、トークンの消費と処理時間の両方が抑えられます。
- 組み込みの再試行 — バックオフを使用した構成可能な再試行ポリシーは、追加コードなしで LLM API、外部ツール、ダウンストリーム サービスからの一時的なエラーを処理します。
エージェンティックワークフローのパターン
Durable Task では、次の 2 つの大きなカテゴリに分類されるさまざまなエージェント ワークフロー パターンがサポートされています。
- 決定論的ワークフロー: コードによって制御フローが定義されます。 標準のプログラミングコンストラクトを使用して、分岐、並列処理、エラー処理などの一連の手順を記述します。 LLM はワークフロー内のステップとして呼び出されますが、フロー全体は制御されません。
- エージェント向けワークフロー (エージェント ループ): LLM によって制御フローが駆動されます。 エージェントは、呼び出すツールを、どの順序で、いつタスクが完了するかを決定します。 ツールと手順は指定しますが、実行時にエージェントによって実行パスが決定されます。
どちらのカテゴリも永続的な実行の利点があり、同じアプリケーションで組み合わせることができます。 サポートされているパターンとコード サンプルの詳細については、 Agentic アプリケーション パターンに関する記事を参照してください。
Azureでのエージェント ワークフロー オプションの比較
Durable Task テクノロジ スタックに加えて、Azureでエージェント ワークフローを構築するためのオプションがいくつかあります。 各オプションには、制御フロー、プログラミング言語のサポート、AI フレームワーク統合、ホスティング、状態管理、対象ユーザーの要件に応じて、異なる長所とトレードオフがあります。 次の表は、ニーズに合った表を決定するのに役立ちます。
| 能力 | 永続的なタスク | Agent Framework ワークフロー | Logic Apps エージェント ループ |
|---|---|---|---|
| 制御フロー | 命令型 (コード定義) | グラフ ベース (コード定義) | 宣言型 (デザイナー/JSON) |
| 言語 | .NET、Python、Java、TypeScript/JS | .NET、Python | ビジュアル デザイナー/JSON |
| AI フレームワークのサポート | Any (Semantic Kernel、LangChain、AutoGen、Direct API) | エージェント フレームワーク用に最適化 | 組み込みの AI コネクタ |
| ホスティング | Azure Functionsまたは任意のホスト | 任意; ファースト クラス の Foundry ホステッド エージェント | Logic Apps マネージド サービス |
| 状態ストレージ | Durable Task Scheduler (マネージド) | 持ち込み (チェックポイント マネージャー) | Logic Apps ランタイム (マネージド) |
| エージェント向けワークフロー | 独自に構築するか、Durable Task 拡張機能を活用する | 組み込み | エージェント ループ アクション |
| 対象読者 | バックエンド開発者 | アプリケーション開発者 | 統合/ローコード ユーザー |
| 実行時間が長いタスク | ファーストクラス (数時間から無限へ) | 開発者が管理するチェックポイント処理を通じて | ステートフル ワークフローのみ (最大 90 日間) |
| 障害復旧 | 自動 | 手動 | 自動 |
| 可観測性 | Scheduler ダッシュボード、OpenTelemetry | OpenTelemetry, カスタム視覚化 | Azure Monitor、Logic Apps の診断 |