Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Server-side penggunaan alat
Jika Anda menggunakan Responses API untuk memanggil model, maka itu dapat menggunakan pemanggilan alat sisi server, selain pemanggilan alat sisi klien yang telah kita bahas sebelumnya. Server-side pemanggilan alat adalah mekanisme di mana alat (API, fungsi, alur kerja) dijalankan di lingkungan backend tepercaya, bukan pada klien. Ini meningkatkan keamanan, keandalan, dan postur tata kelola aplikasi. Sebelum Amazon Bedrock menjalankan fungsi Lambda yang mengimplementasikan penggunaan alat, ia memastikan bahwa fungsi Lambda memiliki kebijakan IAM yang sama dengan aplikasi yang memanggilnya. Karena Amazon Bedrock menangani eksekusi alat, klien dapat fokus pada penerapan logika bisnis mereka, daripada menambahkan fungsionalitas alat. Amazon Bedrock juga mendukung standar tata kelola tertinggi seperti ISO, SOC, dan HIPAA yang memenuhi syarat. Anda dapat mengirimkan fungsi Lambda kustom Anda sendiri untuk menjalankan alat atau menggunakan alat yang telah ditentukan sebelumnya, seperti catatan dan tugas. Server-side alat yang menggunakan Responses API tersedia mulai dengan 20B/120B model GPT OSS, dengan dukungan untuk model lain segera hadir. Anda dapat menggunakan API Model untuk menemukan model yang tersedia yang dapat Anda gunakan dengan Responses API. Untuk detail selengkapnya tentang Responses API, lihat Mengh asilkan respons menggunakan API OpenAI.
Ada dua jenis alat yang dapat Anda gunakan dengan Amazon Bedrock: Alat khusus menggunakan Lambda, atau alat yang telah ditentukan sebelumnya yang didukung oleh Amazon Bedrock. Bagian ini mencakup cara membuat alat Lambda kustom dengan Responses API. Bagian berikut menjelaskan setiap jenis secara rinci.
Alat kustom menggunakan Lambda di Responses API
Dengan menggunakan fungsi Lambda sebagai alat khusus di Amazon Bedrock, Anda dapat memperluas kemampuan agen dengan mengintegrasikan fungsi Lambda khusus sebagai alat. Dengan ini, Anda dapat membuat alat tanpa server dan dapat diskalakan yang dapat dipanggil oleh asisten AI dan aplikasi lain melalui Model Context Protocol (MCP). Berikut adalah keuntungan dari fitur ini:
Perluas Fungsionalitas: Tambahkan logika bisnis kustom, integrasi API, atau kemampuan pemrosesan data.
Jalankan alat dengan aman: Lambda memungkinkan alat untuk mengakses sumber daya di dalam VPC tanpa harus memberikan akses VPC penuh.
Arsitektur Tanpa Server: Tidak ada manajemen infrastruktur, Lambda menangani penskalaan secara otomatis.
Hemat Biaya: Bayar hanya untuk waktu eksekusi, bukan sumber daya yang menganggur.
Integrasi Mudah: Fungsi Lambda muncul bersama alat bawaan dengan mulus.
Untuk membiarkan model di Amazon Bedrock menggunakan alat untuk menyelesaikan respons pesan, Anda mengirim pesan dan definisi untuk satu atau lebih alat ke model. Berdasarkan permintaan aplikasi Anda, jika model menentukan bahwa salah satu alat dapat membantu menghasilkan respons, model akan mengembalikan permintaan agar Amazon Bedrock menggunakan alat dan mengirim hasil alat kembali ke model. Model kemudian menggunakan hasil untuk menghasilkan respons terhadap pesan asli.
Langkah-langkah berikut menunjukkan cara menggunakan alat dengan Respon ses API.
Cara kerjanya
Fungsi Lambda: Buat fungsi Lambda Anda yang mengimplementasikan protokol MCP
Tool Discovery: Bedrock memanggil fungsi Lambda Anda untuk menemukan alat yang tersedia
Pendaftaran Alat: Alat Anda terdaftar di Bedrock
Eksekusi Alat: Ketika agen meminta alat Anda, Bedrock memanggil fungsi Lambda Anda
Penanganan Respon: Hasil dikembalikan ke agen melalui antarmuka standar
Langkah 1: Tentukan fungsi Lambda untuk mendapatkan lagu paling populer
Buat fungsi Lambda yang mengimplementasikan protokol MCP. Berikut adalah contoh Python sederhana:
import json def lambda_handler(event, context): # Parse JSON-RPC request method = event.get('method') params = event.get('params', {}) request_id = event.get('id') if method == 'tools/list': return { "jsonrpc": "2.0", "id": request_id, "result": { "tools": [ { "name": "my_custom_tool", "description": "My custom business logic tool", "inputSchema": { "type": "object", "properties": { "input": { "type": "string", "description": "Input text to process" } }, "required": ["input"] } } ] } } elif method == 'tools/call': tool_name = params.get('name') arguments = params.get('arguments', {}) if tool_name == 'my_custom_tool': # Your custom logic here result = f"Processed: {arguments.get('input', '')}" return { "jsonrpc": "2.0", "id": request_id, "result": { "content": [ { "type": "text", "text": result } ] } } # Error response for unsupported methods return { "jsonrpc": "2.0", "id": request_id, "error": { "code": -32601, "message": "Method not found" } }
Langkah 2: Terapkan fungsi Lambda
Selanjutnya, gunakan peran IAM Anda untuk menerapkan fungsi Lambda ini untuk mendapatkan ARN. Anda dapat membaca lebih lanjut di Mem ulai dengan Lambda di Panduan Pengembang Lambda.
# Example using AWS CLI aws lambda create-function \ --function-name my-custom-tool \ --runtime python3.14 \ --role arn:aws:iam::YOUR-ACCOUNT:role/lambda-execution-role \ --handler lambda_function.lambda_handler \ --zip-file fileb://function.zip
Katakanlah ARN Anda adalah: arn:aws:lambda:us-west-2:123456789012:function:my-custom-tool
Langkah 3: Tentukan pesan dan definisi alat dalam permintaan inferensi Anda
Untuk mengirim pesan dan definisi alat, Anda menggunakan operasi API Tang gapan. Amazon Bedrock menggunakan konektor dan fungsionalitas server MCP jarak jauh connector_id bidang di Responses connector API, Anda dapat meneruskan Lambda ARN yang telah Anda buat pada langkah sebelumnya. Anda tidak perlu memberikan kredentif otorisasi karena Amazon Bedrock menggunakan peran dan kebijakan IAM yang sama yang digunakan untuk aplikasi Anda yang memanggil model. Berikut ini adalah contoh skema untuk alat yang membuat lagu paling populer diputar di stasiun radio.
from openai import OpenAI client = OpenAI() resp = client.responses.create( model="oss-gpt-120b", tools=[ { "type": "mcp", "server_label": "xamzn_arn", "connector_id": "arn:aws:lambda:us-west-2:123456789012:function:my-custom-tool", "require_approval": "never", }, ], input="My custom prompt.", ) print(resp.output_text)
Langkah 4: Bedrock memanggil alat dan meneruskan respons kembali ke model
Kemampuan untuk menggunakan alat konektor tersedia dalam model yang mendukung Respon ses API
Ketika Anda menentukan fungsi Lambda dalam tools parameter, API akan mencoba untuk mendapatkan daftar alat dari server. Jika berhasil mengambil daftar alat, item mcp_list_tools keluaran baru akan muncul di output respons model. Pro tools perti objek ini akan menunjukkan alat yang berhasil diimpor. Setelah model memiliki akses ke definisi alat ini, ia mungkin memilih untuk memanggilnya tergantung pada apa yang ada dalam konteks model. Ketika model memutuskan untuk memanggil alat Lambda, API akan membuat permintaan ke fungsi Lambda untuk memanggil alat dan memasukkan outputnya ke dalam konteks model. Anda dapat membaca lebih lanjut tentang alat daftar dan alat panggilan dalam dokument asi
{ "jsonrpc": "2.0", "id": 1, "error": { "code": -32000, "message": "Tool execution failed", "data": "Additional error details" } }
Menggunakan alat AWS yang disediakan di Responses API
Ada dua alat AWS yang disediakan yang dibangun ke dalam openai.gpt-oss-120b model openai.gpt-oss-20b dan: Note-taking fungsionalitas (alat catatan) dan manajemen tugas (alat tugas). Alat-alat ini tersedia secara otomatis - Anda tidak perlu mendefinisikannya dalam tools parameter.
Ikhtisar Alat Catatan
notesAlat ini memungkinkan model untuk menyimpan catatan dalam sesi percakapan yang sama. Ini menyediakan mekanisme memori sederhana untuk mempertahankan konteks di beberapa interaksi. Memori hanya dicakup untuk percakapan saat ini.
Ketika model menggunakan alat catatan, ia memancarkan mcp_call output dengan diset name el ke"notes". Model menentukan argumen yang sesuai berdasarkan permintaan Anda.
Anda dapat menggunakan salah satu bahasa alami (misalnya “Ingat bahwa warna favorit saya adalah biru”, “Apa yang saya katakan tentang warna favorit saya?” , “Simpan fakta bahwa saya lebih suka rapat pagi”, “Ingat apa yang saya katakan tentang preferensi rapat”) atau Anda dapat menggunakan panggilan alat langsung di prompt Anda (“Gunakan alat catatan untuk menyimpan email saya sebagai john@example.com “, “Periksa catatan untuk alamat email saya”).
Ikhtisar Alat Tugas
tasksAlat ini menyediakan tumpukan untuk mengelola tugas dalam sesi percakapan. Anda dapat mendorong tugas ke tumpukan dan melepaskannya, membuatnya berguna untuk mengelola alur kerja, pengingat, atau manajemen tugas hierarkis. Tugas tetap ada sepanjang sesi percakapan. Memori hanya dicakup untuk percakapan saat ini.
Ketika model menggunakan alat tugas, ia memancarkan mcp_call output dengan diset name el ke"tasks". Model menentukan argumen yang sesuai (sepertimethod,task.title, dantask.description) berdasarkan permintaan Anda.
Anda dapat memanggil alat Tugas dengan menggunakan bahasa alami (misalnya “Tambahkan tugas untuk meninjau anggaran”, “Dorong pengingat untuk memanggil klien”, “Apa tugas selanjutnya yang perlu saya lakukan?” , “Buka tugas terbaru”, “Dapatkan tugas terbaru dari tumpukan saya”) atau Anda dapat memanggil alat secara langsung di prompt Anda (“Gunakan alat tugas untuk mendorong 'selesaikan presentasi'”, “Masukkan tugas dari tumpukan”, “Tambahkan 'jadwal pertemuan' ke daftar tugas saya”).
Contoh kode: Menggunakan alat catatan dan tugas
Alat catatan dan tugas dibangun ke dalam openai.gpt-oss-120b model openai.gpt-oss-20b dan. Anda tidak perlu mendefinisikannya secara eksplisit dalam tools parameter — cukup referensikan mereka di prompt Anda:
from openai import OpenAI client = OpenAI( base_url="https://bedrock-mantle.us-east-1.api.aws/v1" ) # The notes tool is built-in — just ask the model to use it resp = client.responses.create( model="openai.gpt-oss-120b", input="Use the notes tool to store that my preferred language is Python.", ) print(resp.output) # The model automatically calls the notes tool via mcp_call # Use the tasks tool to push a task resp = client.responses.create( model="openai.gpt-oss-120b", input="Use the tasks tool to push a task: review the API documentation", ) print(resp.output)
Server-side integrasi penggunaan alat dengan Gateway AgentCore
Amazon Bedrock sekarang mendukung AgentCore Gateway sebagai alat sisi server yang memanggil tipe integrasi. Dengan fitur ini, Anda dapat menghubungkan model Anda langsung ke titik akhir AgentCore Gateway untuk akses tanpa batas ke alat yang dikelola melalui infrastruktur gateway.
Integrasi AgentCore Gateway mengikuti pola yang sama dengan integrasi fungsi Lambda, dengan satu perbedaan utama.
Integrasi Lambda:
Menggunakan fungsi Lambda ARN
Langsung memanggil fungsi Lambda AWS
AgentCore Integrasi Gateway:
Menggunakan AgentCore Gateway ARN
Merutekan panggilan alat melalui infrastruktur AgentCore Gateway
Menyediakan manajemen dan penemuan alat terpusat
Konfigurasi
Struktur Permintaan
Saat mengonfigurasi AgentCore Gateway sebagai sumber alat, gunakan struktur berikut dalam tools array Anda dalam permintaan Responses API Anda.
{ "type":"mcp", "server_label":"agentcore_tools", "connector_id":"arn:aws:bedrock-agentcore:us-west-2:342789630635:gateway/agentcore-intro-gateway-v2-swvq44sovp", "server_description":"AgentCore Gateway providing custom tools", "require_approval":"never" }
Parameter
| Parameter | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
type |
string | Ya | Harus diatur ke mcp |
server_label |
string | Ya | Pengidentifikasi unik untuk konektor alat ini dalam permintaan Anda |
connector_id |
string | Ya | ARN AgentCore Gateway Anda |
server_description |
string | Tidak | Human-readable deskripsi alat yang disediakan oleh gateway ini |
require_approval |
string | Ya | Bidang harus "never" |
Contoh Permintaan Lengkap
{ "model":"openai.gpt-oss-120b", "stream":true, "background":false, "store":false, "tools": [ { "type":"mcp", "server_label":"agentcore_tools", "connector_id":"arn:aws:bedrock-agentcore:us-west-2:342789630635:gateway/agentcore-intro-gateway-v2-swvq44sovp", "server_description":"AgentCore Gateway providing custom tools", "require_approval":"never" } ], "input": [ { "type":"message", "role":"user", "content": [ { "type":"input_text", "text":"What is the weather in Seattle?" } ] } ] }
Prasyarat
Sebelum menggunakan integrasi AgentCore Gateway, pastikan Anda memiliki:
Membuat AgentCore Gateway dengan target yang dikonfigurasi (fungsi Lambda, tahap API Gateway, skema OpenAPI, atau server MCP)
Izin IAM yang dikonfigurasi memungkinkan peran layanan Bedrock Anda untuk memanggil gateway. Perhatikan bahwa Bedrock hanya mendukung gateway dengan otentikasi IAM.
Gateway ARN dalam format yang benar
Manfaat Integrasi AgentCore Gateway
Manajemen Alat Terpusat: Kelola semua alat Anda melalui satu titik akhir gateway
Penemuan Alat: Agen dapat secara dinamis menemukan alat yang tersedia melalui gateway
Keamanan: Built-in otentikasi dan otorisasi melalui kebijakan IAM dan gateway
Pengamatan: Pemantauan komprehensif dan pencatatan pemanggilan alat
Fleksibilitas: Dukungan untuk beberapa jenis target (Lambda, API Gateway, OpenAPI, server MCP)
Izin IAM
Peran eksekusi Bedrock Anda memerlukan izin untuk memanggil Gateway: AgentCore
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:InvokeGateway" ], "Resource": "arn:aws:bedrock-agentcore:us-west-2:342789630635:gateway/agentcore-intro-gateway-v2-swvq44sovp" } ] }
Langkah Berikutnya
Pelajari lebih lanjut tentang membuat AgentCore Gateway
Jelaj ahi jenis target gateway
Tinjau praktik terbaik keamanan gateway