View a markdown version of this page

KI-Agenten erstellen - Amazon Nova

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.

KI-Agenten erstellen

Amazon Nova-Modelle sind für die Erstellung von KI-Agenten mit Amazon Nova Act optimiert. Die Modelle bieten eine verbesserte Nutzung der Tools, eine bessere Argumentation für mehrstufige Aufgaben, eine verbesserte Fähigkeit, den Kontext in komplexen Agenten-Workflows aufrechtzuerhalten, und Unterstützung für Remote-MCP-Tools.

Erstellen eines Agenten

Mit Nova entwickelte KI-Agenten können mehrere Tool-Aufrufe orchestrieren, den Kontext über ausgedehnte Interaktionen hinweg beibehalten und bei Bedarf Kurskorrekturen vornehmen. Erweitertes Denken verändert die Arbeitsabläufe von Agenturen, indem es systematisches Denken im Hinblick auf komplexe Ziele ermöglicht. Erwägen Sie die Verwendung eines Planungsrahmen-SDK wie Strands Agents, um den Planungs- und Ausführungsprozess Ihrer Agentensysteme robuster zu gestalten.

Entwurfsmuster für Agenten

Beim Entwerfen von Agenten mit Nova:

  • Ermöglichen Sie optimale Ergebnisse bei komplexen, mehrstufigen Workflows, die Planung und Überprüfung erfordern

  • Implementieren Sie die Toolauswahlauto, um eine flexible Werkzeugauswahl bei allen Interaktionen mit Agenten zu ermöglichen

  • Entwerfen Sie eine Fehlerbehandlung, die es den Agenten ermöglicht, den Vorgang mit modifizierten Ansätzen wiederherzustellen und es erneut zu versuchen

  • Pflegen Sie den Konversationsverlauf, um den Kontext aller Agenteninteraktionen beizubehalten

  • Implementieren Sie robuste Mechanismen zur Inhaltsfilterung und Moderation für unkontrollierte Inhalte, die Ihr Agentensystem konsumiert. Amazon bietet beispielsweise Amazon Bedrock Guardrails an, eine Funktion, mit der Schutzmaßnahmen für mehrere Fundamentmodelle, Wissensdatenbanken und Agenten angewendet werden können. Diese Leitplanken können schädliche Inhalte filtern, abgelehnte Themen blockieren und vertrauliche Informationen wie personenbezogene Daten unkenntlich machen.

Beispiel für einen Agenten mit mehreren Tools

tool_config = {     "tools": [         {             "toolSpec": {                 "name": "calculator",                 "description": "Perform mathematical calculations",                 "inputSchema": {                     "json": {                         "type": "object",                         "properties": {                             "expression": {                                 "type": "string",                                 "description": "Mathematical expression to evaluate"                             }                         },                         "required": ["expression"]                     }                 }             }         },         {             "toolSpec": {                 "name": "database_query",                 "description": "Query financial database for historical data",                 "inputSchema": {                     "json": {                         "type": "object",                         "properties": {                             "query": {                                 "type": "string",                                 "description": "SQL query to execute"                             }                         },                         "required": ["query"]                     }                 }             }         }     ] } response = client.converse(     modelId=" us.amazon.nova-2-lite-v1:0",     messages=[{         "role": "user",         "content": [{             "text": "Analyze our Q3 financial performance across all business units, calculate year-over-year growth rates with statistical significance testing, and recommend budget allocation strategies for Q4."         }]     }],     toolConfig=tool_config,     inferenceConfig={"maxTokens": 10000, "temperature": 1, “topP”: 0.9},     additionalModelRequestFields={         "reasoningConfig": {             "type": "enabled",             "maxReasoningEffort": "low"         }     } )

Aufrufen eines Agenten

Der Agentenaufruf umfasst die Verwaltung des Konversationsflusses, die Verarbeitung von Toolaufrufen und die Beibehaltung des Status über mehrere Interaktionen hinweg.

Antworten der Agenten streamen

Streamen Sie Antworten, um in Echtzeit Einblick in die Überlegungen und Aktionen des Agenten zu erhalten:

import boto3 response = client.converse_stream(     modelId=" us.amazon.nova-2-lite-v1:0",     messages=[{         "role": "user",         "content": [{             "text": "Design a scalable microservices architecture for an e-commerce platform handling 1M+ daily transactions. Consider data consistency, fault tolerance, performance, security, and cost optimization."         }]     }],     inferenceConfig={"maxTokens": 10000, "temperature": 10},     additionalModelRequestFields={         "reasoningConfig": {             "type": "enabled",             "maxReasoningEffort": "low"         }     } ) # Process the streaming response reasoning_complete = False for event in response["stream"]:     if "contentBlockDelta" in event:         delta = event["contentBlockDelta"]["delta"]                  if "reasoningContent" in delta:             reasoning_text = delta["reasoningContent"]["reasoningText"]["text"]             print(f"{reasoning_text}", end="", flush=True)         elif "text" in delta:             if not reasoning_complete:                 print(f" Final Architecture Design: ")                 reasoning_complete = True             print(f"{delta['text']}", end="", flush=True)

Verwaltung des Status der Agenten

Pflegen Sie den Konversationsverlauf und die Tool-Ergebnisse, um den Kontext zu wahren. Das folgende Beispiel zeigt dies für einen einzigen Zug, aber der Entwickler kann anhand der Workflow-Anforderungen festlegen, wie das gesamte Agentensystem orchestriert werden soll. Darüber hinaus verwalten Amazon Web Services Services-Tools wie Strands den Agentenkontext und den Status des Tools im Namen des Entwicklers.

messages = [] messages = [] # Initial user query messages.append({     "role": "user",     "content": [{"text": user_query}] }) # Get agent response response = client.converse(     modelId=" us.amazon.nova-2-lite-v1:0",     messages=messages,     toolConfig=tool_config,     inferenceConfig=inf_params ) # Add assistant response to history messages.append(response["output"]["message"]) # Process tool calls and add results if response["stopReason"] == "tool_use":     tool = next(         block["toolUse"]         for block in response["output"]["message"]["content"]         if "toolUse" in block     )          # Execute tool     result = execute_tool(tool["name"], tool["input"])          # Add tool result to conversation     messages.append({         "role": "user",         "content": [{             "toolResult": {                 "toolUseId": tool["toolUseId"],                 "content": [{"json": result}],                 "status": "success"             }         }]     })          # Continue conversation     response = client.converse(         modelId=" us.amazon.nova-2-lite-v1:0",         messages=messages,         toolConfig=tool_config,         inferenceConfig=inf_params     )

Bewährte Methoden für Agenten

Weitere Informationen zu Best Practices für Agenten finden Sie unterAllgemeine bewährte Methoden.

Anleitungen zur Entwicklung von Conversational AI-Agenten finden Sie unterSpeech-to-Speech (Amazon Nova 2 Sonic).