Creación de agentes de IA
Los modelos de Amazon Nova están optimizados para crear agentes de IA con Amazon Nova Act. Los modelos proporcionan un mejor uso de las herramientas, un mejor razonamiento para tareas de varios pasos, una capacidad mejorada para mantener el contexto en los flujos de trabajo complejos de los agentes y compatibilidad con herramientas MCP remotas.
Creación de un agente
Los agentes de IA creados con Nova pueden orquestar varias llamadas a herramientas, mantener el contexto durante interacciones prolongadas y corregir el rumbo cuando sea necesario. El pensamiento extendido transforma los flujos de trabajo de los agentes al permitir el razonamiento sistemático a través de objetivos complejos. Considere la posibilidad de utilizar un SDK de marco de planificación, como Strands Agents, para reforzar el proceso de planificación y ejecución de los sistemas de agentes.
Patrones de diseño de agentes
Al diseñar agentes con Nova:
-
Habilite el razonamiento medio o alto para obtener los mejores resultados en flujos de trabajo complejos de varios pasos que requieran planificación y verificación.
-
Implemente una elección de herramientas
autopara permitir una selección flexible de herramientas en todas las interacciones entre los agentes. -
Diseñe una gestión de errores que permita a los agentes recuperarse y volver a intentarlo con enfoques modificados.
-
Mantenga el historial de conversaciones para conservar el contexto en todas las interacciones entre los agentes.
-
Implemente mecanismos sólidos de filtrado y moderación del contenido en contenido no controlado que consume el sistema de agentes. Por ejemplo, Amazon ofrece Barreras de protección para Amazon Bedrock, una característica diseñada para aplicar barreras de protección en varios modelos fundacionales, bases de conocimiento y agentes. Estas barreras de protección pueden filtrar el contenido dañino, bloquear temas denegados y ocultar información confidencial, como la información de identificación personal.
Ejemplo de agente multiherramienta
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" } } )
Invocación de un agente
La invocación de un agente implica administrar el flujo de la conversación, procesar las llamadas a herramientas y mantener el estado en varias interacciones.
Transmisión de respuestas del agente
Transmita las respuestas para proporcionar visibilidad en tiempo real del razonamiento y las acciones del agente:
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)
Administración del estado del agente
Mantenga el historial de conversaciones y los resultados de la herramienta para preservar el contexto. En el siguiente ejemplo, se muestra para un solo turno, pero el desarrollador puede determinar cómo orquestar el sistema de agentes general en función de los requisitos del flujo de trabajo. Además, las herramientas de Amazon Web Services, como Strands, administran el contexto del agente y el estado de la herramienta en nombre del desarrollador.
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 )
Prácticas recomendadas para agentes
Para obtener más información sobre las prácticas recomendadas para agentes, consulte Prácticas recomendadas generales.
Para obtener orientación sobre el desarrollo de agentes de IA conversacional, consulte Voz a voz (Amazon Nova 2 Sonic).