スーパーバイザーエージェントの長時間実行タスク
このページでは、Supervisor Agentのタスク継続機能を使用して、時間のかかるタスクを処理する方法について説明します。
スーパーバイザー エージェントが多くのツール呼び出しを必要とする複雑なタスクに取り組む場合、タスクには単一の API リクエストで許可されているよりも多くの時間が必要になる場合があります。これを処理するために、スーパーバイザーは長時間実行されるタスク モードをサポートしており、これにより、長いタスクが複数のリクエスト/レスポンス サイクルに自動的に分割され、エージェントがタイムアウトすることなく作業を続行できます。
仕組み
- スーパーバイザーはリクエストの処理を開始し、ツールを呼び出し、必要に応じて推論します。
- リクエストがタイムアウトする前に、スーパーバイザーは実行を停止し、ストリーミング応答で
task_continue_requestイベントを発行します。 - タスクを再開するには、アプリケーションは
task_continue_requestと対応するtask_continue_responseの両方を含むフォローアップリクエストを送信します。 - スーパーバイザーは中断したところから再開し、作業を続行します。このサイクルは、タスクが完了するまで必要に応じて繰り返されます。
Playground で長時間実行されるタスクを使用する
AI Playground では、Playground がタスクの継続を自動的に処理します。エージェントがさらに時間が必要な場合、Playground があなたに代わって継続応答を送信します。単一の、中断されない会話が表示されます。
APIでのタスク継続を処理します
長時間実行されるタスクを有効にするには、リクエストの databricks_options に "long_task": true を含めます。
{
"input": [{ "role": "user", "content": "Your message here" }],
"databricks_options": {
"long_task": true
},
"stream": true
}
ストリーミング API を直接使用する場合、アプリケーションは task_continue_request イベントを検出し、タスクを続行するためにフォローアップリクエストを送信する必要があります。
ストリーミング応答でチェックポイントイベントを検出
スーパーバイザーは、続行する必要がある場合に、次のようなイベントを発行します。
{
"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 を含めます。
{
"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_idは、task_continue_requestのidと一致する必要があります。
既知の制限事項
- 単一のツール呼び出しまたはモデル呼び出しがAPIタイムアウトよりも長く実行された場合、継続チェックポイントはステップ間でのみトリガーされるため、要求は依然としてタイムアウトする可能性があります。
- 個々のツール呼び出しやモデル呼び出し中のタイムアウトを含む、完全な長時間実行エージェント サポートは、まだ利用できません。