View a markdown version of this page

Creazione di agenti IA - Amazon Nova

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione di agenti IA

I modelli Amazon Nova sono ottimizzati per la creazione di agenti di intelligenza artificiale con Amazon Nova Act. I modelli offrono un migliore utilizzo degli strumenti, un migliore ragionamento per le attività in più fasi, una maggiore capacità di mantenere il contesto tra flussi di lavoro complessi con agenti e il supporto per strumenti MCP remoti.

Creazione di un agente

Gli agenti di intelligenza artificiale creati con Nova possono orchestrare più chiamate agli strumenti, mantenere il contesto durante le interazioni estese e correggere la rotta quando necessario. Il pensiero esteso trasforma i flussi di lavoro agentici abilitando un ragionamento sistematico attraverso obiettivi complessi. Prendi in considerazione l'utilizzo di un framework di pianificazione SDK come Strands Agents per rendere più robusto il processo di pianificazione ed esecuzione dei tuoi sistemi di agenti.

Modelli di progettazione degli agenti

Quando si progettano agenti con Nova:

  • Abilita il ragionamento a medio o alto per ottenere i migliori risultati per flussi di lavoro complessi in più fasi che richiedono pianificazione e verifica

  • autoImplementa la scelta degli strumenti per consentire una selezione flessibile degli strumenti tra le interazioni tra gli agenti

  • Gestione degli errori di progettazione che consenta agli agenti di ripristinare e riprovare con approcci modificati

  • Conserva la cronologia delle conversazioni per preservare il contesto tra le interazioni con gli agenti

  • Implementa solidi meccanismi di filtraggio e moderazione dei contenuti sui contenuti non controllati utilizzati dal tuo sistema di agenti. Ad esempio, Amazon offre Amazon Bedrock Guardrails, una funzionalità progettata per applicare misure di protezione a più modelli di base, knowledge base e agenti. Questi guardrail possono filtrare i contenuti dannosi, bloccare gli argomenti negati e oscurare informazioni sensibili come le informazioni di identificazione personale.

Esempio di agente multiutensile

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"         }     } )

Invocazione di un agente

La chiamata all'agente implica la gestione del flusso di conversazione, l'elaborazione delle chiamate agli strumenti e il mantenimento dello stato durante più interazioni.

Streaming delle risposte degli agenti

Trasmetti le risposte per fornire visibilità in tempo reale sul ragionamento e sulle azioni dell'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)

Gestione dello stato dell'agente

Conserva la cronologia delle conversazioni e i risultati degli strumenti per preservare il contesto; l'esempio seguente lo dimostra per un singolo turno, ma lo sviluppatore può determinare come orchestrare il sistema generale degli agenti in base ai requisiti del flusso di lavoro. Inoltre, gli strumenti di Amazon Web Services come Strands gestiscono il contesto dell'agente e lo stato dello strumento per conto dello sviluppatore.

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     )

Best practice per gli agenti

Per ulteriori informazioni sulle best practice degli agenti, vedereBest practice generali.

Per indicazioni sullo sviluppo di agenti di intelligenza artificiale conversazionale, consulta. Speech-to-Speech (Amazon Nova 2 Sonic)