Tâches longues de l’Agent de supervision

Cette page explique comment gérer des tâches longues à l’aide de la continuation des tâches avec l’agent de supervision.

Lorsqu’un agent de superviseur travaille sur des tâches complexes nécessitant de nombreux appels d’outils, la tâche peut nécessiter plus de temps qu’une seule requête d’API. Pour gérer cela, le superviseur prend en charge le mode tâche de longue durée, ce qui interrompt automatiquement les tâches longues en plusieurs cycles de requête/réponse afin que l’agent puisse continuer à travailler sans délai d’attente.

Fonctionnement

  1. Le superviseur commence à traiter votre demande, en appelant les outils et en raisonnant selon les besoins.
  2. Avant l’expiration de la requête, le superviseur interrompt l’exécution et émet un task_continue_request événement dans la réponse de diffusion en continu.
  3. Pour reprendre la tâche, votre application envoie une demande de suivi qui inclut à la fois le task_continue_request et un correspondant task_continue_response.
  4. Le superviseur reprend là où il s’est arrêté et continue de travailler. Ce cycle se répète si nécessaire jusqu’à ce que la tâche soit terminée.

Utiliser des tâches de longue durée dans l'environnement Playground

Dans AI Playground, Playground gère automatiquement la continuation des tâches. Lorsque l’agent a besoin de plus de temps, Playground envoie la réponse de continuation en votre nom. Vous voyez une conversation unique et ininterrompue.

Gérer la continuation des tâches dans l’API

Pour activer les tâches de longue durée, incluez "long_task": true dans la databricks_options de votre requête :

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

Lorsque vous utilisez directement l’API de diffusion en continu, votre application doit détecter les task_continue_request événements et envoyer une demande de suivi pour poursuivre la tâche.

Détecter l’événement de contrôle dans la réponse de flux en continu

Le superviseur émet un événement comme le suivant lorsqu’il doit continuer :

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

Le step champ indique le nombre total d’étapes d’appel d’outil terminées jusqu’à présent.

Envoyer une demande de suivi pour reprendre

Incluez l’original task_continue_request et une correspondance task_continue_response dans les messages de votre requête suivante :

{
  "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
}

Le continue_request_id doit correspondre avec le id du task_continue_request.

Limitations connues

  • Si un seul appel d’outil ou appel de modèle s’exécute plus longtemps que le délai d’expiration de l’API, la requête peut toujours expirer, car le point de contrôle de continuation ne peut être déclenché qu’entre les étapes.
  • La prise en charge complète de l’agent de longue durée, y compris les délais d’attente pendant les appels d’outils individuels ou les appels de modèle, n’est pas encore disponible.