

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Membangun agen AI
<a name="building-ai-agents"></a>

Model Amazon Nova dioptimalkan untuk membangun agen AI dengan Amazon Nova Act. Model menyediakan penggunaan alat yang ditingkatkan, penalaran yang lebih baik untuk tugas multi-langkah, peningkatan kemampuan untuk mempertahankan konteks di seluruh alur kerja agen yang kompleks dan dukungan untuk alat MCP jarak jauh.

## Buat agen
<a name="create-agent"></a>

Agen AI yang dibangun dengan Nova dapat mengatur beberapa panggilan alat, mempertahankan konteks di seluruh interaksi yang diperluas, dan mengoreksi kursus saat diperlukan. Pemikiran yang diperluas mengubah alur kerja agen dengan memungkinkan penalaran sistematis melalui tujuan yang kompleks. Pertimbangkan untuk menggunakan kerangka perencanaan SDK seperti Strands Agents untuk membuat proses perencanaan dan pelaksanaan sistem agen Anda lebih kuat.

### Pola desain agen
<a name="agent-design-patterns"></a>

Saat merancang agen dengan Nova:
+ Aktifkan penalaran pada medium atau tinggi untuk hasil terbaik untuk alur kerja multi-langkah kompleks yang memerlukan perencanaan dan verifikasi
+ Menerapkan pilihan alat `auto` untuk memungkinkan pemilihan alat yang fleksibel di seluruh interaksi agen
+ Penanganan kesalahan desain yang memungkinkan agen memulihkan dan mencoba lagi dengan pendekatan yang dimodifikasi
+ Pertahankan riwayat percakapan untuk mempertahankan konteks di seluruh interaksi agen
+ Terapkan mekanisme pemfilteran dan moderasi konten yang kuat di seluruh konten yang tidak terkontrol yang dikonsumsi sistem agen Anda. Misalnya, Amazon menawarkan Amazon Bedrock Guardrails, fitur yang dirancang untuk menerapkan perlindungan di berbagai model pondasi, basis pengetahuan, dan agen. Pagar pembatas ini dapat menyaring konten berbahaya, memblokir topik yang ditolak, dan menyunting informasi sensitif seperti informasi yang dapat diidentifikasi secara pribadi.

### Contoh agen multi-alat
<a name="multi-tool-agent-example"></a>

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

## Meminta agen
<a name="invoke-agent"></a>

Pemanggilan agen melibatkan pengelolaan alur percakapan, memproses panggilan alat, dan mempertahankan status di berbagai interaksi.

### Tanggapan agen streaming
<a name="stream-agent-responses"></a>

Streaming tanggapan untuk memberikan visibilitas real-time ke dalam penalaran dan tindakan agen:

```
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)
```

### Manajemen negara agen
<a name="manage-agent-state"></a>

Pertahankan riwayat percakapan dan hasil alat untuk mempertahankan konteks; contoh di bawah ini menunjukkan ini untuk satu putaran, tetapi pengembang dapat menentukan cara mengatur sistem agen secara keseluruhan berdasarkan persyaratan alur kerja. Selain itu, alat Amazon Web Services seperti Strands mengelola konteks agen dan status alat atas nama pengembang.

```
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 
    )
```

### Praktik Terbaik Agen
<a name="agent-best-practices"></a>

Untuk informasi selengkapnya tentang Praktik Terbaik Agen, lihat[Praktik terbaik umum](prompting-best-practices.md).

Untuk panduan mengembangkan agen AI Percakapan, lihat[Speech-to-Speech (Amazon Nova 2 Sonic)](using-conversational-speech.md).