Function calling (LLM) (ID)

From Systems analysis Wiki
Jump to navigation Jump to search

Function Calling (Pemanggilan Fungsi) — adalah mekanisme dalam model bahasa besar (LLM) yang memungkinkan model berinteraksi dengan alat eksternal dan API, menghasilkan data terstruktur (umumnya JSON) untuk memanggil fungsi sebagai pengganti respons teks langsung[1].

Dengan kata lain, model berdasarkan permintaan pengguna menentukan fungsi mana dari sekumpulan fungsi yang tersedia yang harus dipanggil beserta parameter-parameternya. Mekanisme ini memperluas cakupan penerapan LLM, memungkinkannya berfungsi sebagai antarmuka antara bahasa alami dan tindakan nyata. Hal ini membuka peluang integrasi AI dengan sistem eksternal: model dapat meminta data terkini, menjalankan operasi, atau menggunakan layanan, yang sangat berharga dalam membangun asisten cerdas dan agen otonom. Penggunaan alat eksternal juga mengurangi risiko halusinasi (fakta yang dikarang) dengan mengacu pada sumber-sumber yang terpercaya[2].

Sejarah dan Pendekatan Implementasi

Pendekatan Awal (prompting dan Toolformer)

Gagasan untuk mengajarkan model bahasa memanggil alat mulai terbentuk pada tahun 2022–2023. Pendekatan awal mengandalkan teknik prompting yang kompleks. Misalnya, pada tahun 2022 diusulkan skema ReAct, di mana model dalam percakapan bergantian antara penalaran dan tindakan (pemanggilan alat) yang dikodekan dalam satu teks.

Langkah kunci adalah kemunculan model Toolformer yang diperkenalkan oleh para peneliti Meta pada awal 2023. Toolformer menunjukkan bahwa LLM dapat dilatih secara khusus untuk secara mandiri memanggil alat eksternal (kalkulator, mesin pencari, kalender) berdasarkan petunjuk teks, dengan menyisipkan token pemanggilan API khusus ke dalam teks yang dihasilkan[3].

Dukungan Resmi dan Perkembangan

Tonggak penting ditandai oleh OpenAI yang pada Juni 2023 secara resmi memperkenalkan dukungan Function Calling dalam API mereka untuk model GPT-3.5 dan GPT-4[4]. Versi-versi baru model dilatih untuk mengenali situasi di mana permintaan pengguna mengimplikasikan akses ke fungsi eksternal, dan menghasilkan objek JSON yang terstruktur dengan tepat beserta argumen-argumennya. OpenAI menyebut kemampuan ini sebagai "cara baru yang andal untuk menghubungkan GPT dengan alat dan API eksternal".

Inisiatif Terbuka

Setelah implementasi komersial, muncullah model-model terbuka yang dilatih ulang untuk menghasilkan pemanggilan fungsi yang benar.

  • Gorilla: Proyek UC Berkeley, versi LLaMA yang dilatih ulang, mampu membentuk pemanggilan ke ribuan API yang berbeda. Untuk mengevaluasi model-model semacam itu, dibuat benchmark Berkeley Function-Calling Leaderboard[5].
  • ToolAlpaca, ToolLLaMA, Hermes: Serangkaian model terbuka yang dilatih ulang menggunakan contoh pemanggilan fungsi sintetis, sering kali dihasilkan oleh model yang lebih canggih.

Mekanisme Kerja

Proses penggunaan Function Calling umumnya mencakup beberapa langkah:

  1. Pendefinisian fungsi. Pengembang terlebih dahulu mendefinisikan sekumpulan fungsi yang tersedia untuk model (misalnya, API eksternal) dan mendeskripsikan tanda tangan serta tujuannya, umumnya dalam format JSON Schema.
  2. Analisis permintaan. Selama percakapan, model menganalisis maksud pengguna dan secara mandiri memutuskan apakah perlu memanggil salah satu fungsi yang telah didefinisikan untuk memberikan respons.
  3. Generasi pemanggilan. Jika tindakan diperlukan, LLM alih-alih teks biasa menghasilkan keluaran terstruktur khusus (misalnya, JSON berisi nama fungsi dan argumen). Jika pemanggilan tidak diperlukan, model mengembalikan respons teks biasa.
  4. Eksekusi fungsi. Program eksternal (pembungkus chatbot atau agen) menerima JSON, menjalankan pemanggilan nyata terhadap fungsi yang ditentukan dengan parameter yang diberikan, dan meneruskan hasilnya kembali ke model.
  5. Pembentukan respons akhir. Model menggunakan data yang diterima untuk menghasilkan respons final kepada pengguna[4].

