- Erste Schritte
- Erstellen
- Fügen Sie einen KI-Agent zu einem Workflow hinzu
- Rufen Sie eine externe API auf
- Eingehende E-Mails verarbeiten
- Einen Slack-Benachrichtigungs-Workflow erstellen
- Eine menschliche Genehmigung zu einem Workflow hinzufügen
- Erstellen Sie einen Chat Agent-Workflow
- Fehler behandeln
- Grundlagen des Debuggens
- Human-in-the-Loop: Eskalation oder menschlicher Schritt
- Auswerten Ihrer Workflows
- Bereitstellen und ausführen
- Beispiele
- Referenz (Reference)
Sprach-Agent
Configure a Voice agent: its model and prompts, output variables, tools, handoffs between agents, and the call transcript, with fixes for common issues.
Was es tut
Fügt einen Agent an einen Live-Telefonanruf an und spricht mit dem Anrufer. Audio wird direkt in ein Echtzeit-Sprachmodell gestreamt, das es dem Anrufer ermöglicht, den Agent mitten in der Sprache zu unterbrechen. Konfigurieren Sie Indizes für Modell, Persona, Prompt, Tools und Kontextgrundlage direkt auf dem Knoten.
Beide Aufrufrichtungen verwenden dieselbe dreistufige Form:
| Richtung | Knoten-Sequence |
|---|---|
| Eingehend | Eingehender Anruf → Sprache Agent → Anruf beenden |
| Ausgehend | Ausgehenden Anruf erstellen → Sprache Agent → Anruf beenden |
Der Knoten wird in der Kategorie Agent des Bereichs Knoten hinzufügen als Sprache Agent bezeichnet.
Konfigurationsreferenz
| Feld | Beschreibung |
|---|---|
| Modell | Das Echtzeit-Sprachmodell. Der Standardwert ist gpt-realtime-2.1. |
| Persona | Die Sprache für das ausgewählte Modell. Der Standardwert ist Marin. |
| Systemprompt | Die Rolle des Agents, seine ständigen Anweisungen und wie er die Konversation beenden sollte. |
| Temperatur | Kreativität der Antworten von 0 bis 1. |
| Maximale Tokens | Maximales Token für eine Konversation. |
| Anrufkontext | Im Abschnitt Anrufeinstellungen . Der Anruf, an den dieser Agent angehängt wird. Binden Sie es an ein Upstream-Element callContext, z. B. $vars.createOutgoingCall1.output.callContext. |
Ausgabevariablen
Optional können Sie strukturierte Ausgabevariablen im Abschnitt Ausgaben des Eigenschaftenbereichs konfigurieren. Sie sind nützlich, um zielorientierte oder Routing-Variablen festzulegen, die in nachgelagerten Knoten innerhalb des Workflows verwendet werden sollen.
Jede Ausgabevariable, die Sie deklarieren, wird zu einem Feld im Ausgabeobjekt des Agents, auf das als $vars.<agentName>.output.<name> verwiesen wird. Geben Sie jeder Variablen einen Namen und einen Typ und weisen Sie dann den Agent im Beschreibungsfeld der Variablen an, wie er dort ausgefüllt werden soll. Die Ausgabegenerierung wird durch eine Kombination aus dem Systemprompt des Agenten und den Beschreibungen der Ausgabevariablen gesteuert.
Der Agent füllt sie aus, wenn die Sprachsitzung beendet wird.
Die beiden häufigsten Verwendungen sind Anrufzusammenfassungen und Übergaben. Deklarieren Sie für eine Zusammenfassung eine Ausgabe wie call_summary und verwenden Sie deren Beschreibung, um den Agent aufzufordern, den Anruf zusammenzufassen. Der Agent schreibt es, wenn die Sitzung beendet wird, und nachgelagerte Knoten lesen es als $vars.voiceAgent1.output.call_summary.
Tools
Verbinden Sie Tools mit dem Tools-Handle, um dem Agenten Funktionen bereitzustellen, die er während des Schlussfolgerns aufrufen kann. Der Agent entscheidet während seiner Schleife, ob und wann die einzelnen verbundenen Tools aufgerufen werden. Jedes Tool enthält eine Beschreibung, die dem Agenten erläutert, wofür es verwendet wird. Verfassen Sie daher klare Beschreibungen, wenn für ein Tool eine solche Beschreibung verfügbar ist.
Beim Entwerfen von Tools für Sprach-Agents:
- Der Aufrufer wartet während jedes Toolaufrufs, also halten Sie den Auftrag jedes Tools klein und schnell.
- Tools, die die Agent-Aufrufe in derselben Runde zusammen kehren, die langsamste legt fest, wie lange der Anrufer Stille hört.
- Nach einer Zeitüberschreitung kann der Agent einen Fehler melden und es erneut versuchen, also machen Sie Tools idempotent. Bei einem Toolaufruf, der innerhalb von 180 Sekunden nicht zurückgegeben wurde, tritt eine Zeitüberschreitung auf.
Toolverfügbarkeit
| Werkzeugkategorie | Verfügbarkeit |
|---|---|
| RPA Processes | Verfügbar |
| API-Workflows | Verfügbar |
| Aktivitäten | Verfügbar |
| Andere Workflows (Maestro) | Verfügbar |
| Process orchestration | Verfügbar |
| Codierte Funktionen | Verfügbar |
| Agent (einen bereitgestellten eigenständigen Agent aufrufen) | Verfügbar |
| Konnektoren | Verfügbar |
| Indizes für Kontextgrundlagen | Verfügbar |
| Integrierte Tools (Dateien analysieren, Deep RAG, Batch-Transformation) | Nicht verfügbar |
| Eskalationen | Nicht verfügbar |
| Model Context Protocol (MCP)-Tools | Nicht verfügbar |
| A2A (Agent-to-Agent) | Nicht verfügbar |
| Intelligente Datenextraktion und Verarbeitung (IXP) (Dokumentextraktion) | Nicht verfügbar |
Integrierte Sprachtools
Jeder Sprache Agent hat Zugriff auf zwei integrierte Tools. Diese sind enthalten, werden aber nicht auf der Arbeitsfläche angezeigt:
- Dual-Tone Multi-Frequency-Tool (DTMF): Wird zum Drücken von Ziffern auf der Telefontaste verwendet, die zum Navigieren in externen Telefonstrukturen verwendet werden kann
- Sitzung beenden: Wird verwendet, um die Konversation zu beenden, ohne den Anruf zu beenden. Nützlich für Übergaben von Sprache Agenten.
Tool-Leitplanken
Leitplanken auf Toolebene sind für die Tools verfügbar, die mit dem Sprache Agent-Knoten verbunden sind. Sie können die Eingabeparameter eines Tools filtern oder blockieren. Konfigurieren Sie die Leitplanke für das Tool, das an das Tools-Handle des Language Agent angehängt ist. Die Tool-Leitplanken bieten weitere Details.
Übergaben
Das Beenden einer Sprachsitzung ist nicht dasselbe wie das Beenden des Anrufs. Wenn ein Agent seine Sitzung beendet, beendet er den Anruf, lässt aber die Zeile offen: Der Agent füllt seine Ausgabevariablen aus und der Workflow wird zum nächsten Knoten verschoben. Nur der Knoten zum Beenden des Anrufs und der Anrufer können den Anruf auflegen.
Das macht Übergaben möglich. Verketten Sie Sprach-Agent-Knoten und binden Sie sie alle an denselben Anrufkontext. Jeder Agent beendet seine eigene Sitzung, wenn sie fertig ist, und nur der letzte Pfad erreicht Anruf beenden, sodass der Anrufer die gesamte Zeile über in der Zeile bleibt.
Eine Übergabe besteht aus zwei Teilen:
- An den richtigen Agent weiterleiten. Geben Sie dem ersten Agent eine Ausgabevariable, z. B.
handoff, und teilen Sie dem Agent mithilfe der Beschreibung mit, welcher Wert festgelegt werden soll. Verzweigen Sie diesen Wert mit einem Switch- Knoten, sodass jeder Fall zu dem Agent führt, der ihn bearbeitet. - Übertragen Sie den Kontext. Ein empfangender Agent weiß nichts darüber, was bereits vorhergesagt wurde. Verweisen Sie entweder auf eine Anrufzusammenfassung des ersten Agents in seinem Systemprompt (
$vars.voiceAgent1.output.call_summary) oder fügen Sie einen Get Conversation Context- Knoten auf der Verzweigung hinzu und verweisen Sie stattdessen auf das Transkript. Der Abschnitt Anrufprotokoll enthält Details.
Das Übergeben eines Anrufs an einen Menschen wird nicht unterstützt. Es gibt keine Live-Anrufweiterleitung.
Der Agent hat keine Eskalationsverbindung , da ein Anruf nicht warten kann, während eine Person eine Aufgabe ausführt. Damit eine Person auf das Ergebnis eines Anrufs reagiert, fügen Sie nach dem Agent einen Knoten aus der Kategorie Mensch , z. B. Schnellformular, hinzu.
Anrufprotokoll
Um ein Transkript nach einem Aufruf zu lesen, öffnen Sie die Ausführungsablaufverfolgung einer Testausführung oder die Ablaufverfolgung einer bereitgestellten Ausführung, wie bei der Überwachung von Ausführungen beschrieben. Observability hat weitere Details.
So verwenden Sie das Transkript innerhalb des Workflows:
- Fügen Sie einen Knoten „Get Conversation Context“ hinzu.
- Übergeben Sie
$vars.<incomingOrOutgoingCallNodeId>.output.callContext.conversationId. Zum Beispiel kann<incomingOrOutgoingCallNodeId>createOutgoingCall1sein. - Verweisen Sie auf das Transkript als
$vars.<getConversationContextNodeId>.output.conversationContext.messages. Zum Beispiel kanngetConversationContextNodeIdgetConversationContext1sein.
Sie können das Transkript beispielsweise zur Verarbeitung an einen autonomen Agent übergeben:
Häufige Probleme
Der Agent spricht normal, führt jedoch nie ein Tool aus. Es ist kein Unattended- oder Standardroboter mit einer serverlosen Maschine zugewiesen, auf dem der Workflow ausgeführt wird, sodass jeder Toolaufruf als Fehler zurückgegeben wird und der Agent im Gespräch bleibt. Bitten Sie Ihren Administrator, einen Roboter zuzuweisen, und rufen Sie dann erneut auf. Die Ordneranforderungen enthalten weitere Details.
Der Anruf wird beendet, bevor die Konversation beendet ist, aber es liegen keine Fehler vor. Der Agent beendete seine eigene Sitzung mitten in der Konversation und der Workflow wurde mit „Anruf beenden“ fortgesetzt. Das ist wahrscheinlich ein Prompt-Problem, bei dem der Sprach-Agent der Meinung war, dass er dem Anrufer nicht mehr hilft und beschloss, die Sitzung zu beenden.
Der Agent installiert oder erstellt statische zum Lesen von Ziffernzeichenfolgen. Bei Gemini Live bei der Temperatur 0 können lange Ziffernzeichenfolgen hängen bleiben oder verzerrt stimmen. Erhöhen Sie die Temperatur leicht. Wenn das Problem weiterhin besteht, versuchen Sie es mit dem anderen Modell.
Der Agent kann mit einem Toolschemafehler keine Verbindung herstellen. Das Gemini-Modell akzeptiert eine enger Schemateilmenge. Vereinfachen Sie das Eingabeschema des Tools oder integrieren Sie das Tool in einen API-Workflow mit einem einfachen Eingabeschema und verwenden Sie stattdessen den Workflow als Tool.
Der Anruf wird verbunden, niemand spricht und nach etwa 25 Sekunden wird unterbrochen. Ein Anruf, an den nie ein Agent angehängt wird, wird nach etwa 25 Sekunden toter Air beendet. Binden Sie Anrufkontext an callContext vom Trigger Eingehender Anruf oder den Knoten „Ausgehenden Anruf erstellen“ .
Nächste Schritte
- Eingehender Anruf: Startet einen Workflow für eingehende Anrufe.
- Ausgehenden Anruf erstellen: Startet einen ausgehenden Anruf.
- Anruf beenden: Beendet den Anruf.
- Bereitstellung: Verbinden einer Zahl und Binden an einen Workflow.
- Community: Stellen Sie Fragen und teilen Sie Workflows mit anderen Buildern im UiPath Forum.