View a markdown version of this page

Amazon Bedrock AgentCore Harness mit Step Functions aufrufen - AWS Step Functions

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.

Amazon Bedrock AgentCore Harness mit Step Functions aufrufen

Sie können Step Functions in Amazon Bedrock integrieren AgentCore , um einen Harness von Ihrem State Machine aus aufzurufen. Ein Harness ist eine verwaltete Laufzeit, die Modellinferenz, Werkzeugnutzung und Multi-Turn-Konversationen orchestriert. Suchen Sie in Workflow Studio nach AgentCore InvokeHarnessdiesem Status und ziehen Sie ihn in Ihren Workflow.

Im Konfigurationsfenster können Sie mit Quick Create Harness einen neuen Kabelbaum und eine neue Ausführungsrolle erstellen oder einen vorhandenen Harness-ARN auswählen. Wenn Sie einen vorhandenen Kabelbaum verwenden, können Sie Konfigurationen pro Aufruf überschreiben — Werte in Ihrer Task-State-Definition setzen die Harness-Standardeinstellungen außer Kraft. Die verfügbaren Parameter finden Sie InvokeHarnessin der Amazon Bedrock AgentCore API-Referenz. Weitere Informationen zu Harness-Ausführungsrollen finden Sie unter Runtime-Berechtigungen im Amazon Bedrock AgentCore Developer Guide.

Tipp

Aktivieren Sie die Transaktionssuche, um Ihre Agentenressourcen besser beobachtbar zu machen. CloudWatch Weitere Informationen finden Sie unter Hinzufügen von Observability zu Ihren Agenturressourcen im CloudWatch Amazon-Benutzerhandbuch.

Informationen zur Integration mit AWS Diensten in Step Functions finden Sie unter Integrieren von -Services undÜbergeben von Parametern an eine Service-API in Step Functions.

Hauptmerkmale von Optimized AgentCore Harness Integration
  • Nur das Request Response (Antwort anfordern) Integrationsmuster wird unterstützt. Die Warten Sie auf einen Rückruf mit Task Token Muster Ausführen einer Aufgabe (.sync) und werden nicht unterstützt.

  • Die Antwort wird in eine Converse-förmige JSON-Struktur umgewandelt. Nur die letzte Assistentennachricht wird zurückgegeben; frühere Runden in Konversationen mit mehreren Runden werden verworfen.

  • Metriken zur Token-Nutzung (InputTokens,OutputTokens,TotalTokens) werden für alle Nachrichten in der Konversation aggregiert.

  • In der Antwort ist nur Textinhalt enthalten. Blöcke zur Verwendung von Tools und zum Argumentieren werden Output.Message.Content weggelassen.

  • Die Ausgabegröße unterliegt dem Ausgabelimit des Aufgabenstatus. Den aktuellen Wert finden Sie unterKontingente im Zusammenhang mit der Ausführung von Aufgaben.

  • Der InvokeHarness Task-Status hat eine maximale Ausführungszeit von 15 Minuten (900 Sekunden), auch wenn der TimeoutSeconds Wert diesen Grenzwert überschreitet. Nach einem Timeout für den Task-Status wird die Ausführung des Harness fortgesetzt, bis der eigene konfigurierte Timeout erreicht ist. Um unerwartete Kosten zu vermeiden, stellen Sie sicher, dass Ihr Harness-Timeout 15 Minuten nicht überschreitet.

  • In der Ansicht mit den Ausführungsdetails der Step Functions Functions-Konsole wird neben dem Agentenschritt ein CloudWatch Link angezeigt, der eine detaillierte Ansicht der Argumentation des Agenten einschließlich der Verwendung des Tools bietet.

Optimierte Amazon Bedrock AgentCore Harness-APIs

Die folgende API wird unterstützt:

InvokeHarness

Ruft einen Harness auf, um einen KI-Agenten auszuführen, der Tools verwenden, auf Speicher zugreifen und Multi-Turn-Konversationen ausführen kann.

Unterstütztes Muster: Nur Antwort auf Anfrage.

Die vollständige Anfragesyntax finden Sie InvokeHarnessin der Amazon Bedrock AgentCore API-Referenz.

Parameter in Step Functions werden ausgedrückt in PascalCase

Auch wenn sich die native Service-API in CamelCase befindet, z. B. die API-AktionstartSyncExecution, geben Sie Parameter in an PascalCase, z. B.:. StateMachineArn

Antwortfelder

  • Output.Message— Die letzte Assistentennachricht des Agenten. Enthält Role (immer"assistant") und Content (eine Reihe von Textblöcken). Nur die letzte Runde des Assistenten wird zurückgegeben. Frühere Runden in Konversationen mit mehreren Runden werden verworfen.

  • Output.Message.Content— Reihe von Inhaltsblöcken. Jeder Block enthält ein Text Feld mit dem Antworttext des Agenten. Es ist nur Textinhalt enthalten; Blöcke zur Verwendung von Tools und Argumentation werden weggelassen.

  • StopReason— Warum der Agent aufgehört hat. Werte: end_turn, max_tokens, stop_sequence, tool_use.

  • Usage— Metriken zum Token-Verbrauch, aggregiert über alle Runden hinweg. Enthält InputTokensOutputTokens, undTotalTokens.

  • Metrics.LatencyMs— Gesamtlatenz bei Aufrufen in Millisekunden, aggregiert über alle Runden.

Antwortsyntax

{ "Output": { "Message": { "Role": "string", "Content": [ { "Text": "string" } ] } }, "StopReason": "string", "Usage": { "InputTokens": long, "OutputTokens": long, "TotalTokens": long }, "Metrics": { "LatencyMs": long } }
Anmerkung

Durch das Stoppen einer Ausführung oder des Task-Status wird der Harness nicht daran gehindert, weiter ausgeführt zu werden.

