メインコンテンツまでスキップ

スーパーバイザーエージェントの長期タスク

このページでは、 Supervisor Agentでタスク継続を使用して長時間実行タスクを処理する方法について説明します。

スーパーバイザーエージェントが、多くのツール呼び出しを必要とする複雑なタスクを処理する場合、そのタスクは単一のAPIリクエストで処理できる時間よりも多くの時間を必要とする可能性があります。 この問題を解決するために、スーパーバイザーは長時間実行タスクモードをサポートしており、長時間のタスクを自動的に複数のリクエスト/レスポンスサイクルに分割することで、エージェントがタイムアウトすることなく作業を継続できるようにします。

仕組み

  1. 担当者は、必要に応じてツールや推論を駆使しながら、あなたのリクエストの処理を開始します。
  2. リクエストがタイムアウトになる前に、スーパーバイザは実行を停止し、ストリーミング レスポンスでtask_continue_requestイベントを発行します。
  3. タスクを再開するには、アプリケーションはtask_continue_requestと対応するtask_continue_responseの両方を含むフォローアップ要求を送信します。
  4. 監督者は中断したところから引き継ぎ、作業を続行する。このサイクルは、タスクが完了するまで必要に応じて繰り返されます。

Playgroundで長時間実行されるタスクを使用する

AI Playgroundでは、Playgroundがタスクの継続を自動的に処理します。担当者がさらに時間を必要とする場合、Playgroundがお客様に代わって継続応答を送信します。あなたは、途切れることのない一つの会話を目にする。

APIでタスクの継続を処理する

長時間実行されるタスクを有効にするには、リクエストのdatabricks_options"long_task": trueを含めてください。

JSON
{
"input": [{ "role": "user", "content": "Your message here" }],
"databricks_options": {
"long_task": true
},
"stream": true
}

ストリーミングAPI直接使用する場合、アプリケーションはtask_continue_requestイベントを検出し、タスクを続行するためにフォローアップ リクエストを送信する必要があります。

ストリーミング応答内のチェックポイントイベントを検出する

スーパーバイザーは、処理を続行する必要がある場合に、次のようなイベントを発行します。

JSON
{
"type": "response.output_item.done",
"item": {
"type": "task_continue_request",
"id": "continue_<unique-id>",
"step": 16
},
"id": "resp_<response-id>"
}

stepフィールドは、これまでに完了したツール呼び出しステップの総数を示します。

再開のフォローアップ依頼を送信

次のリクエストのメッセージに、元のtask_continue_requestとそれに対応するtask_continue_responseを含めてください。

JSON
{
"messages": [
"...previous messages...",
{
"type": "task_continue_request",
"id": "continue_<unique-id>",
"step": 16
},
{
"type": "task_continue_response",
"continue_request_id": "continue_<unique-id>"
}
],
"databricks_options": {
"long_task": true
},
"stream": true
}

continue_request_idtask_continue_requestidと一致しなければなりません。

既知の制限事項

  • 単一のツール呼び出しまたはモデル呼び出しの実行時間がAPIのタイムアウト時間を超えた場合、継続チェックポイントはステップ間でのみトリガーされるため、リクエストがタイムアウトする可能性があります。
  • 個々のツール呼び出しやモデル呼び出し中のタイムアウトを含む、長時間実行されるエージェントの完全なサポートは、まだ利用できません。