

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verwendung von Tools, RAG und agentenbasierten Abläufen mit Amazon Nova Sonic
<a name="speech-tools"></a>

**Anmerkung**  
Diese Dokumentation bezieht sich auf Amazon Nova Version 1. Das Amazon Nova 2 Sonic-Handbuch finden Sie unter [Tool-Konfiguration](https://docs.aws.amazon.com/nova/latest/nova2-userguide/sonic-tool-configuration.html).

Das Amazon-Nova-Sonic-Modell erweitert seine Funktionen über vortrainiertes Wissen hinaus, indem es die Verwendung von Tools unterstützt. Die Verwendung von Tools, manchmal auch als Funktionsaufruf bezeichnet, ermöglicht die Integration mit externen Funktionen und Datenquellen. APIs In diesem Abschnitt wird erklärt, wie Sie die Verwendung von Tools, Retrieval-Augmented Generation (RAG) und agentenbasierte Workflows mit Amazon Nova Sonic implementieren.

![\[Diagramm, das erklärt, wie Amazon Nova Sonic ein Tool aufruft und es verwendet, um Ergebnisse zu generieren.\]](http://docs.aws.amazon.com/de_de/nova/latest/userguide/images/novaSonicDiagram.png)


Sie können steuern, welches Tool das Modell verwendet, indem Sie den `toolChoice`-Parameter angeben. Weitere Informationen finden Sie unter [Auswahl eines Tools](https://docs.aws.amazon.com/nova/latest/userguide/tool-choice.html).

**Topics**
+ [Verwenden von Tools](speech-tools-use.md)
+ [Kontrolle darüber, wie Tools ausgewählt werden](speech-tools-choice.md)
+ [Bewährte Methoden für die Tool-Auswahl](speech-tools-bp.md)
+ [RAG implementieren](speech-rag.md)
+ [Erstellen agentenbasierter Abläufe](speech-agentic.md)

# Verwenden von Tools
<a name="speech-tools-use"></a>

**Anmerkung**  
Diese Dokumentation bezieht sich auf Amazon Nova Version 1. Das Amazon Nova 2 Sonic-Handbuch finden Sie unter [Tool-Konfiguration](https://docs.aws.amazon.com/nova/latest/nova2-userguide/sonic-tool-configuration.html).

Um ein Tool verwenden zu können, muss es als Teil des `promptStart`-Ereignisses in Ihrer Sitzungskonfiguration definiert werden. Dies wird im folgenden Code gezeigt:

```
{
  "event": {
    "promptStart": {
      "promptName": "string",
      "textOutputConfiguration": {
        "mediaType": "text/plain"
      },
      "audioOutputConfiguration": {
        "mediaType": "audio/lpcm",
        "sampleRateHertz": 8000 | 16000 | 24000,
        "sampleSizeBits": 16,
        "channelCount": 1,
        "voiceId": "matthew" | "tiffany" | "amy",
        "encoding": "base64",
        "audioType": "SPEECH"
      },
      "toolUseOutputConfiguration": {
        "mediaType": "application/json"
      },
      "toolConfiguration": {
        "tools": [
          {
            "toolSpec": {
              "name": "string",
              "description": "string",
              "inputSchema": {
                "json": "{}"
              }
            }
          }
        ]
      }
    }
  }
}
```

## Tool-Definitionskomponenten
<a name="speech-tools-definition"></a>

Für jede Tool-Spezifikation sind die folgenden Elemente erforderlich:
+ **Name** – eine eindeutige Kennung für das Tool
+ **Beschreibung** – Eine Erklärung, was das Tool macht und wann es verwendet werden sollte.
+ **Eingabeschema** – Das JSON-Schema, das die erforderlichen Parameter definiert.

## Beispiel für ein grundlegendes Tool
<a name="speech-tools-example"></a>

Hier ist ein Beispiel für ein einfaches Tool, das Informationen zum aktuellen Datum abruft. Weitere Informationen über das Definieren eines Tools finden Sie unter [Definieren eines Tools](https://docs.aws.amazon.com/nova/latest/userguide/tool-use-definition.html).

```
// A simple tool with no required parameters
const dateTool = {
  toolSpec: {
    name: "getDateTool",
    description: "Get information about the current date",
    inputSchema: {
      json: JSON.stringify({
        type: "object",
        properties: {},
        required: []
      })
    }
  }
};
```

Und so würde das `promptStart`-Ereignis aussehen:

```
{
  event: {
    promptStart: {
      promptName: "string",
      textOutputConfiguration: {
        mediaType: "text/plain"
      },
      audioOutputConfiguration: {
        mediaType: "audio/lpcm",
        sampleRateHertz: 24000,
        sampleSizeBits: 16,
        channelCount: 1,
        voiceId: "tiffany",
        encoding: "base64",
        audioType: "SPEECH"
      },
      toolUseOutputConfiguration: {
        mediaType: "application/json"
      },
      toolConfiguration: {
        tools: [
          {
            toolSpec: {
              name: "getDateTool",
              description: "get information about the current date",
              inputSchema: {
                json: JSON.stringify({
                  type: "object",
                  properties: {},
                  required: []
                })
              }
            }
          }
        ]
      }
    }
  }
}
```

# Kontrolle darüber, wie Tools ausgewählt werden
<a name="speech-tools-choice"></a>

**Anmerkung**  
Diese Dokumentation bezieht sich auf Amazon Nova Version 1. Das Amazon Nova 2 Sonic-Handbuch finden Sie unter [Tool-Konfiguration](https://docs.aws.amazon.com/nova/latest/nova2-userguide/sonic-tool-configuration.html).

Amazon Nova Sonic unterstützt drei Tool-Auswahlparameter, um Sie bei der Verwaltung der Tool-Ausführung zu unterstützen. Sie können steuern, welches Tool das Modell verwendet, indem Sie den `toolChoice`-Parameter angeben.
+ **Tool** – Mit der `tool`-Option wird sichergestellt, dass das spezifische benannte Tool zu Beginn der Antwortgenerierung genau einmal aufgerufen wird. Wenn Sie beispielsweise ein Wissensdatenbank-Tool angeben, fragt das Modell diese Wissensdatenbank ab, bevor es antwortet, unabhängig davon, ob es das Tool für erforderlich hält.
+ **Beliebig** – `any` Diese Option stellt sicher, dass mindestens eines der verfügbaren Tools zu Beginn der Antwortgenerierung aufgerufen wird, während das Modell gleichzeitig das geeignetste auswählen kann. Dies ist nützlich, wenn Sie über mehrere Wissensdatenbanken oder Tools verfügen und sicherstellen möchten, dass das Modell mindestens eine(s) davon nutzt, ohne anzugeben, welche(s).
+ **Automatisch** – Mit `auto` kann das Modell völlig flexibel bestimmen, ob zu Beginn der Antwortgenerierung Tools benötigt werden, und es kann bei Bedarf mehrere Tools aufrufen. Dies ist auch das Standardverhalten.

Weitere Informationen finden Sie unter [Verwendung von Tools mit Amazon Nova](https://docs.aws.amazon.com/nova/latest/userguide/tool-choice.html).

**Sequenzverhalten bei mehreren Tools**  
Amazon Nova Sonic verarbeitet die Ausführung von Tools auf intelligente Weise innerhalb jedes Antwortzyklus. Wenn Sie die Option `tool` verwenden, führt das Modell zuerst das angegebene Tool aus und bewertet dann, ob zusätzliche Tools erforderlich sind, bevor die endgültige Antwort generiert wird. In ähnlicher Weise wählt das Modell bei der `any`-Option zunächst ein Tool aus den verfügbaren Optionen aus und ruft es auf. Anschließend entscheidet es, ob zusätzliche Toolaufrufe erforderlich sind, bevor es mit der Generierung seiner Antwort fortfährt.

In allen Fällen verwaltet das Modell die gesamte Ausführungssequenz eines Tools innerhalb eines einzigen Antwortgenerierungszyklus und bestimmt, wann genügend Informationen gesammelt wurden, um eine angemessene Antwort zu generieren.

Betrachten Sie die folgenden Beispielszenarien:

------
#### [ Knowledge base example ]
+ Mit `toolChoice: "knowledge_tool"` fragt das Modell immer zuerst die angegebene Wissensdatenbank ab und verwendet dann möglicherweise andere Tools, bevor es antwortet, falls gewünscht.
+ Wenn `toolChoice: "any"` und mehrere Wissensdatenbanken verfügbar sind, wählt das Modell die relevanteste Wissensdatenbank aus, fragt sie ab und konsultiert dann bei Bedarf möglicherweise weitere Quellen.
+ Mit `toolChoice: "auto"` kann das Modell die Wissensabfrage für Fragen, die es direkt beantworten kann, vollständig überspringen oder bei komplexen Fragen mehrere Wissensdatenbanken abfragen.

------
#### [ Multi-functional assistant example ]
+ Ein virtueller Assistent mit Wetter-, Kalender- und Wissens-Tools könnte `toolChoice: "auto"` nutzen, um flexibel auf verschiedene Anfragen zu reagieren und nur die erforderlichen Tools aufzurufen.
+ Die Verwendung von `toolChoice: "any"` würde sicherstellen, dass immer mindestens ein Tool verwendet wird, auch bei Anfragen, die das Modell möglicherweise direkt beantworten könnte.

------

Weitere Informationen finden Sie unter [Tool-Auswahl](https://docs.aws.amazon.com/nova/latest/userguide/tool-choice.html).

# Bewährte Methoden für die Tool-Auswahl
<a name="speech-tools-bp"></a>

**Anmerkung**  
Diese Dokumentation bezieht sich auf Amazon Nova Version 1. Das Amazon Nova 2 Sonic-Handbuch finden Sie unter [Tool-Konfiguration](https://docs.aws.amazon.com/nova/latest/nova2-userguide/sonic-tool-configuration.html).

Bei der Implementierung von Tools mit Amazon Nova Sonic empfehlen wir, die folgenden bewährten Methoden zu befolgen, um eine optimale Leistung zu gewährleisten:
+ **Halten Sie die Schemastruktur einfach**: Beschränken Sie die Schlüssel der obersten Ebene nach Möglichkeit auf 3 oder weniger.
+ **Erstellen Sie eindeutige Parameternamen**: Verwenden Sie klare, semantisch unterschiedliche Namen zwischen ähnlichen Parametern, um Verwechslungen zu vermeiden (verwenden Sie also nicht sowohl „product\$1id“ als auch „cart\$1item\$1id“, wenn sie unterschiedlichen Zwecken dienen).
+ **Geben Sie detaillierte Tool-Beschreibungen** an: Beschreiben Sie klar und deutlich, wofür jedes Tool verwendet werden sollte, um dem Modell bei der Auswahl des geeigneten Tools zu helfen.
+ **Definieren Sie Eingabeschemas genau**: Geben Sie die Parametertypen an und fügen Sie Beschreibungen für jeden Parameter hinzu. Geben Sie deutlich an, welche Parameter erforderlich und welche optional sind.
+ **Kontextlänge überwachen**: Die Leistung des Tools kann sich verschlechtern, wenn sich der Kontext größeren Tokens nähert (d. h. etwa 50 000 Token). Erwägen Sie, komplexe Aufgaben in kleinere Schritte zu unterteilen, wenn Sie mit langen Kontexten arbeiten.
+ **Implementieren Sie die Fehlerbehandlung**: Bereiten Sie sich auf Fälle vor, in denen die Ausführung des Tools fehlschlägt, indem Sie geeignete Ausweichmethoden einbeziehen.
+ **Gründlich testen**: Stellen Sie vor der Implementierung sicher, dass Ihre Tools bei einer Vielzahl von Eingaben und Sonderfällen funktionieren.
+ **Greedy-Dekodierungsparameter**: Stellen Sie den Temperaturwert für die Verwendung von Tools auf 0 ein.

Wir empfehlen Ihnen, folgende häufig auftretende Probleme zu vermeiden:
+ Wenn Sie auf Fehler bei der Einhaltung des JSON-Schemas stoßen, müssen Sie möglicherweise Ihre Schemastruktur vereinfachen oder klarere Anweisungen geben.
+ Beachten Sie, dass das Modell optionale Parameter auslassen könnte, welche die Ergebnisse verbessern würden (z. B. „Limit“-Parameter in Abfragen).

Durch Befolgen dieser Richtlinien können Sie die gesamten Funktionen der Tool-Nutzungsfunktionen des Amazon-Nova-Sonic-Modells nutzen, um leistungsstarke dialogorientierte KI-Anwendungen zu erstellen, die auf externe Datenquellen zugreifen und komplexe Aktionen ausführen können.

# RAG implementieren
<a name="speech-rag"></a>

**Anmerkung**  
Diese Dokumentation bezieht sich auf Amazon Nova Version 1. Das Amazon Nova 2 Sonic-Handbuch finden Sie unter [Tool-Konfiguration](https://docs.aws.amazon.com/nova/latest/nova2-userguide/sonic-tool-configuration.html).

Retrieval Augmented Generation (RAG) verbessert Antworten, indem Informationen aus Ihren Wissensdatenbanken abgerufen und integriert werden. Mit Amazon Nova Sonic wird RAG mithilfe von Tools implementiert. 

## Grundlegende Informationen über die Implementierung der Wissensdatenbank
<a name="speech-rag-implement"></a>

Für die Implementierung einer RAG sind die folgenden Elemente erforderlich:
+ **Tool konfigurieren** – Definieren Sie ein Such-Tool für die Wissensdatenbank in Ihrem `promptStart`-Ereignis.
+ **Anfrage zur Verwendung des Tools erhalten** – Wenn der Benutzer eine Frage stellt, ruft das Modell das Wissensdatenbank-Tool auf.
+ **Vektordatenbank abfragen** – Führen Sie die Suchabfrage anhand Ihrer Vektordatenbank aus.
+ **Ergebnisse zurückgeben** – Die Suchergebnisse zurück an das Modell senden.
+ **Antwort generieren** – Das Modell bezieht die abgerufenen Informationen in seine mündliche Antwort ein.

## Konfiguration der Wissensdatenbank
<a name="speech-rag-tool"></a>

Hier ist eine Beispielkonfiguration eines grundlegenden Wissensdatenbank-Tools:

```
{
     toolSpec: {
         name: "knowledgeBase",
         description: "Search the company knowledge base for information",
         inputSchema: {
             json: JSON.stringify({
                 type: "object",
                 properties: {
                     query: {
                         type: "string",
                         description: "The search query to find relevant information"
                     }
                 },
                 required: ["query"]
             })
         }
     }
 };
```

# Erstellen agentenbasierter Abläufe
<a name="speech-agentic"></a>

**Anmerkung**  
Diese Dokumentation bezieht sich auf Amazon Nova Version 1. Das Amazon Nova 2 Sonic-Handbuch finden Sie unter [Tool-Konfiguration](https://docs.aws.amazon.com/nova/latest/nova2-userguide/sonic-tool-configuration.html).

Für komplexere Anwendungsfälle können Sie agentenbasierte Abläufe implementieren, indem Sie mehrere Tools konfigurieren, die zusammenarbeiten, um Aufgaben zu erledigen. Amazon Nova Sonic kann diese Tools auf der Grundlage von Benutzeranfragen orchestrieren.

## Grundlegende Informationen über die Implementierung der Wissensdatenbank
<a name="speech-agentic-example"></a>

**Stornierung einer Hotelreservierung, Agentenbeispiel**  
Hier ist eine Beispielkonfiguration eines Systems zur Stornierung von Hotelreservierungen:

```
toolConfiguration: {
    tools: [
      {
        toolSpec: {
          name: "getReservation",
          description: "Retrieves hotel reservation information based on the guest's name and check-in date",
          inputSchema: {
            json: JSON.stringify({
              type: "object",
              properties: {
                name: {
                  type: "string",
                  description: "Full name of the guest who made the reservation"
                },
                checkInDate: {
                  type: "string",
                  description: "The check-in date for the reservation in YYYY-MM-DD format"
                }
              },
              required: ["name", "checkInDate"]
            })
          }
        }
      },
      {
        toolSpec: {
          name: "cancelReservation",
          description: "Cancels a hotel reservation after confirming the cancellation policy with the guest",
          inputSchema: {
            json: JSON.stringify({
              type: "object",
              properties: {
                reservationId: {
                  type: "string",
                  description: "The unique identifier for the reservation to be cancelled"
                },
                confirmCancellation: {
                  type: "boolean",
                  description: "Confirmation from the guest that they understand the cancellation policy and want to proceed",
                  default: false
                }
              },
              required: ["reservationId", "confirmCancellation"]
            })
          }
        }
      }
    ]
  }
```

**Hotelsuchagent, Beispiel**  
Und hier ist ein Beispiel für die Konfiguration eines Hotelsuchagenten:

```
toolSpec: {
    name: "searchHotels",
    description: "Search for hotels by location, star rating, amenities and price range.",
    inputSchema: {
        json: JSON.stringify({
            type: "object",
            properties: {
                location: {
                    type: "string",
                    description: "City or area to search for hotels"
                },
                rating: {
                    type: "number",
                    minimum: 1,
                    maximum: 5,
                    description: "Minimum star rating (1-5)"
                },
                amenities: {
                    type: "array",
                    items: {
                        type: "string"
                    },
                    description: "List of desired amenities"
                },
                price_range: {
                    type: "object",
                    properties: {
                        min: {
                            type: "number",
                            minimum: 0
                        },
                        max: {
                            type: "number",
                            minimum: 0
                        }
                    },
                    description: "Price range per night"
                }
            },
            required: []
        })
    }
}
```