Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan sampling dengan AgentCore gateway Anda
Sampling adalah fitur MCP yang memungkinkan server MCP untuk meminta penyelesaian LLM dari klien selama panggilan alat. Hal ini memungkinkan server untuk memanfaatkan kemampuan AI tanpa memerlukan akses langsung ke model bahasa — klien menangani pemanggilan model dan mengembalikan hasilnya. AgentCore Gateway meneruskan permintaan sampling dari target server MCP ke klien Anda, mengganti permintaan id dengan pengenal yang dihasilkan gateway.
Prasyarat
Untuk menggunakan sampling dengan gateway Anda:
-
Sesi diaktifkan (versi 2025-11-25 dan sebelumnya) - Pengambilan sampel memerlukan dukungan sesi. Lihat Menggunakan sesi MCP dengan gateway Anda. Untuk versi
2026-07-28dan yang lebih baru, Anda tidak perlu menambahkansessionConfigurationke gateway Anda, karena versi ini bersifat stateless. -
Streaming respons diaktifkan (versi 2025-11-25 dan sebelumnya) - Permintaan pengambilan sampel dikirim sebagai potongan SSE selama koneksi terbuka. Set
streamingConfiguration.enableResponseStreamingel ketruedalam gateway AndaprotocolConfiguration.mcp. Untuk versi2026-07-28dan yang lebih baru, Anda tidak perlu mengaktifkan streaming respons. Versi ini memberikan sampling melalui pola permintaan multi pulang pergi (MRTR) alih-alih permintaan yang diprakarsai server pada aliran respons. Untuk informasi selengkapnya, lihat Per mintaan multi pulang-pergi dalam dokumentasi Model Context Protocol. -
Jenis target server MCP — Permintaan pengambilan sampel berasal dari target server MCP.
-
Klien menyatakan kemampuan pengambilan sampel — Klien harus menyatakan dukungan untuk pengambilan sampel untuk gateway untuk meneruskan permintaan pengambilan sampel. Untuk versi
2025-11-25dan sebelumnya, klien menyatakan dukungan ini dalaminitializepermintaan. Untuk versi2026-07-28dan yang lebih baru, klien mendeklarasikannya untuk setiap permintaan di_metabidang (io.modelcontextprotocol/clientCapabilities).
Cara kerja sampling
Ketika target server MCP membutuhkan penyelesaian LLM selama eksekusi alat, itu mengirimkan permintaansampling/createMessage. Gateway meneruskan permintaan ini ke klien sebagai peristiwa SSE, menggantikan permintaanid. Klien memanggil model bahasanya dan mengirimkan hasilnya kembali ke gateway, yang meneruskannya ke target.
catatan
Alur yang dijelaskan di sini berlaku untuk versi 2025-11-25 dan sebelumnya, di mana server mengirim sampling/createMessage sebagai permintaan yang diprakarsai server pada aliran SSE terbuka. Untuk versi 2026-07-28 dan yang lebih baru, sampling malah menggunakan pola permintaan multi pulang pergi (MRTR). Server mengembalikan hasil sementara dengan diset resultType el keinput_required. Klien kemudian memberikan penyelesaian pada percobaan ulang permintaan asli. Untuk informasi selengkapnya, lihat Per mintaan multi pulang-
Permintaan pengambilan sampel meliputi:
-
messages— Pesan percakapan untuk dikirim ke model. -
modelPreferences— Petunjuk opsional tentang kemampuan model yang diinginkan (kecerdasan, kecepatan, biaya). -
systemPrompt- Prompt sistem opsional untuk model. -
maxTokens— Jumlah maksimum token yang akan dihasilkan.
Klien merespons dengan:
-
modelModel yang digunakan. -
role— Selaluassistant. -
content— Konten yang dihasilkan (teks atau gambar).
catatan
Klien memiliki kontrol penuh atas model mana yang akan digunakan dan bagaimana menangani permintaan. Server modelPreferences adalah petunjuk, bukan persyaratan. Klien juga dapat memodifikasi atau menolak permintaan berdasarkan kebijakannya sendiri.
Aliran pengambilan sampel
-
Klien mengirim
tools/callpermintaan denganMcp-Session-Idheader. -
Gateway meneruskan panggilan alat ke target server MCP.
-
Target membuka aliran SSE dan mengirim
sampling/createMessagepermintaan. -
Gateway meneruskan permintaan sampling ke klien sebagai peristiwa SSE, menggantikan permintaan
id. -
Klien memanggil model bahasanya dengan pesan yang disediakan.
-
Klien mengirimkan permintaan baru dengan hasil pengambilan sampel menggunakan permintaan yang sama
Mcp-Session-Iddaniddari permintaan gateway. -
Gateway meneruskan hasilnya ke target server MCP.
-
Target melanjutkan pemrosesan dan mengembalikan hasil alat akhir.
-
Gateway meneruskan hasil akhir ke klien dan menutup aliran.
Panduan untuk pengembang target server MCP
penting
Target server MCP yang mengirim permintaan pengambilan sampel harus membungkus panggilan pengambilan sampel dalam blok try-catch dan menangani kasus di mana klien tidak mendukung pengambilan sampel. Jika klien gateway tidak mendeklarasikan kemampuan sampling, gateway tidak mendeklarasikannya ke target. Jika target tetap mengirimkan permintaan pengambilan sampel, gateway mengembalikan kesalahan -32601 (Metode tidak ditemukan) ke target.
Server harus menerapkan jalur fallback (seperti menggunakan model bawaan atau melewatkan AI-assisted langkah) saat sampling tidak tersedia.
Mengamankan status permintaan (versi 2026-07-28 dan yang lebih baru)
Pada versi 2026-07-28 dan yang lebih baru, sampling menggunakan pola permintaan multi pulang pergi (MRTR), yang membawa buram requestState antara klien Anda dan target server MCP Anda. Mengamankan nilai itu adalah tanggung jawab bersama: gateway mengotorisasi dan meneruskannya tanpa menyimpannya, sementara target server MCP Anda harus memvalidasinya dan mencegah satu pengguna memutar ulang status permintaan pengguna lain. Untuk model tanggung jawab bersama penuh dan panduan perlindungan yang harus diikuti server MCP Anda, lihat Mengam ankan status permintaan untuk elisitasi dan pengambilan sampel dalam pertimbangan target server MCP.
Penanganan kesalahan
| Skenario | Kesalahan | Deskripsi |
|---|---|---|
|
Klien mengirimkan respons pengambilan sampel ketika tidak ada permintaan pengambilan sampel yang tertunda |
JSON-RPC |
Tidak ada permintaan sampling yang cocok ditemukan untuk sesi ini. |
|
Klien mengirimkan respon sampling dengan |
JSON-RPC |
|
|
Server MCP mengirimkan permintaan sampling tetapi gateway tidak mendeklarasikan dukungan |
JSON-RPC |
Kembali ke target server MCP. Lihat Pem ecahan Masalah. |
Pemecahan masalah
Kesalahan: “Kesalahan memanggil alat 'sample_tool': Metode tidak ditemukan:" sampling/createMessage
Kesalahan ini terjadi ketika target server MCP mengirimkan permintaan sampling tetapi klien gateway tidak mendeklarasikan kemampuan sampling. Untuk versi 2025-11-25 dan sebelumnya, klien menyatakan kemampuan ini selamainitialize. Untuk versi 2026-07-28 dan yang lebih baru, klien mendeklarasikannya untuk setiap permintaan di _meta lapangan. Gateway mengembalikan kesalahan -32601 (Metode tidak ditemukan) ke target. Target mungkin mengembalikan ini sebagai kesalahan eksekusi alat ke klien.
Untuk menyelesaikan:
-
Jika Anda adalah pengembang server MCP: Tambahkan penanganan kesalahan di sekitar panggilan sampling Anda. Terapkan jalur fallback saat sampling tidak didukung:
penting
Anda harus menyertakan
related_request_id=ctx.request_context.request_iddalamcreate_messagepanggilan Anda. Ini diperlukan agar gateway mengaitkan permintaan pengambilan sampel dengan benar dengan panggilan alat asal. Tanpa itu, sampling tidak akan berfungsi.try: result = await ctx.session.create_message( messages=[{"role": "user", "content": {"type": "text", "text": "Summarize this document"}}], max_tokens=500, related_request_id=ctx.request_context.request_id, ) except Exception as e: # Fallback when client doesn't support sampling logger.warning(f"Sampling not supported: {e}") result = fallback_summarization(document) -
Jika Anda adalah pengembang klien gateway: Untuk versi
2025-11-25dan yang lebih lama, pastikan klien Anda menyatakan kemampuan pengambilan sampel selamainitialize. Untuk versi2026-07-28dan yang lebih baru, deklarasikan untuk setiap permintaan di_metabidang (io.modelcontextprotocol/clientCapabilities). Contoh berikut menunjukkaninitializedeklarasi:{ "capabilities": { "sampling": {} } }
Sampel Kode
catatan
Klien LangGraph MCP (langchain-mcp-adapters) dan Klien MCP Strands saat ini tidak mendukung pengambilan sampel. Gunakan pendekatan Klien MCP yang ditunjukkan di bawah ini untuk menangani permintaan sampling dari gateway Anda.