Apa Itu Function Calling dan Tool Use pada AI?
Function calling membuat AI bisa memanggil API, membaca database, atau menjalankan aksi. Begini cara kerjanya, contohnya, dan batas amannya.
Jawaban singkat
Function calling (tool use) adalah kemampuan model AI untuk memilih alat yang tersedia, misalnya API cek stok, lalu menyusun parameter pemanggilannya. Yang menjalankan alat tetap aplikasimu, bukan model, sehingga kamu yang memegang kendali dan keamanannya.
Daftar isi
Bayangkan pelanggan bertanya ke chatbot tokomu, "Kaos hitam ukuran L masih ada?" Model bahasa tidak tahu isi gudangmu. Tanpa bantuan, ia hanya bisa menebak atau meminta maaf. Dengan function calling, model bisa berkata kepada aplikasimu, "Tolong panggil fungsi cek_stok dengan produk kaos hitam dan ukuran L," lalu menjawab pelanggan berdasarkan hasil yang benar.
Itulah inti function calling, yang oleh sebagian penyedia disebut tool use. Model AI diberi daftar alat beserta penjelasannya. Saat percakapan membutuhkan data atau aksi dari luar, model memilih alat yang cocok dan menyusun argumennya dalam format terstruktur (biasanya JSON). Aplikasimu yang benar-benar menjalankan alat itu, lalu mengembalikan hasilnya ke model untuk dirangkai menjadi jawaban.
Model tidak menjalankan apa pun sendiri
Ini bagian yang paling sering disalahpahami. Saat model "memanggil fungsi", yang sebenarnya terjadi adalah model menulis permintaan, bukan mengeksekusi kode. Hasil keluaran model berisi nama fungsi dan parameternya, misalnya {"produk": "kaos hitam", "ukuran": "L"}. Kode di server kamu yang membaca permintaan itu, memanggil database atau API, lalu mengirim balik hasilnya.
Pembagian peran ini penting untuk keamanan. Kamu bisa memeriksa setiap permintaan sebelum dijalankan, menolak parameter yang aneh, atau meminta persetujuan manusia untuk aksi tertentu. Model tidak punya akses langsung ke sistemmu kecuali yang kamu buka lewat alat.
Bagaimana alurnya dari awal sampai jawaban?
Satu putaran function calling biasanya melewati lima tahap:
- Aplikasi mengirim pesan pengguna ke model, ditambah daftar alat. Setiap alat punya nama, deskripsi singkat, dan skema parameter (tipe data, mana yang wajib).
- Model memutuskan apakah perlu alat. Kalau perlu, ia membalas dengan permintaan pemanggilan alat, bukan teks biasa.
- Aplikasi menjalankan alat yang diminta dengan parameter dari model.
- Hasil alat dikirim kembali ke model sebagai pesan baru.
- Model menyusun jawaban akhir untuk pengguna, atau meminta alat lain bila masih kurang.
Dalam satu pertanyaan, model bisa memanggil beberapa alat berurutan, misalnya cek stok lalu hitung ongkir. Banyak API juga mendukung pemanggilan beberapa alat sekaligus dalam satu giliran (parallel tool calls). Rinciannya berbeda antar penyedia, jadi baca dokumentasi resmi model yang kamu pakai, misalnya panduan function calling OpenAI atau tool use Anthropic.
Contoh pemakaian di bisnis
Function calling membuat AI berguna di pekerjaan yang membutuhkan data segar atau aksi nyata. Beberapa pola yang umum:
| Kebutuhan | Contoh alat | Jenis aksi |
|---|---|---|
| Menjawab stok dan harga | cek_stok, cari_produk | Hanya membaca |
| Status pesanan | lacak_pesanan dengan nomor order | Hanya membaca |
| Menjadwalkan janji temu | cek_slot_kosong, buat_janji | Membaca lalu menulis |
| Mencatat keluhan | buat_tiket di helpdesk | Menulis |
| Laporan penjualan | query_penjualan dengan rentang tanggal | Membaca |
| Mengirim notifikasi | kirim_email, kirim_whatsapp | Aksi keluar |
Pola terakhir di tabel paling berisiko, karena aksinya terlihat oleh orang lain dan sulit dibatalkan. Alat yang hanya membaca jauh lebih aman untuk dimulai.
Function calling juga menjadi fondasi AI agent. Agent pada dasarnya adalah model yang diberi beberapa alat dan dibiarkan memutuskan urutan pemakaiannya sampai tugas selesai. Standar seperti Model Context Protocol lahir agar satu set alat bisa dipakai banyak aplikasi AI tanpa ditulis ulang.
Menulis definisi alat yang mudah dipahami model
Model memilih alat berdasarkan nama dan deskripsinya. Deskripsi yang kabur membuat model salah pilih atau mengisi parameter asal-asalan. Beberapa kebiasaan yang membantu:
Beri nama yang menjelaskan aksi, seperti lacak_pesanan, bukan fungsi1. Tulis deskripsi dalam kalimat utuh yang menyebut kapan alat dipakai dan kapan tidak, misalnya "Pakai untuk mengecek status pengiriman berdasarkan nomor order. Jangan dipakai untuk pertanyaan stok."
Batasi parameter dengan skema yang ketat. Kalau ukuran hanya S, M, L, dan XL, pakai daftar pilihan (enum), bukan teks bebas. Tandai parameter wajib. Semakin sempit ruang isian, semakin kecil peluang model mengarang nilai.
Jangan beri terlalu banyak alat sekaligus. Puluhan alat yang mirip membuat model bingung. Kelompokkan, atau kirim hanya alat yang relevan untuk konteks percakapan tertentu.
Risiko yang perlu dijaga
Karena model bisa memicu aksi, kesalahannya tidak lagi sebatas jawaban keliru. Ada tiga risiko utama.
Pertama, parameter yang salah. Model bisa salah membaca nomor order atau mengisi tanggal yang tidak masuk akal. Validasi setiap parameter di kode, sama seperti kamu memvalidasi isian formulir dari pengguna.
Kedua, prompt injection. Teks dari luar, seperti isi email atau halaman web yang dibaca model, bisa berisi perintah tersembunyi yang membujuk model memanggil alat berbahaya. Karena itu, alat yang mengirim data keluar atau menghapus sesuatu sebaiknya membutuhkan konfirmasi.
Ketiga, hak akses berlebihan. Beri setiap alat izin paling kecil yang ia butuhkan. Alat cek_stok cukup memakai akun database yang hanya bisa membaca tabel stok, bukan akun admin. Untuk aksi sensitif seperti refund atau penghapusan data, pasang persetujuan manusia sebelum eksekusi.
Log juga penting. Simpan catatan alat apa yang dipanggil, dengan parameter apa, dan hasilnya. Saat ada keluhan, kamu bisa melacak apakah kesalahan berasal dari model, data, atau kode.
Cara mulai mencoba tanpa menulis banyak kode
Kalau kamu belum ingin membangun aplikasi dari nol, platform otomasi seperti n8n menyediakan node AI agent yang bisa diberi alat berupa node lain: membaca Google Sheets, memanggil HTTP API, atau mengirim pesan. Ini cara cepat merasakan function calling dan melihat bagaimana model memilih alat. Setelah polanya jelas, barulah pindahkan ke kode sendiri bila butuh kendali lebih.
Mulailah dari satu alat yang hanya membaca, ukur seberapa sering model memilihnya dengan benar, lalu tambah alat berikutnya satu per satu. Uji juga dengan pertanyaan yang sengaja tidak membutuhkan alat, untuk memastikan model tidak memanggil alat tanpa alasan.
Singkatnya, function calling mengubah model AI dari sekadar penjawab menjadi pemberi instruksi yang terstruktur ke sistemmu. Model memilih alat dan menyusun parameter, aplikasimu yang mengeksekusi dan memegang kendali. Dengan definisi alat yang jelas, validasi parameter, dan izin yang sempit, fitur ini bisa dipakai dengan aman untuk melayani pelanggan maupun mengotomasi pekerjaan internal.


