Pular para o conteúdo principal

Tarefas de execução prolongada do Agente Supervisor

Esta página explica como lidar com tarefas de longa duração usando a continuação de tarefas com Supervisor Agent.

Quando um agente supervisor trabalha em tarefas complexas que exigem muitas chamadas de ferramenta, a tarefa pode precisar de mais tempo do que uma única solicitação de API permite. Para lidar com isso, o supervisor oferece suporte ao modo de tarefa de longa execução, que divide automaticamente tarefas longas em múltiplos ciclos de solicitação/resposta para que o agente possa continuar trabalhando sem atingir o tempo limite.

Como funciona

  1. O supervisor começa a processar sua solicitação, invocando ferramentas e raciocínios conforme necessário.
  2. Antes que a solicitação expire, o supervisor pausa a execução e emite um evento task_continue_request na resposta de transmissão.
  3. Para retomar a tarefa, seu aplicativo envia uma solicitação de acompanhamento que inclui tanto o task_continue_request quanto um task_continue_response correspondente.
  4. O supervisor retoma de onde parou e continua trabalhando. Este ciclo se repete conforme necessário até que a tarefa seja concluída.

Use tarefas de longa duração no Playground

No AI Playground, o Playground lida automaticamente com a continuação da tarefa. Quando o agente precisa de mais tempo, o Playground envia a resposta de continuação em seu nome. É exibida uma conversa única e ininterrupta.

Lidar com a continuação de tarefas na API

Para habilitar tarefas de longa duração, inclua "long_task": true em databricks_options de sua solicitação:

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

Ao usar a API de transmissão diretamente, sua aplicação deve detectar eventos task_continue_request e enviar uma solicitação de acompanhamento para continuar a tarefa.

Detectar o evento de checkpoint na resposta de transmissão

O supervisor emite um evento como o seguinte quando precisa continuar:

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

O campo step indica o número total de os passos de chamada de ferramenta concluídas até agora.

Enviar uma solicitação de acompanhamento para retomar

Inclua o task_continue_request original e um task_continue_response correspondente nas mensagens de sua próxima solicitação:

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
}

O continue_request_id deve corresponder ao id de task_continue_request.

Limitações conhecidas

  • Se uma única chamada de ferramenta ou chamada de modelo for executada por mais tempo do que o tempo limite da API, a solicitação ainda poderá atingir o tempo limite porque o ponto de verificação de continuação só pode ser acionado entre os passos.
  • O suporte completo para agente de longa duração, incluindo tempos limite durante chamadas de ferramenta individuais ou chamadas de modelo, ainda não está disponível.