Memahami dan mengimplementasikan tools pada AI Agent PHP: konsep Function Calling OpenAI, mendefinisikan tools dengan JSON Schema, dan mekanisme tool selection dan execution.
Daftar Isi
Terakhir diperbarui:
TL;DR (Ringkasan Cepat)
- Function Calling adalah fitur OpenAI yang memungkinkan AI memilih dan memanggil fungsi PHP yang kita definisikan.
- Setiap tool didefinisikan dengan JSON Schema yang mendeskripsikan nama, tujuan, dan parameter.
- AI tidak langsung mengeksekusi tool — ia memberitahu kita tool mana yang ingin dipanggil, lalu kita yang mengeksekusinya.
- Hasil eksekusi dikirim kembali ke AI sebagai
toolrole message.
Apa Itu Tool dalam AI Agent?
Tool adalah fungsi PHP yang bisa "dipanggil" oleh AI untuk berinteraksi dengan sistem eksternal. Dengan tools, AI Agent tidak lagi terbatas pada pengetahuan yang ada dalam modelnya — ia bisa mengakses data real-time, memanipulasi database, membaca file, dan memanggil API eksternal.
Cara Kerja Function Calling
- Kita mendefinisikan daftar tools beserta JSON Schema-nya dan mengirimkannya ke OpenAI API.
- AI memproses pertanyaan user dan memutuskan tool mana yang perlu dipanggil.
- OpenAI mengembalikan respons berisi
tool_calls(bukan teks) dengan nama tool dan argumen yang dipilih AI. - Kode PHP kita mengeksekusi tool tersebut dan mendapatkan hasilnya.
- Hasil tool dikirim kembali ke OpenAI sebagai message dengan role
tool. - AI menggunakan hasil tool untuk merumuskan jawaban akhir ke user.
Interface Tool
<?php
namespace App\Tools;
interface ToolInterface
{
/**
* Mengembalikan definisi tool dalam format JSON Schema untuk OpenAI.
*/
public function getDefinition(): array;
/**
* Eksekusi tool dengan argumen yang diberikan AI.
*/
public function execute(array $args): mixed;
}
Mendefinisikan Tool dengan JSON Schema
<?php
namespace App\Tools;
class WeatherTool implements ToolInterface
{
public function getDefinition(): array
{
return [
'type' => 'function',
'function' => [
'name' => 'get_weather',
'description' => 'Mendapatkan informasi cuaca saat ini untuk kota tertentu.',
'parameters' => [
'type' => 'object',
'properties' => [
'city' => [
'type' => 'string',
'description' => 'Nama kota dalam Bahasa Inggris, misal: Jakarta, Surabaya, Bali',
],
'unit' => [
'type' => 'string',
'enum' => ['celsius', 'fahrenheit'],
'description' => 'Satuan temperatur yang diinginkan',
],
],
'required' => ['city'],
],
],
];
}
public function execute(array $args): mixed
{
$city = $args['city'] ?? 'Jakarta';
$unit = $args['unit'] ?? 'celsius';
// Di sini Anda memanggil Weather API sungguhan
// Untuk contoh, kita simulasikan:
return [
'city' => $city,
'temperature' => 32,
'unit' => $unit,
'condition' => 'Cerah berawan',
'humidity' => '75%',
];
}
}
Tool Selection dan Tool Execution
Saat Anda mengirim daftar tools ke OpenAI API, gunakan parameter tool_choice:
tool_choice: "auto"— AI memilih sendiri apakah perlu memanggil tool atau langsung menjawab.tool_choice: "required"— AI HARUS memanggil setidaknya satu tool.tool_choice: "none"— AI tidak boleh memanggil tool sama sekali.
Poin Kunci Bab 9
Dengan memahami Function Calling, Anda memegang kunci untuk membuat AI Agent yang benar-benar powerful. Di bab-bab berikutnya, kita akan membangun berbagai tools nyata yang bisa digunakan agent Anda.