Agent Bricks: Supervisor Agent long-running tasks
This page explains how to handle long-running tasks using task continuation with Agent Bricks: Supervisor Agent.
When a supervisor agent works on complex tasks that require many tool calls, the task might need more time than a single API request allows. To handle this, the supervisor supports long-running task mode, which automatically breaks long tasks into multiple request/response cycles so the agent can continue working without timing out.
How it works
- The supervisor starts processing your request, calling tools and reasoning as needed.
- Before the request times out, the supervisor pauses execution and emits a
task_continue_requestevent in the streaming response. - To resume the task, your application sends a follow-up request that includes both the
task_continue_requestand a correspondingtask_continue_response. - The supervisor picks up where it left off and continues working. This cycle repeats as needed until the task is complete.
Use long-running tasks in Playground
In AI Playground, Playground automatically handles task continuation. When the agent needs more time, Playground sends the continuation response on your behalf. You see a single, uninterrupted conversation.
Handle task continuation in the API
To enable long-running tasks, include "long_task": true in the databricks_options of your request:
{
"input": [{ "role": "user", "content": "Your message here" }],
"databricks_options": {
"long_task": true
},
"stream": true
}
When using the streaming API directly, your application must detect task_continue_request events and send a follow-up request to continue the task.
Detect the checkpoint event in the streaming response
The supervisor emits an event like the following when it needs to continue:
{
"type": "response.output_item.done",
"item": {
"type": "task_continue_request",
"id": "continue_<unique-id>",
"step": 16
},
"id": "resp_<response-id>"
}
The step field indicates the total number of tool call steps completed so far.
Send a follow-up request to resume
Include the original task_continue_request and a matching task_continue_response in the messages of your next request:
{
"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
}
The continue_request_id must match the id from the task_continue_request.
Known limitations
- If a single tool call or model call runs longer than the API timeout, the request might still time out because the continuation checkpoint can only be triggered between steps.
- Full long-running agent support, including timeouts during individual tool calls or model calls, is not yet available.