Agent-Anweisungen enthalten detaillierte Anleitungen für das Modell, was es tun soll. Diese Anweisungen werden in natürlicher Sprache bereitgestellt.
Anleitung schreiben
Anweisungen können Folgendes enthalten:
- Gesamtziel.
- Wie Sie sich verhalten sollten.
- Zu verwendende Persona.
- Eine Liste der untergeordneten Agents, auf die anhand des Anzeigenamens im Format
{@AGENT: Agent Name}verwiesen wird. - Eine Anleitung zur Verwendung eines bestimmten Tools, auf das anhand des Anzeigenamens im Format
{@TOOL: tool_name}verwiesen wird. - Verweis auf eine Variable, wobei der Variablenname in Snake Case in geschweifte Klammern eingeschlossen ist:
{variable_name}.
Beispiel für einen Root-Agent:
CURRENT CUSTOMER: {username}
You are the main Weather Agent coordinating multiple agents.
Your primary responsibility is to provide weather information.
Use {@TOOL: get_weather} ONLY for specific weather requests
(for example, 'weather in London').
If you know the user's name, always greet them by their name.
You have specialized sub-agents:
1. Greeting Agent: Handles simple greetings like 'Hi', 'Hello'.
2. Farewell Agent: Handles simple farewells like 'Bye', 'See you'.
Analyze the user's query.
If it's a greeting, call {@AGENT: Greeting Agent}
If it's a farewell, call {@AGENT: Farewell Agent}
If it's a weather request, handle it yourself using {@TOOL: get_weather}
For anything else, respond appropriately or state you cannot handle it.
Syntaxhervorhebung
Wenn im Anweisungseditor mit der richtigen Syntax auf eine Variable, ein Tool oder einen Agent verwiesen wird ({variable_name}, {@TOOL: tool_name} oder {@AGENT: Agent Name}), wird dies durch einen farbigen „Chip“ hervorgehoben. Das bedeutet, dass die Syntax erkannt wird.
Um das Einfügen dieser Referenzen zu erleichtern, bietet der Anleitungseditor zwei Tastenkombinationen:
- Wenn Sie
@eingeben, wird ein Kontextmenü mit drei Optionen geöffnet: Agent, Tool oder Variable. Sie können in diesem Menü mit den Pfeiltasten und der Tabulatortaste oder durch Klicken navigieren. Wenn Sie eine Option auswählen, werden weitere Optionen angezeigt, bis die Referenz vollständig ist. Dann wird sie als Chip dargestellt. - Wenn Sie
{eingeben, wird ein Kontextmenü mit verfügbaren Variablen zum schnellen Einfügen geöffnet.
Sprachunterstützung
Verwenden Sie beim Erstellen von Agent-Prompts und ‑Anweisungen immer Englisch, damit der Agent die Inhalte optimal versteht. Wenn Ihre Kundenservicemitarbeiter mit Ihren Nutzern interagieren, können sie die Sprache der Endnutzereingabe erkennen und automatisch in derselben Sprache antworten, sofern nicht anders angegeben.
Wenn Ihr Agent nur in bestimmten Sprachen sprechen soll (oder nicht sprechen soll), sollten Sie eine entsprechende Anleitung einfügen. Wenn Ihr Agent beispielsweise nur auf Italienisch antworten soll, können Sie in Ihre Anweisungen „you only speak Italian and no other languages“ (du sprichst nur Italienisch und keine anderen Sprachen) aufnehmen.
Eine Liste der unterstützten Sprachen finden Sie in der Sprachreferenz.
Anleitung umstrukturieren
Sie können Anweisungen in natürlicher Sprache eingeben. Es kann jedoch sein, dass Ihr Agent bessere Ergebnisse liefert, wenn Sie Anweisungen in einer XML-Struktur formatieren, da das Modell so Anweisungen besser befolgen kann. Wir stellen eine standardmäßige XML-Struktur mit Tags bereit, mit der Sie Ihre Anleitungen strukturieren können. Nachdem Sie Anweisungen in natürlicher Sprache eingegeben haben, können Sie über dem Anweisungsfeld auf die Schaltfläche Anweisungen umstrukturieren klicken, um die Anweisungen in die empfohlene XML-Struktur zu formatieren.
In der folgenden Tabelle werden empfohlene XML-Tags und ihre Verwendung beschrieben:
| Tag | Beschreibung |
|---|---|
role |
Definiert die Kernfunktion oder ‑verantwortung des Agenten. |
persona |
Beschreibt die Persönlichkeit, den Ton und die Verhaltensrichtlinien des Agenten. |
primary_goal |
Gibt innerhalb von <persona> das Hauptziel des KI-Agenten an. |
constraints |
Listet Regeln oder Einschränkungen auf, die der Agent beachten muss. |
taskflow |
Gibt Gesprächsabläufe als eine Reihe von untergeordneten Aufgaben an. |
subtask |
Innerhalb von <taskflow> ein bestimmter Teil des Unterhaltungsablaufs, der einen oder mehrere Schritte enthält. |
step |
Ein einzelner Schritt in <subtask>, der einen Trigger und eine Aktion enthält. |
trigger |
In <step> die Bedingung oder Nutzereingabe, die einen Schritt auslöst. |
action |
Innerhalb von <step> die Aktion, die der Agent ausführen soll, wenn ein Schritt ausgelöst wird. |
examples |
Enthält Few-Shot-Beispiele, um das Verhalten des Agents für bestimmte Szenarien zu steuern. |
Hier ein Beispiel für dieselbe Anleitung mit der empfohlenen XML-Struktur:
CURRENT CUSTOMER: {username}
<role>The main Weather Agent coordinating multiple agents.</role>
<persona>
<primary_goal>To provide weather information.</primary_goal>
How to handle prohibited topics and violations: Respond appropriately or
state inability to handle the request.
General guidelines: Follow the constraints and task flow precisely.
</persona>
<constraints>
1. Use {@TOOL: get_weather} ONLY for specific weather requests
(for example, 'weather in London').
2. If the user's name is known (from the 'CURRENT CUSTOMER' context), always
greet them by their name.
</constraints>
<taskflow>
These define the conversational subtasks that you can take. Each subtask
has a sequence of steps that should be taken in order.
<subtask name="Initial Greeting">
<step name="Check for Username and Greet">
<trigger>Start of conversation or new user interaction.</trigger>
<action>If a username is provided in the 'CURRENT CUSTOMER' context,
greet the user by their name. Otherwise, proceed without a
personalized greeting.
</action>
</step>
</subtask>
<subtask name="Query Analysis and Routing">
<step name="Analyze User Query">
<trigger>User provides a query.</trigger>
<action>Determine the intent of the user's query
(greeting, farewell, weather request, or other).
</action>
</step>
<step name="Handle Greeting">
<trigger>User query is identified as a simple greeting
(e.g., 'Hi', 'Hello').
</trigger>
<action>Call {@AGENT: Greeting Agent}.</action>
</step>
<step name="Handle Farewell">
<trigger>User query is identified as a simple farewell
(e.g., 'Bye', 'See you').
</trigger>
<action>Call {@AGENT: Farewell Agent}.</action>
</step>
<step name="Handle Weather Request">
<trigger>User query is identified as a specific weather request
(e.g., 'weather in London').
</trigger>
<action>Use {@TOOL: get_weather} to retrieve weather information and
provide it to the user.
</action>
</step>
<step name="Handle Other Queries">
<trigger>User query does not fall into greeting, farewell, or
specific weather request categories.
</trigger>
<action>Respond appropriately to the query or state that the request
cannot be handled.
</action>
</step>
</subtask>
</taskflow>
<examples>
</examples>
Inline-Few-Shot-Beispiele
Few-Shot-Prompting ist eine Technik, bei der ein Large Language Model (LLM) eine kleine Anzahl von Beispielen erhält, um sein Verhalten, seinen Ton oder seine Logik zu steuern. Im Kontext von Agents bezieht sich „Inline Few-Shot Examples“ darauf, diese Beispiele direkt in die Anweisungen des Agents einzufügen und nicht in einem separaten UI-Bereich. Mit dieser Methode kann das Modell komplexe Anforderungen besser verstehen, da es nicht nur Anweisungen erhält, sondern auch Beispiele sieht. So wird die Lücke zwischen abstrakten Anweisungen und konkreter Ausführung geschlossen.
Wann sollten Few-Shot-Beispiele verwendet werden?
Few-Shot-Beispiele sind ein leistungsstarkes Tool für die Abstimmung, sollten aber strategisch eingesetzt werden. In den folgenden Szenarien sollten Sie sie hinzufügen:
- Qualitätsprobleme beheben: Verwenden Sie Beispiele hauptsächlich, um bestimmte Fehler zu beheben, bei denen das Modell Anweisungen immer wieder falsch interpretiert.
- Komplexe Formatierung: Wenn der Agent Daten in einem sehr spezifischen, nicht standardmäßigen Format ausgeben muss.
- Nuancierte Logik: Wenn „Wenn-dann“-Anweisungen nicht ausreichen, um die Feinheiten eines Entscheidungsprozesses zu erfassen.
Best Practices und Warnungen
Few-Shot-Beispiele sind zwar effektiv, sollten aber sorgfältig ausgewählt werden, um die Leistung des Agents nicht zu beeinträchtigen.
- Sparsam einsetzen: Wenn Sie zu viele Beispiele hinzufügen, kann es sein, dass der Agent „überangepasst“ wird. Das bedeutet, dass er sich starr an die Beispiele hält und seine Fähigkeit verliert, auf neue, unbekannte Nutzeranfragen zu reagieren.
- Beschreibend, nicht erschöpfend: Sie müssen nicht jede mögliche Nutzeranfrage auflisten. Beispiele dienen als Orientierung für das Denkmodell des Modells, nicht als Nachschlagewerk.
- Mit Anweisungen beginnen: Versuchen Sie immer zuerst, Verhaltensprobleme mit klaren, beschreibenden Anweisungen zu lösen. Fügen Sie nur dann Few-Shots hinzu, wenn mit Anweisungen allein nicht das gewünschte Ergebnis erzielt wird.
Komponenten eines Few-Shot-Beispiels
Ein Standard-Few-Shot-Beispiel für Agents besteht aus vier verschiedenen Komponenten, die eine Unterhaltungsrunde simulieren.
| Komponente | Tag / Syntax | Beschreibung |
|---|---|---|
| Nutzer | [user] |
Stellt die Eingabe oder Abfrage des Endnutzers dar. |
| Modell | [model] |
Stellt die Textantwort oder den Denkprozess des Agenten dar. |
| Tool-Eingabe | tool_code |
Zeigt, wie der Agent die Eingabe oder den „Aufruf“ eines externen Tools oder einer externen Funktion strukturieren soll (z.B. bestimmte Argumente/Syntax). |
| Tool-Ausgabe | tool_outputs |
Simuliert die vom Tool zurückgegebenen Daten und zeigt dem Agenten, wie er diese Daten in seiner endgültigen Antwort interpretieren und verwenden kann. |
Für Few-Shot-Beispiele sollte das folgende Format verwendet werden:
<examples> EXAMPLE 1: Begin example [user] What's the weather in London? [model] ```tool_code get_weather(location="London") ``` ```tool_outputs {"temperature": "15 C", "condition": "Cloudy"} ``` [model] The weather in London is 15 C and Cloudy. End example </examples>
Anweisungen optimieren
Sie können einen Teil Ihrer Anweisungen auswählen. Daraufhin wird die Schaltfläche Verfeinern angezeigt. Wenn Sie auf diese Schaltfläche klicken, wird KI verwendet, um die ausgewählten Inhalte zu verbessern. Geben Sie im Feld Anforderungen Informationen dazu ein, wie Sie die ausgewählten Inhalte verbessern möchten.
Antworten von KI-Agenten formatieren
Sie können dem Agenten Anweisungen geben, wie er seine Textantworten formatieren soll, um die Lesbarkeit zu verbessern. Im Folgenden finden Sie Best Practices für Anweisungen zur Formatierung:
Chunking und Leerzeichen
- Schreiben Sie niemals dichte Absätze. Nutzer überfliegen Inhalte, sie lesen sie nicht.
- Textblöcke sollten maximal 1–2 Sätze lang sein.
- Fügen Sie zwischen den einzelnen Ideen einen Zeilenumbruch ein, um Leerraum zu schaffen.
Strategische Fettdruckformatierung
- Sie müssen die wichtigsten Datenpunkte fett formatieren, damit sie sofort ins Auge fallen.
- Immer fett: Produktnamen, Preise, Datumsangaben, Bestellnummern und Fristen.
- Beispiel: „Das Classic Tee kostet 25,00$.“
Listen über Text
- Wenn Sie mehr als zwei Elemente oder Schritte erwähnen, konvertieren Sie sie automatisch in eine Liste mit Aufzählungszeichen oder eine nummerierte Liste.
- Verwenden Sie Standardaufzählungszeichen (
-) für Optionen und nummerierte Listen (1.) für Anleitungen.
Globale Anweisungen
Zusätzlich zu agentspezifischen Anweisungen können Sie globale Anweisungen in den erweiterten Einstellungen für Agent-Anwendungen definieren.
Jeder Agent in der Agent-Anwendung erbt die globalen Anweisungen. Sie werden für jede Unterhaltungsrunde zusätzlich zu den agentspezifischen Anweisungen an das Modell gesendet.
Globale Anweisungen eignen sich gut für allgemeine Informationen, die jeder Agent kennen muss. Beispiele: Markenton, allgemeine „DOs and DON’Ts“, global freigegebene Variablen und Kundenprofile.