Definition des Aufgabenstatus für die Amazon Bedrock-Integration AgentCore

Die folgenden Beispiele zeigen, wie ein Task-Status definiert wird, der einen Amazon AgentCore Bedrock-Harness aufruft.

Das RuntimeSessionId Feld identifiziert die Konversationssitzung. Verwenden Sie für mehrere Aufrufe dieselbe Sitzungs-ID, um eine Konversation fortzusetzen.

Anmerkung

Die Step Functions Functions-Ressourcen-URI verwendet bedrockagentcore (kein Bindestrich), während die Amazon AgentCore Bedrock-Ressourcen-ARNs bedrock-agentcore (mit Bindestrich) verwenden.

Beispiel einfacher Aufruf mit Modellüberschreibung und Systemaufforderung
{ "Type": "Task", "Resource": "arn:aws:states:::bedrockagentcore:invokeHarness", "Arguments": { "HarnessArn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:harness/my-agent-harness", "RuntimeSessionId": "{% $uuid() %}", "Messages": [ { "Content": [{ "Text": "{% $states.input.userMessage %}" }], "Role": "user" } ], "SystemPrompt": [{ "Text": "You are a helpful customer service agent." }], "Model": { "BedrockModelConfig": { "Temperature": 0.7, "ModelId": "global.anthropic.claude-sonnet-4-6" } }, "MaxIterations": 75, "TimeoutSeconds": 600 }, "End": true }
Beispiel Aufruf mit Tools (Browser)
{ "Type": "Task", "Resource": "arn:aws:states:::bedrockagentcore:invokeHarness", "Arguments": { "HarnessArn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:harness/order-agent", "RuntimeSessionId": "{% $uuid() %}", "Messages": [ { "Content": [{ "Text": "What is the status of order #12345?" }], "Role": "user" } ], "Tools": [ { "Type": "agentcore_browser", "Name": "aws_browser_v1", "Config": { "AgentCoreBrowser": { "BrowserArn": "arn:aws:bedrock-agentcore:us-east-1:aws:browser/aws.browser.v1" } } } ], "MaxIterations": 10, "TimeoutSeconds": 300 }, "End": true }
Tipp

Sie können diesen Status mithilfe der TestStateAPI einzeln testen, bevor Sie eine vollständige Ausführung ausführen.

Fehlerbehandlung

Die InvokeHarness API kann mit einer Vielzahl von Fehlern fehlschlagen, darunter Drosselung, Überprüfung und Zugriffsverweigerung. Eine vollständige Liste finden Sie unter InvokeHarnessFehler in der Amazon Bedrock AgentCore API-Referenz.

Das folgende Beispiel zeigt einen Aufgabenstatus mit Catch Feldern Retry und zur Fehlerbehandlung:

{ "Type": "Task", "Resource": "arn:aws:states:::bedrockagentcore:invokeHarness", "Arguments": { "HarnessArn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:harness/my-harness", "Messages": [ { "Content": [{ "Text": "{% $states.input.userMessage %}" }], "Role": "user" } ] }, "Retry": [ { "ErrorEquals": ["BedrockAgentCore.ThrottlingException"], "IntervalSeconds": 2, "MaxAttempts": 3, "BackoffRate": 2.0 } ], "Catch": [ { "ErrorEquals": ["BedrockAgentCore.ResourceNotFoundException"], "Next": "HandleNotFound" }, { "ErrorEquals": ["States.ALL"], "Next": "HandleError" } ], "End": true }

IAM-Richtlinien für das Aufrufen von Amazon Bedrock AgentCore

Die folgenden Beispielvorlagen zeigen, wie IAM-Richtlinien auf der Grundlage der Ressourcen in Ihrer State-Machine-Definition AWS Step Functions generiert werden. Weitere Informationen erhalten Sie unter So generiert Step Functions IAM-Richtlinien für integrierte Dienste und Entdecken Sie Serviceintegrationsmuster in Step Functions.

Beispiele für IAM-Richtlinien für die Amazon Bedrock-Integration AgentCore

Die folgenden Beispiele zeigen, wie Sie IAM-Richtlinien für Ihre Step Functions Functions-Ausführungsrolle erstellen können, um mit Amazon AgentCore Bedrock-Ressourcen zu interagieren.

Ersetzen Sie in den folgenden Richtlinienbeispielen die Platzhalterwerte durch Ihre eigenen Werte.

IAM-Richtlinie zum Aufrufen eines bestimmten Harness

Die folgende Beispielrichtlinie ermöglicht das Aufrufen eines bestimmten Amazon AgentCore Bedrock-Harness per ARN.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "InvokeSpecificHarness", "Effect": "Allow", "Action": [ "bedrock-agentcore:InvokeHarness", "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws:bedrock-agentcore:region:accountId:harness/harnessName" } ] }

IAM-Richtlinie zum Aufrufen aller Kabelbäume in einem Konto

Die folgende Beispielrichtlinie ermöglicht das Aufrufen aller Amazon AgentCore Bedrock-Harness in Ihrem Konto. Wir empfehlen, sich nach Möglichkeit auf einen bestimmten Harness-ARN zu beschränken.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "InvokeAllHarnesses", "Effect": "Allow", "Action": [ "bedrock-agentcore:InvokeHarness", "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws:bedrock-agentcore:region:accountId:harness/*" } ] }
Anmerkung

Wenn Ihr Harness Tools wie Gateways, Browser oder Codeinterpreter verwendet, werden diese Berechtigungen für die Harness-Ausführungsrolle konfiguriert, nicht für die Ausführungsrolle Step Functions. Weitere Informationen finden Sie unter Harness Execution Role Permissions im Amazon AgentCore Bedrock-Benutzerhandbuch.