Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Definisi alat
Ketika LLM menerima permintaan yang tidak dapat ditangani secara langsung, LLM akan meninjau alat yang tersedia untuk membantunya menyelesaikan permintaan. LLM memilih alat berdasarkan pemahaman semantiknya tentang nama dan deskripsi alat yang disediakan dan instruksi apa pun yang diberikan dalam prompt. Kemudian akan membuat input berdasarkan skema input yang ditentukan dan mengharapkan output berdasarkan skema output. Oleh karena itu, membuat definisi alat deskriptif dan skema input dan output yang divalidasi sangat penting dalam membantu LLM memilih alat secara efektif. Umumnya ada dua pendekatan untuk membuat dokumentasi ini: pendekatan spesifikasi alat dan pendekatan docstring.
Pendekatan spesifikasi alat
Pendekatan yang disarankan adalah langsung mengikuti spesifikasi alat
@tool( name = "search_website", description = "This tool searches the provided website for semantic matches to the query provided", inputSchema = { "json": { "type": "object", "properties": { "url": { "type": "string", "description": "The url of the website to load and search." }, "query": { "type": "string", "description": "The content you want to try and match in the website." } }, "required": ["url", "query"] }, outputSchema = { "json": { "type": "object", "properties": { "results": { "type": "array", "items": { "type": "string" } } } } } ) def search_website: …
Menggunakan bidang standar, sepertiname,, descriptioninputSchema, dan outputSchema memastikan bahwa setiap alat memiliki dokumentasi yang konsisten yang dapat dipahami oleh LLM dan manusia. Setiap alat harus mendefinisikan bidang ini minimal dan secara opsional memberikan judul dan anotasi, yang merupakan petunjuk opsional tentang perilaku alat. Jika memungkinkan, gunakan enum untuk nilai parameter untuk memudahkan LLM memilih opsi yang benar. Enum bekerja paling baik untuk set terbatas, seperti status atau nilai prioritas, tetapi tidak cocok untuk teks bentuk bebas, nilai dinamis, angka arbitrer, atau pengidentifikasi sumber daya. Dalam kasus tersebut, berikan deskripsi dan contoh yang jelas sebagai gantinya. Juga sertakan nilai default bila memungkinkan sehingga LLM tidak perlu menebak apa opsi yang benar. Perlu diingat bahwa definisi alat disertakan dalam prompt LLM pada setiap pemanggilan, menghabiskan ruang jendela konteks bersama instruksi sistem dan riwayat percakapan.
Pendekatan Docstring
Pendekatan lain, jika Anda menulis alat Anda dengan Python, menggunakan docstrings untuk memberikan deskripsi, penggunaan, dan output alat. Berikut ini adalah contoh dari pendekatan ini:
def search_website(url: str, query: str) -> list: """ This tool loads the specified website and then attempts to find content that matches the provided query through semantic search. It provides back a list of strings that are the sentences that match the query. Args: url: the website url to load query: the content you want to semantically match in the website """
Docstrings tidak menerapkan skema atau format standar. Menggunakan pendekatan ini mungkin menghasilkan hasil yang tidak konsisten berdasarkan bagaimana pengembang alat memilih untuk mendokumentasikan setiap alat. Mendefinisikan dan menegakkan standar di seluruh organisasi sangat penting jika Anda mengikuti pendekatan ini.
Praktik terbaik untuk definisi alat MCP
-
Ikuti spesifikasi alat MCP - Menyediakan
name,description,inputSchema, danoutputSchemabidang untuk setiap alat. Untuk implementasi Python, gunakan model Pydanticuntuk menyediakan dokumentasi sebaris melalui deskripsi bidang, validasi tipe otomatis, dan nilai terbatas melalui enum. Ini membuat skema mendokumentasikan diri dan meningkatkan pemahaman LLM tentang opsi parameter yang valid. -
Tulis deskripsi sebagai petunjuk — Deskripsi alat adalah instruksi yang memandu pengambilan keputusan LLM. Sertakan komponen penting dari tujuan alat (apa yang dilakukan alat), kapan menggunakannya (pola atau skenario maksud pengguna), konteks output (untuk apa output digunakan), parameter, dan kondisi kesalahan.
-
Berikan contoh konkret — Menyertakan contoh alur kerja dengan nilai aktual adalah cara paling efektif untuk memandu LLM tentang penggunaan alat yang benar.
-
Dependensi dokumen secara eksplisit — Sertakan prasyarat, urutan bernomor, perubahan status, dan tindakan tindak lanjut.