Supervisor-Agent lang andauernde Aufgaben

Warning

Supervisor Agent ist ein Legacy-Angebot und wird für neue Systeme nicht empfohlen. Für neue Low-Code-Agenten verwenden Sie Genie Agents. Um mehrere Agenten im Code zu koordinieren, verwenden Sie die Agent Bricks CLI. Siehe Legacy-Agent-Angebote.

Auf dieser Seite wird erläutert, wie langlaufende Aufgaben mithilfe der Fortsetzung von Aufgaben mit dem Supervisor-Agent behandelt werden.

Wenn ein Supervisor-Agent an komplexen Aufgaben arbeitet, die viele Toolaufrufe erfordern, benötigt die Aufgabe möglicherweise mehr Zeit als eine einzelne API-Anforderung zulässt. Um dies zu bewältigen, unterstützt der Vorgesetzte den lang laufenden Aufgabenmodus, der lange Aufgaben automatisch in mehrere Anforderungs-/Antwortzyklen aufbricht, damit der Agent ohne Zeitüberschreitung weiterarbeiten kann.

Funktionsweise

  1. Der Vorgesetzte beginnt bei Bedarf mit der Verarbeitung Ihrer Anfrage, dem Aufrufen von Tools und Gründen.
  2. Bevor die Zeitüberschreitung der Anfrage eintritt, unterbricht der Supervisor die Ausführung und löst ein task_continue_request-Ereignis in der Streaming-Antwort aus.
  3. Um die Aufgabe fortzusetzen, sendet Ihre Anwendung eine Nachverfolgungsanforderung, die sowohl die task_continue_request als auch eine entsprechende task_continue_responseenthält.
  4. Der Vorgesetzte nimmt dort auf, wo er aufgehört hat, und arbeitet weiter. Dieser Zyklus wird nach Bedarf wiederholt, bis der Vorgang abgeschlossen ist.

Verwenden Sie langfristige Aufgaben im Playground

Im AI Playground pausiert der Agent, wenn das Limit erreicht ist, und eine Nachricht in der Benutzeroberfläche fragt, was du als Nächstes tun möchtest. Geben Sie continue ein, um die Verarbeitung fortzusetzen, oder wrap up, um die Aufgabe zu beenden.

Fortsetzung von Aufgaben in der API behandeln

Um lange laufende Aufgaben zu ermöglichen, fügen Sie "long_task": true in die databricks_options Ihrer Anforderung ein:

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

Wenn Sie die Streaming-API direkt verwenden, muss Ihre Anwendung Ereignisse erkennen task_continue_request und eine Nachverfolgungsanforderung senden, um die Aufgabe fortzusetzen.

Erkennen des Prüfpunktereignisses in der Streamingantwort

Der Supervisor gibt ein Ereignis wie das folgende aus, wenn er fortfahren muss:

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

Das step Feld gibt die Gesamtzahl der bisher abgeschlossenen Toolaufrufschritte an.

Eine Folgeanfrage zum Fortsetzen senden

Schließen Sie das Original task_continue_request und ein passendes task_continue_response in die Nachrichten Ihrer nächsten Anfrage ein:

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

Die continue_request_id muss mit dem id des task_continue_request übereinstimmen.

Bekannte Einschränkungen

  • Wenn ein einzelner Toolaufruf oder Modellaufruf länger als das API-Timeout dauert, kann die Anfrage dennoch ablaufen, da der Fortsetzungsprüfpunkt nur zwischen den Schritten ausgelöst werden kann.
  • Eine vollständige Unterstützung für lang laufende Agents, einschließlich Timeouts bei einzelnen Tool- oder Modellaufrufen, ist noch nicht verfügbar.