Untuk mengelola proses multi-langkah ini selama pelatihan model, digunakan format dialog khusus, misalnya markup ChatML dari OpenAI, di mana selain peran "pengguna" dan "asisten" diperkenalkan peran "fungsi" untuk meneruskan hasil pemanggilan.

Penerapan dan Keunggulan

Kemampuan memanggil fungsi secara signifikan memperluas spektrum tugas yang dapat diselesaikan dengan LLM.

  • Integrasi dengan API eksternal. Model dapat menjawab permintaan yang memerlukan informasi terkini dengan memanggil layanan eksternal (misalnya, untuk mendapatkan cuaca, nilai tukar mata uang, berita).
  • Otomatisasi tindakan pengguna. LLM dapat menjalankan tugas-tugas rutin: mengirim email, membuat acara di kalender, menempatkan pesanan di toko online.
  • Akses ke basis data dan analitik. Permintaan dalam bahasa alami dapat diterjemahkan menjadi pemanggilan API internal atau kueri SQL untuk pengambilan dan analisis data.
  • Ekstraksi informasi terstruktur. LLM dapat secara mandiri mengekstrak fakta dari teks panjang (misalnya, nama, tanggal, alamat) dan mengembalikannya dalam bentuk array JSON terstruktur yang mudah diproses secara programatik.

Masalah Keamanan

Dengan memperluas kemampuan model, Function Calling sekaligus membawa risiko-risiko baru.

  • Keluaran yang tidak terverifikasi. Interaksi model dengan alat eksternal harus dilindungi dengan sangat ketat. Jika model menerima nilai berbahaya atau keliru dari API, model dapat menyertakannya dalam respons atau memanggil fungsi lain berdasarkan nilai tersebut, yang akan mengakibatkan konsekuensi yang tidak terduga.
  • Serangan melalui argumen fungsi. Para peneliti menemukan kerentanan yang spesifik untuk mode Function Calling. Pada tahun 2025 didemonstrasikan serangan yang disebut "Sisi Gelap Function Calling". Intinya adalah menawarkan model sebuah "fungsi" khusus yang di dalam argumennya tersembunyi instruksi terlarang (jailbreak payload). Model, dengan mengikuti prinsip pemanggilan fungsi, menghasilkan argumen yang mengandung konten yang melanggar aturan, sehingga melewati filter moderasi. Pengujian menunjukkan keberhasilan serangan lebih dari 90% kasus pada enam model modern, termasuk GPT-4 dan Claude[2].

Untuk mencegah insiden semacam itu, disarankan untuk hanya memberikan alat tepercaya kepada model, menerapkan konfirmasi pengguna sebelum menjalankan tindakan yang kritis, serta menggunakan prompt "defensif" khusus dan validasi ketat terhadap argumen untuk konten berbahaya.

Referensi

  • Pengumuman resmi Function Calling dari OpenAI
  • Halaman proyek Gorilla LLM
  • Apideck (2024). An Introduction to Function Calling and Tool Use. Apideck Blog.
  • LangChain (2025). Tool Calling (Documentation). LangChain Docs.
  • Mistral AI (2025). Function Calling – Documentation. Mistral Docs.
  • Hopsworks (2024). What is Function Calling with LLMs?. Hopsworks Dictionary.
  • Hopsworks (2024). Unlocking the Power of Function Calling with LLMs. Hopsworks Blog.
  • University of California, Berkeley (2025). Berkeley Function Calling Leaderboard V3. Online Resource.

Daftar Pustaka

  • Wu, Z. et al. (2025). The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models. ACL 2025.
  • OpenAI (2023). Function Calling and Other API Updates. OpenAI Blog.
  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
  • Patil, S. G. et al. (2023). Gorilla: Large Language Model Connected with Massive APIs. arXiv:2305.15334.
  • Liu, W. et al. (2024). ToolACE: Winning the Points of LLM Function Calling. arXiv:2409.00920.
  • Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.

Catatan

  1. «What is Function Calling with LLMs?». Hopsworks. [1]
  2. 2.0 2.1 Wu, Z. et al. «The Dark Side of Function Calling: Pathways to Jailbreaking Large Language Models». Proceedings of the 2025 Conference on Empirical Methods in Natural Language Processing, 2025. [2]
  3. Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». arXiv:2302.04761, 2023. [3]
  4. 4.0 4.1 «Function calling and other API updates». OpenAI, 2023. [4]
  5. «Gorilla: Large Language Model Connected to Massive APIs». University of California, Berkeley. [5]