Strands Agents
Auf dieser Seite wird erklärt, wie ein Strands Agents-Agent
Topics
Instrumentieren Sie Ihren Agenten
Das Strands Agents SDK enthält integrierte Telemetrie und erfordert keine zusätzliche Instrumentierungsbibliothek. Es erzeugt Spans und Ereignisdatensätze unter dem Bereichsnamen. strands.telemetry.tracer Bei der Bereitstellung auf Amazon Bedrock AgentCore Runtime mit der AWS Distribution for OpenTelemetry (ADOT) fügt die Runtime das session.id Attribut ein und exportiert automatisch Spans und Event-Datensätze.
Anmerkung
Die Instrumentierung ist ein Schritt bei der Einrichtung der Beobachtbarkeit. Um Telemetrie zur Auswertung zu exportieren, schließen Sie die vollständigen Einstellungen unter Beobachtbarkeit einrichten ab.
Wie werden Spannweiten identifiziert
Strands legt das gen_ai.operation.name Attribut für jeden Bereich fest. Der Bewertungsdienst verwendet dieses Attribut, um Bereiche zu klassifizieren:
| Art der Spanne | Identifizierendes Attribut | Beispiel für einen Spannamen |
|---|---|---|
|
Agent aufrufen |
|
|
|
Tool ausführen |
|
|
|
Inferenz |
|
|
Wie werden Bewertungsfelder extrahiert
Der Speicherort der Konversationsinhalte hängt davon ab, wie Telemetriedaten erfasst wurden. Wenn ADOT die Telemetrie aufteilt, befindet sich der Inhalt in einem separaten Ereignisdatensatz. Wenn die Telemetrie nicht aufgeteilt wird, verbleibt der Inhalt als Inline-Ereignisse in der Spanne. Weitere Informationen finden Sie unter Spans, Ereignisdatensätze und Telemetriesignale. Das identifizierende Attribut (gen_ai.operation.name) befindet sich in beiden Fällen auf der Spanne.
Aus Ereignisaufzeichnungen
Wenn die Telemetrie aufgeteilt wird, liest der Dienst Inhalte aus dem Ereignisdatensatz, der jeder Spanne zugeordnet ist:
-
Benutzeraufforderung: Aus den Eingabenachrichten des Agenten (
input.messages) wird der Inhalt der Nachricht mit einer Benutzerrolle angezeigt. -
Antwort des Agenten: aus den Agentenausgangsnachrichten (
output.messages) der Inhalt der Nachricht mit der Rolle eines Assistenten. -
Werkzeugaufruf: Der Werkzeugname aus dem
gen_ai.tool.nameAttribut im Bereich des Ausführungswerkzeugs. Die Werkzeugargumente und das Ergebnis stammen aus dem Ereignisdatensatz (inputundoutput) dieser Spanne.
Beispiele finden Sie unter Beispiel für Spans mit Ereignisdatensätzen.
Aus Inline-Span-Ereignissen
Wenn die Telemetrie nicht aufgeteilt wird, wird derselbe Inhalt in Inline-Span-Ereignissen anstelle eines separaten Ereignisdatensatzes übertragen:
-
Benutzeraufforderung: aus dem
gen_ai.user.messageEreignis, dascontentAttribut. -
Antwort des Agenten: aus dem
gen_ai.choiceEreignis, dasmessageAttribut. -
Werkzeugaufruf: Der Werkzeugname aus dem
gen_ai.tool.nameAttribut im Span. Die Werkzeugargumente stammen aus demgen_ai.tool.messageEreignis, und das Ergebnis stammt aus demgen_ai.choiceEreignis.
Beispiele finden Sie unter Beispiel für Spans ohne Ereignisdatensätze.
Beispiel für Zeitspannen mit Ereignisdatensätzen
Wenn die Telemetrie aufgeteilt wird, enthält die Spanne die identifizierenden Attribute und der Inhalt befindet sich in einem korrelierten Ereignisdatensatz. Die folgenden Beispiele stammen von einem Reiseplanungsagenten von Strands, der auf Amazon AgentCore Bedrock Runtime eingesetzt wurde.
Anmerkung
Bei diesen Beispielen handelt es sich nicht um vollständige Zeitspannen. Sie zeigen repräsentative Daten aus einer echten Agenteninteraktion, wobei einige Felder weggelassen und lange Werte aus Gründen der Lesbarkeit gekürzt wurden.
Beispiel
Beispiel für Zeiträume ohne Ereignisdatensätze
Wenn die Telemetrie nicht aufgeteilt wird, wird derselbe Inhalt in Inline-Span-Ereignissen innerhalb der Spanne übertragen, ohne dass ein separater Ereignisdatensatz vorhanden ist. Die folgenden Beispiele stammen von einem Reiseplanungsbüro von Strands.
Anmerkung
Bei diesen Beispielen handelt es sich nicht um vollständige Zeitspannen. Sie zeigen repräsentative Daten aus einer echten Agenteninteraktion, wobei einige Felder weggelassen und lange Werte aus Gründen der Lesbarkeit gekürzt wurden.