Function Calling: Saat AI Bisa Memanggil Fungsi

· Tim GunaStudio

LLM Tools

Model bahasa pada dasarnya hanya menghasilkan teks. Ia bisa menjelaskan cara cek cuaca, tetapi tidak bisa benar-benar mengeceknya. Function calling mengubah itu: kamu memberi model daftar fungsi yang tersedia, ia memilih fungsi yang tepat dan mengisi argumennya, lalu aplikasimu yang menjalankan fungsi aslinya. Dari sinilah kemampuan AI untuk mengambil aksi dimulai.

Ide dasar memberi model daftar tool

Bayangkan kamu punya beberapa layanan di aplikasimu: pencarian produk, pengecekan stok, dan pengiriman email. Alih-alih meminta model menjawab semuanya dari ingatan, kamu mendeklarasikan fungsi-fungsi itu kepadanya. Setiap deklarasi biasanya berisi nama fungsi, penjelasan singkat tentang kegunaannya, dan skema parameter yang diterima.

Dengan daftar itu, model tidak lagi hanya menebak. Ia tahu kemampuan apa yang bisa dipanggil dan data apa yang dibutuhkan masing-masing fungsi. Pada Gemini API, pendekatan ini disebut function calling; pada OpenAI, istilahnya juga function calling; sementara Anthropic menyebutnya tool use. Intinya sama: model diberi pilihan alat, bukan jawaban akhir yang harus ia karang sendiri.

Model memilih tool dan mengisi argumen

Ketika kamu mengirim pertanyaan bersama daftar tool, model menganalisis maksud pengguna dan memutuskan apakah perlu memanggil salah satu tool. Kalau ya, model mengembalikan keluaran terstruktur yang menyebutkan nama fungsi beserta argumen yang diisi. Perhatikan bahwa model tidak menjalankan fungsinya; ia hanya mengusulkan pemanggilan.

Misalnya, pengguna bertanya soal harga sebuah produk. Model bisa mengembalikan pemanggilan fungsi pencarian dengan argumen nama produk yang ia ekstrak dari percakapan. Argumen ini mengikuti skema parameter yang kamu tetapkan, sehingga bentuknya bisa diperkirakan program.

Pada praktiknya, model juga bisa memilih untuk tidak memanggil tool sama sekali dan langsung menjawab. Beberapa penyedia menyediakan pengaturan untuk memaksa model memakai tool tertentu, atau melarangnya memakai tool apa pun. Pengaturan semacam ini berguna saat kamu ingin mengontrol perilaku model secara ketat.

Aplikasi yang menjalankan fungsi asli

Langkah berikutnya ada di sisi kamu. Aplikasi menerima usulan pemanggilan, menjalankan fungsi asli dengan argumen tersebut, lalu mengembalikan hasilnya ke model. Hasil ini bisa berupa data apa pun, misalnya daftar produk, angka stok, atau status pengiriman.

Setelah menerima hasil, model menyusun jawaban akhir untuk pengguna dengan memakai informasi itu. Pada Claude, proses ini melibatkan dua jenis blok: model mengeluarkan permintaan pemakaian tool, dan aplikasimu mengirim kembali hasilnya sebagai balasan. Dengan pola yang sama di berbagai penyedia, alurnya menjadi semacam percakapan antara model dan kode aplikasimu.

Karena hasil fungsi dikembalikan ke model, informasi yang dipakai menjawab benar-benar berasal dari sistemmu, bukan dari ingatan model. Ini membuat jawaban lebih akurat untuk data yang berubah, seperti harga, ketersediaan, atau jadwal.

Kenapa ini dasar dari agen dan otomasi

Function calling adalah fondasi bagi apa yang sering disebut agen. Agen adalah sistem yang bisa mengambil langkah berurutan untuk mencapai tujuan, bukan hanya menjawab sekali. Dengan function calling, model bisa memanggil beberapa tool secara berurutan, memakai hasil yang satu untuk memutuskan langkah berikutnya.

Pola ini membuka banyak otomasi. Model bisa mencari data, menghitung, menulis ke sistem, lalu melaporkan hasilnya. Ia juga bisa memilih kombinasi tool yang berbeda tergantung situasi. Kemampuan memanggil fungsi inilah yang mengubah model dari sekadar penjawab menjadi bagian dari alur kerja yang benar-benar melakukan sesuatu.

Beberapa penyedia mendukung pemanggilan banyak tool sekaligus dalam satu giliran. Ini memungkinkan model mengumpulkan informasi dari beberapa sumber sebelum menyusun jawaban. Semakin kaya daftar tool yang kamu berikan, semakin luas pula aksi yang bisa direncanakan model, tetapi tanggung jawabmu menjaga agar daftar itu tetap terkendali.

Pentingnya validasi dan izin

Karena model bisa mengusulkan aksi nyata, kehati-hatian menjadi wajib. Argumen yang dihasilkan model harus divalidasi terhadap skema sebelum dijalankan. Jangan langsung memercayai nilai yang dikirim model, terutama kalau fungsi itu menyentuh data sensitif atau melakukan perubahan.

Validasinya mencakup beberapa hal:

  1. Pastikan nama fungsi yang diminta benar-benar ada di daftarmu.
  2. Periksa tipe dan rentang nilai setiap argumen.
  3. Tolak argumen yang tidak lengkap atau tidak masuk akal.
  4. Batasi fungsi berbahaya agar tidak bisa dipanggil sembarangan.

Selain validasi, atur juga izin. Untuk aksi yang berdampak, seperti mengirim uang, menghapus data, atau mengirim pesan ke pihak luar, sebaiknya minta konfirmasi manusia sebelum dieksekusi. Pisahkan fungsi baca (read-only) dari fungsi tulis, dan beri batasan ketat pada yang kedua.

Panduan keamanan pada tool use menekankan prinsip yang sama: perlakukan keluaran model sebagai usulan, bukan perintah final. Kamu yang memutuskan apakah usulan itu dijalankan. Dengan begitu, kamu bisa memanfaatkan fleksibilitas function calling tanpa membuka celah yang tidak perlu.

Catat juga setiap pemanggilan tool beserta argumennya. Log yang rapi memudahkan audit saat ada masalah, dan berguna untuk menyusun kasus uji di kemudian hari. Ketika model memilih tool yang salah atau mengisi argumen keliru, catatan itu menjadi bahan perbaikan deskripsi tool maupun prompt-nya.

Merancang tool yang baik

Kualitas deskripsi tool sangat memengaruhi keputusan model. Nama fungsi sebaiknya jelas dan deskriptif, begitu pula penjelasan parameternya. Model memakai informasi ini untuk memilih tool yang tepat, jadi deskripsi yang kabur bisa membuat model memilih fungsi yang salah atau mengisi argumen keliru.

Sebaiknya buat tool yang fokus pada satu tugas kecil dan spesifik, bukan satu fungsi besar yang melakukan banyak hal sekaligus. Tool kecil lebih mudah dideskripsikan, lebih mudah divalidasi, dan lebih mudah digabungkan oleh model. Kamu juga lebih mudah melacak kesalahan saat ada masalah.

Terakhir, sediakan cara agar model tahu ketika sebuah tool gagal. Kalau fungsi mengembalikan error, sampaikan pesan yang jelas agar model bisa mencoba pendekatan lain atau memberi tahu pengguna. Penanganan kegagalan yang rapi membuat alur berbasis tool jauh lebih tahan banting.