Verwenden von Threads mit der Cortex Agent REST API¶
Diese Anleitung erklärt, wie Sie mit der Cortex Agent REST API Thread-Konversationen erstellen, fortsetzen und verwalten.
Der Workflow für die Verwendung von Threads umfasst die folgenden Schritte:
Erstellen Sie einen neuen Thread, und verwenden Sie ihn als Teil einer
agent:run-Anfrage an die Cortex Agent REST API.Lesen Sie die Nachrichten-IDs für den Thread.
Wählen Sie eine Nachricht aus, um den Thread von da aus fortzusetzen.
Starten Sie einen neuen Thread, und verwenden Sie ihn mit Agent Run¶
Sie müssen einen neuen Thread erstellen und ihn dann als Teil einer Anforderung an agent:run übergeben.
Erstellen Sie einen neuen Thread mit Thread erstellen.
Übergeben Sie die ID des neu erstellten Threads als Teil einer Anforderung an einen der
agent:runREST API-Endpunkte
agent:runmit Agentenobjekt:/api/v2/databases/{database}/schemas/{schema}/agents/{name}:run
agent:runohne Agentenobjekt:/api/v2/cortex/agent:runÜbergeben Sie als Teil der Anforderung Folgendes:
parent_message_idmuss0sein. Dies zeigt an, dass diese Anfrage der Anfang des Threads ist.Genau eine Benutzernachricht in
messages.POST <agent run endpoint> { "thread_id": 1234, "parent_message_id": 0, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "What is the total revenue for 2025?" } ] } ], }
Lesen der zurückgegebenen Nachrichten-IDs¶
Die Agent API streamt Metadaten-Ereignisse für jede Nachricht in der Konversation zurück. Die folgende Ausgabe zeigt die Struktur der Metadaten. Achten Sie immer auf Metadatenereignisse von Benutzern und Assistenten.
event: metadata
data: {"role":"user","message_id":123}
event: metadata
data: {"role":"assistant","message_id":456}
In dieser Ausgabe entsprechen die Nachrichten-IDs den folgenden Punkten in der Konversation:
123: die persistente Benutzernachricht-ID456: die persistente Assistentennachricht-ID
Zusammen bilden diese IDs den folgenden Thread:
0 -> 123 (user) -> 456 (assistant)
Konversation fortsetzen¶
Für die nächste Runde in der Konversation setzen Sie parent_message_id auf die letzte erfolgreiche Assistentennachricht-ID und übergeben neue Werte an messages. In diesem Beispiel ist die übergeordnete Nachrichten-ID 456.
Bemerkung
Sie müssen eine Assistentennachricht-ID als parent_message_id übergeben, um sicherzustellen, dass das LLM wie erwartet funktioniert. Sie können keine Benutzernachricht-ID übergeben. Wenn Sie den Überblick über die letzte Nachrichten-ID verloren haben, verwenden Sie Thread erstellen, um alle Meldungen im Thread aufzulisten.
{
"thread_id": 1234,
"parent_message_id": 456,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What about last year?"
}
]
}
],
}
Verwenden Sie weiterhin die letzte erfolgreiche Assistentennachricht-ID als parent_message_id in nachfolgenden Anfragen.
Eine Konversation aufspalten¶
Sie können die Konversation auch aufspalten, indem Sie von einer früheren Assistentennachricht fortfahren. Um die Konversation aufzuspalten, übergeben Sie die gewünschte Assistentennachricht-ID als parent_message_id in einer neuen Anfrage. Im folgenden Beispiel repräsentieren 3 (user) -> 4 (assistant) und 5 (user) -> 6 (assistant) zwei verschiedene Abspaltungen aus derselben Assistentenantwort.
0 -> 1 (user) -> 2 (assistant) -> 3 (user) -> 4 (assistant)
0 -> 1 (user) -> 2 (assistant) -> 5 (user) -> 6 (assistant)
Problembehandlung¶
In seltenen Fällen kann die Agenten-API die Assistentennachricht möglicherweise nicht speichern. Wenn Assistenten-Metadaten in der Antwort fehlen, ignorieren Sie die fehlgeschlagene Runde und fahren Sie mit der letzten erfolgreichen Assistentennachricht fort.
Betrachten Sie beispielsweise die folgende Tabelle:
0 -> 1 (user) -> 2 (assistant) -> 3 (user) -> [assistant failed]
Um die Konversation fortzusetzen, übergeben Sie die Nachrichten-ID 2 als Teil einer neuen Anfrage, da dies die letzte erfolgreiche Assistentennachricht ist.
0 -> 1 (user) -> 2 (assistant) -> 5 (user) -> 6 (assistant)