

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

# Ruang lingkup alat
<a name="mcp-tool-strategy-scope"></a>

Ada dua pendekatan untuk mengembangkan alat: granular dan berbutir kasar.

## Granular
<a name="mcp-tool-strategy-scope-granular"></a>

Dalam pendekatan granular, Anda akan membuat alat per API, tindakan, atau kueri. Misalnya, Anda dapat membuat`create_issue`,,, `get_issue` `add_label``assign_issue`, dan `close_issue` alat untuk repositori Git Anda. Ini akan memungkinkan LLM untuk membuat panggilan granular ke setiap API dan mengatur masing-masing sesuai kebutuhan. Pertimbangkan prompt berikut: “Buat masalah untuk layanan produk yang disebut 'Kueri hanya mengembalikan hasil parsial', beri label sebagai bug dan prioritas tinggi, dan tetapkan ke Alice.” Gambar berikut menunjukkan bagaimana pendekatan Tool-per-API akan merespons prompt ini.

![Pendekatan granular dengan alat per API.](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/mcp-strategies/images/tool-per-api-approach.png)


Dalam pendekatan ini prompt sistem dan setiap definisi alat terdaftar disediakan untuk LLM pada setiap panggilan. Ini menggunakan konteks tambahan dan menimbulkan penalti latensi karena setiap panggilan alat mewakili panggilan individu ke LLM. Hal ini juga meningkatkan kompleksitas penanganan kesalahan dalam alur kerja.

## Coarse-grained
<a name="mcp-tool-strategy-scope-coarse"></a>

Pendekatan berbutir kasar, atau *didorong oleh alur kerja, akan menjadi alat* yang berorientasi pada alur kerja. Alat ini berfokus pada maksud pengguna ujung ke ujung atas struktur API. Alih-alih Tool-per-API, Anda memiliki satu alat yang secara deterministik memanggil banyak API. Menggunakan contoh repositori Git sebelumnya, Anda dapat membuat `create_and_setup_issue` alat yang dipanggil sekali oleh agen. Implementasi alat menciptakan masalah, menambahkan label, dan menetapkannya ke pengguna, berdasarkan parameter yang disediakan untuk alat. Gambar berikut menunjukkan bagaimana pendekatan berbutir kasar akan memproses prompt yang sama.

![Coarse-grained pendekatan, di mana alat berorientasi pada alur kerja.](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/mcp-strategies/images/coarse-grained-approach.png)


Pendekatan ini menunjukkan bagaimana semua kompleksitas tetap tersembunyi dari lapisan LLM. Ketika logika orkestrasi tertanam dalam implementasi alat, semua langkah berurutan, logging, logika coba lagi, pemutus sirkuit, dan pembatasan laju dilakukan secara deterministik di alat. Pendekatan berbasis alur kerja membuatnya lebih mudah bagi LLM untuk menggunakan alat yang benar dengan parameter yang tepat. Penting untuk dicatat bahwa beberapa API mungkin sudah menyediakan maksud alur kerja, seperti Amazon `RunInstances` EC2 API. Dalam kasus ini, Tool-per-API mungkin menyediakan desain berorientasi alur kerja yang Anda inginkan.

Namun, alat bisa menjadi terlalu kasar juga. Jika alat alur kerja tunggal Anda mencoba melakukan terlalu banyak hal dan memiliki banyak parameter yang mungkin, LLM dapat berjuang untuk bernalar tentang cara menggunakan alat dengan benar. Itu juga dapat menciptakan tantangan dengan pemilihan parameter dan penanganan kesalahan. Dengan demikian, pengembangan alat harus mencapai keseimbangan yang selaras dengan maksud pengguna dan menghindari terlalu sedikit atau terlalu banyak fungsionalitas dalam satu alat. Kami menyarankan Anda merancang alat di sekitar alur kerja pengguna yang lengkap, operasi bundling yang biasanya terjadi bersamaan (seperti tiga atau lebih panggilan API). Kami juga menyarankan Anda menguraikan alat yang melebihi delapan parameter atau lebih atau menangani beberapa maksud pengguna yang berbeda. Uji dengan petunjuk nyata untuk memverifikasi bahwa agen dapat menggunakan setiap alat dengan benar.

