Lesson 5 / 12 · 11 min
Tools dan function calling
Cara model memanggil fungsi, cara mendesain tool yang aman dan andal, dan output terstruktur.
Function calling adalah mekanisme di balik setiap agent yang berguna. Anda mendeskripsikan tool yang tersedia sebagai definisi terstruktur, model memutuskan kapan memakainya dan menghasilkan argumennya sebagai data, lalu kode Anda menjalankan fungsi sebenarnya. Mari lihat cara handshake ini bekerja.
Tool adalah kontrak bertipe
Anda memberi model sebuah nama, deskripsi, dan skema parameter (biasanya JSON Schema). Deskripsi sama pentingnya dengan kode, itulah cara model memutuskan kapan tool ini yang tepat. Spesifik tentang apa yang dilakukan tool dan kapan memakainya.
{
"name": "create_lead",
"description": "Save a new sales lead to the CRM. Use only after the
customer has shared a name and a contact number.",
"parameters": {
"type": "object",
"properties": {
"name": { "type": "string" },
"phone": { "type": "string", "description": "E.164, e.g. +62812..." },
"interest":{ "type": "string", "enum": ["website","ai","software"] },
"budget": { "type": "integer", "description": "IDR, optional" }
},
"required": ["name", "phone", "interest"]
}
}Ketika model memutuskan memakainya, ia tidak menjalankan apa pun, ia mengembalikan permintaan terstruktur seperti create_lead({ name: "Sari", phone: "+62812...", interest: "website" }). Aplikasi Anda memvalidasi argumen itu, menjalankan insert database, dan mengembalikan hasil yang bisa dibaca model pada giliran berikutnya.
Mendesain tool yang tidak rusak
- Satu pekerjaan per tool. Tool yang melakukan tiga hal membuat model bingung kapan memanggilnya.
- Validasi semua yang dikirim model. Perlakukan argumennya seperti input user yang tidak tepercaya, karena memang begitu.
- Buat aksi berbahaya eksplisit dan ber-gate. Refund, hapus, pembayaran harus butuh langkah konfirmasi atau manusia.
- Kembalikan hasil yang jelas, termasuk error. "out_of_stock" mengajari model lebih baik daripada kegagalan generik.
- Jaga daftarnya pendek. Lima tool yang tajam mengalahkan dua puluh yang tumpang tindih.
Output terstruktur
Kadang Anda tidak ingin percakapan, Anda ingin data. Sebagian besar model bisa dibatasi untuk mengembalikan JSON ketat yang cocok dengan skema. Inilah cara Anda mengubah teks bebas jadi sesuatu yang bisa dipakai sistem: mengekstrak detail order dari chat, mengklasifikasi pesan sebagai komplain atau pertanyaan, menarik field dari invoice. Output terstruktur adalah jembatan antara bahasa dan database Anda.
Yang Anda dapatkan
- Tool adalah nama, deskripsi, dan skema parameter bertipe
- Model mengembalikan pemanggilan terstruktur; kode Anda memvalidasi dan mengeksekusinya
- Satu pekerjaan per tool, validasi input, gate aksi berbahaya, kembalikan error jelas
- Output terstruktur mengubah teks bebas jadi data bersih sesuai skema untuk sistem Anda
Sumber terkurasi
Referensi pilihan untuk mendalami lebih jauh, direview oleh tim kami.