*Jika Anda memiliki alur kerja yang kompleks dan dinamis yang tidak dapat dengan mudah dienkapsulasi sebagai alat deterministik, Anda dapat mempertimbangkan untuk menggunakan pola agen-sebagai-alat.* Alih-alih agen utama Anda mencoba mengatur tugas-tugas kompleks dalam alur kerja, agen khusus dapat bertindak sebagai alat. Jenis alat ini dapat menerapkan pengambilan keputusan dan percabangan tingkat lanjut, dan mereka dapat menangani kesalahan dan mencoba kembali logika yang tidak dapat dengan mudah dikelola dalam kode deterministik. Ini mirip dengan, tetapi berbeda dari, protokol [Agent2Agent (A2A](https://a2a-protocol.org/latest/)). Protokol A2A saling melengkapi, menyediakan interoperabilitas dan kolaborasi antar agen dalam kerangka kerja agen apa pun.

Kami menyarankan Anda memulai dengan analisis alur kerja Anda dengan memetakan alur kerja pengguna yang paling umum untuk mengidentifikasi kemampuan inti yang dibutuhkan setiap agen. Ini menetapkan toolset minimum Anda yang layak. Berdasarkan pengalaman kami mengembangkan server MCP dalam skala besar, kami merekomendasikan praktik berikut. **Ketika praktik ini bertentangan, prioritaskan maksud pengguna dan alur kerja.**

## Praktik terbaik untuk pelingkupan alat MCP
<a name="mcp-tool-strategy-scope-best-practices"></a>
+ **Pikirkan cerita pengguna dan bundel operasi umum** — Alat harus memetakan langsung untuk menyelesaikan interaksi pengguna daripada memerlukan orkestrasi beberapa operasi. Jika alur kerja biasanya memerlukan tiga atau lebih panggilan terpisah, gabungkan mereka menjadi satu alat. Ini mengurangi beban kognitif pada LLM, meminimalkan jumlah panggilan alat, mengurangi konsumsi konteks dan latensi yang diperlukan untuk menyelesaikan tugas, dan meningkatkan akurasi dan latensi.
+ **Batasi parameter hingga delapan atau kurang —** Jika alat melebihi delapan parameter, uraikan menjadi beberapa alat. LLM berjuang dengan pemilihan parameter saat kompleksitas meningkat.
**catatan**  
Jika operasi bundling membutuhkan lebih dari delapan parameter, prioritaskan bundling di atas jumlah parameter karena menyederhanakan alur kerja lebih berharga daripada batas parameter yang ketat.
+ **Operasi baca dan tulis terpisah -** Sediakan alat yang berbeda untuk membaca data dan memodifikasinya. Pemisahan ini membuatnya eksplisit ketika agen melakukan operasi yang berpotensi merusak, memungkinkan kebijakan otorisasi yang berbeda, dan mengurangi risiko modifikasi yang tidak diinginkan selama pengumpulan informasi.
+ **Berikan default yang masuk akal** - Alat desain sehingga LLM hanya perlu menentukan parameter yang spesifik untuk permintaan individu. Default mengurangi kompleksitas parameter dan meningkatkan akurasi pemilihan alat dengan meminimalkan informasi yang harus dipertimbangkan LLM.
+ **Lebih suka eksekusi deterministik —** Jadikan eksekusi alat dan output deterministik bila memungkinkan. Alat deterministik lebih andal dan lebih mudah diuji. Untuk alur kerja kompleks yang memerlukan orkestrasi cerdas, logika percabangan, atau penanganan kesalahan lanjutan yang tidak dapat dengan mudah dikelola dalam kode deterministik, pertimbangkan untuk menggunakan agen khusus sebagai alat. Namun, gunakan pola ini secara selektif karena menambah kompleksitas.