Pemanggilan fungsi klasik memiliki bentuk yang dikenali setiap pembuat agen. Model meminta satu panggilan alat, aplikasi Anda mengeksekusinya, Anda menambahkan hasilnya, dan model meminta yang berikutnya. Empat alat, empat perjalanan bolak-balik. Empat puluh alat, empat puluh. Setiap putaran menambah latensi jaringan dan konteks yang ditagih ulang. Ketika OpenAI meluncurkan GPT-5.6 untuk ketersediaan umum pada 9 Juli 2026, ia menghadirkan cara untuk keluar dari rutinitas itu: pemanggilan alat secara terprogram di Responses API.
Idenya langsung. Alih-alih mengembalikan panggilan alat satu per satu agar kode Anda berjalan dalam sebuah loop, model menulis JavaScript yang mengorkestrasi beberapa panggilan alat itu sendiri. Kode tersebut dieksekusi dalam runtime V8 yang terisolasi tanpa akses jaringan. Alat Anda tetap menjadi satu-satunya cara kode dapat menyentuh dunia luar, sehingga batasan keamanan yang sudah Anda pertimbangkan dengan pemanggilan fungsi OpenAI tetap persis seperti sebelumnya. Yang berubah adalah orkestrasinya: loop, kondisional, dan agregasi yang dulunya berada di aplikasi Anda.
Pergeseran ini juga berdampak pada sisi API Anda. Setiap alat yang Anda ekspos sekarang menjadi kontrak yang dapat dipanggil model dalam puluhan kali secara bersamaan daripada satu panggilan hati-hati setiap giliran. Presisi skema, bentuk kesalahan, dan perilaku laju lebih penting daripada minggu lalu. Artikel ini membahas apa yang telah diluncurkan, mengapa loop lama merugikan, apa yang tetap sama, dan bagaimana mempersiapkan titik akhir alat Anda dengan Apidog sebelum menyerahkannya ke model.
TL;DR
- GPT-5.6 menjadi GA pada 9 Juli 2026. Saat GA, Responses API mendapatkan pemanggilan alat secara terprogram, yang dikonfirmasi dalam dokumen pengembang OpenAI.
- Alih-alih satu panggilan alat per perjalanan bolak-balik, model menulis JavaScript yang menyusun loop, kondisional, dan agregasi melalui alat Anda.
- Kode yang dihasilkan berjalan di sandbox V8 yang terisolasi tanpa akses jaringan. Definisi alat Anda tetap menjadi satu-satunya jalur ke sistem eksternal, sehingga batasan keamanan tidak bergeser.
- Latensi dan biaya token berhenti bertambah seiring dengan jumlah panggilan alat, di situlah loop agen klasik mengalami kerugian.
- Fitur ini baru beberapa hari; parameter permintaan dan batas yang tepat ada di referensi API OpenAI, jadi bacalah sebelum Anda membangun.
- Uji dan maket setiap titik akhir alat sebelum model mengorkestrasikannya; ambiguitas skema menjadi bug yang diulang dalam sebuah loop.
Apa yang diluncurkan pada 9 Juli
GPT-5.6 hadir sebagai keluarga tiga tingkat: gpt-5.6-sol untuk penalaran terdalam, gpt-5.6-terra untuk pekerjaan yang seimbang, dan gpt-5.6-luna untuk volume yang cepat dan hemat biaya. Alias gpt-5.6 tanpa embel-embel mengarah ke Sol. Ketiganya dapat diakses sendiri melalui API tanpa pembatasan paket, setelah pratinjau terbatas dua minggu yang berakhir ketika pembatasan akses dicabut pada 8 Juli.
Keluarga model ini mendapatkan sebagian besar perhatian di hari peluncuran, tetapi permukaan API baru adalah kisah yang lebih besar bagi para pembuat agen. Menurut liputan peluncuran MarkTechPost dan dokumentasi OpenAI sendiri, Responses API mendapatkan empat hal pada GA: pemanggilan alat secara terprogram, beta multi-agen, penalaran yang bertahan di seluruh giliran, dan pengaturan detail visi yang mempertahankan dimensi gambar asli.
Pemanggilan alat secara terprogram adalah berita utamanya. OpenAI menggambarkannya sebagai model yang menulis JavaScript untuk mengorkestrasi panggilan alat, yang dieksekusi dalam runtime V8 yang terisolasi tanpa akses jaringan. Model berhenti menjadi pemohon giliran per giliran dan menjadi penulis lapisan orkestrasi.
Loop yang digantikan oleh pemanggilan alat secara terprogram
Berikut adalah pemanggilan fungsi klasik terhadap Responses API, bentuk yang hampir setiap agen produksi gunakan saat ini:
import OpenAI from "openai";
const client = new OpenAI();
const tools = [
{
type: "function",
name: "get_flight_status",
description: "Return live status for a flight by IATA flight number.",
parameters: {
type: "object",
properties: {
flight_number: {
type: "string",
description: "IATA flight number, for example SQ317"
}
},
required: ["flight_number"]
}
}
];
let response = await client.responses.create({
model: "gpt-5.6",
input: "Which of these 12 flights are delayed: SQ317, BA15, UA857...",
tools
});
Model tidak dapat menjawab tanpa data, jadi ia mengeluarkan panggilan fungsi. Kode Anda menjalankan pencarian, menambahkan item function_call_output, dan memanggil API lagi:
// Satu perjalanan bolak-balik per panggilan alat. Loop ini adalah bebannya.
while (hasFunctionCalls(response)) {
const outputs = await executeToolCalls(response); // kode Anda, infra Anda
response = await client.responses.create({
model: "gpt-5.6",
previous_response_id: response.id,
input: outputs,
tools
});
}
Untuk 12 penerbangan, loop itu dapat berjalan 12 kali, dan setiap iterasi membayar dua kali. Pertama dalam latensi: perjalanan bolak-balik jaringan penuh ke OpenAI ditambah waktu model, diserialkan, karena panggilan N+1 bergantung pada model yang melihat hasil N. Kedua dalam token: hasil alat terakumulasi dalam konteks, sehingga iterasi akhir memproses ulang semua yang dihasilkan oleh yang sebelumnya. Rangkai agen bersama dan penambahannya menjadi buruk: agen lima langkah di mana setiap langkah membungkus loop sepuluh panggilan adalah lima puluh pemanggilan model yang ditagih.
Tidak ada dari loop itu yang merupakan kecerdasan. Itu adalah perpipaan, dan hingga minggu ini model tidak memiliki cara untuk menulis perpipaan itu sendiri.
Bagaimana mode terprogram mengubah bentuk
Dengan pemanggilan alat secara terprogram, model menjawab pertanyaan penerbangan secara berbeda: ia menulis program JavaScript singkat yang melakukan loop di atas dua belas nomor penerbangan, memanggil get_flight_status untuk setiap penerbangan, memfilter status tertunda, mengurutkan berdasarkan durasi penundaan, dan mengembalikan agregat. Sandbox menjalankan program itu. Alat Anda masih melakukan pekerjaan nyata; aliran kontrol di sekitarnya sekarang menjadi milik model.
Tiga properti yang membuat ini dapat dilakukan daripada mengkhawatirkan:
- Runtime terisolasi. OpenAI menjalankan JavaScript yang dihasilkan dalam sandbox V8 tanpa akses jaringan. Kode tidak dapat mengambil URL, membuka soket, atau mengekstrak apa pun sendiri.
- Alat adalah satu-satunya jalan keluar. Setiap efek eksternal mengarah melalui permukaan alat yang Anda definisikan. Jika Anda tidak mengekspos alat
delete_record, tidak ada kode yang dihasilkan dapat menghapus catatan. - Aliran kontrol menjadi ekspresif. Loop, kondisional, keluar dini, agregasi lintas hasil: pola yang membutuhkan N perjalanan bolak-balik sekarang terjadi dalam satu siklus respons.
| Pemanggilan fungsi klasik | Pemanggilan alat terprogram | |
|---|---|---|
| Siapa yang menulis aliran kontrol | Aplikasi Anda | Model, sebagai JavaScript |
| Perjalanan bolak-balik untuk N panggilan alat | N, diserialkan | Satu siklus respons |
| Tempat orkestrasi berjalan | Infrastruktur Anda | Sandbox V8 terisolasi, tanpa jaringan |
| Bagaimana alat dieksekusi | Kode Anda memanggilnya | Masih melalui permukaan alat yang Anda deklarasikan |
| Batas keamanan | Definisi alat | Definisi alat, tidak berubah |
Apa yang tetap sama
Anda masih mendefinisikan alat dengan nama, deskripsi, dan parameter Skema JSON, persis seperti pada kode di atas. Model hanya dapat menyusun panggilan ke alat yang Anda deklarasikan, yang berarti pertanyaan “apa yang dapat dilakukan agen ini terhadap sistem saya” memiliki jawaban yang sama seperti sebelumnya: apa pun yang diizinkan oleh permukaan alat Anda, dan tidak ada yang lain.
Kualitas skema lebih penting sekarang, bukan kurang. Dalam loop klasik, deskripsi parameter yang tidak jelas menghasilkan satu panggilan buruk yang dapat Anda tangkap dan perbaiki sebelum perjalanan bolak-balik berikutnya. Dalam mode terprogram, ketidakjelasan yang sama dapat tertanam dalam sebuah loop dan diulang di setiap iterasi sebelum Anda melihat satu hasil pun. Kebiasaan yang Anda bangun untuk output terstruktur berpindah secara langsung: tipe yang ketat, enum untuk set tertutup, deskripsi yang menyatakan unit dan format, bidang wajib yang benar-benar wajib.
Batas dan pertanyaan terbuka
Kemampuan ini baru beberapa hari. Beberapa peringatan sebelum Anda membangun kembali tumpukan agen Anda di sekitarnya:
- Parameter permintaan yang tepat, batas eksekusi, dan perilaku timeout terdapat dalam referensi API dan panduan model OpenAI. Nama parameter dapat berubah selama pemolesan setelah setiap peluncuran GA, jadi bacalah referensi sebelum Anda menulis kode untuk fitur tersebut.
- Debugging adalah permukaan baru. Ketika orkestrasi berada di repositori Anda, Anda bisa menetapkan breakpoint; sekarang bagian dari aliran kontrol dihasilkan baru per permintaan. Pencatatan urutan panggilan alat yang dibuat sandbox menjadi tugas observabilitas inti.
- Belum ada rekam jejak produksi. Catatan hari pertama Simon Willison tentang GPT-5.6 adalah catatan yang bagus tentang apa yang muncul dari pengujian independen; harapkan masalah-masalah tajam muncul di sana sebelum dokumen resmi menyebutkannya.
- Urutan peluncuran yang bijaksana: mulailah dengan alat baca-saja, amati orkestrasi yang dihasilkan, verifikasi akuntansi token terhadap loop lama Anda, dan baru kemudian ekspos alat dengan efek samping.
Alat Anda sekarang adalah API yang dipanggil oleh kode orang lain
Dalam pemanggilan fungsi klasik, sebuah alat dipanggil sekali per perjalanan bolak-balik, dengan loop yang dibuat manusia memutuskan kecepatan dan urutan. Dalam pemanggilan alat secara terprogram, kode yang dihasilkan memanggil alat Anda secara berurutan, membuat cabang berdasarkan responsnya, dan mengagregasi outputnya. Setiap alat adalah kontrak API yang dikonsumsi oleh klien yang ditulis mesin yang tidak pernah Anda tinjau sebelum berjalan.
Itu meningkatkan standar pada empat hal:
- Presisi skema. Nyatakan unit, format, dan rentang dalam setiap deskripsi parameter. Format tanggal yang ambigu bukan lagi satu panggilan buruk; itu adalah serangkaian panggilan buruk.
- Bentuk kesalahan. Kode yang dihasilkan akan bercabang pada kegagalan. Alat yang mengembalikan 200 dengan pesan kesalahan yang terkubur dalam string akan menyesatkan orkestrasi apa pun yang ditulis berdasarkan skema Anda. Kembalikan kode status yang jujur dan badan kesalahan yang terstruktur.
- Idempotensi dan perilaku laju. Dua belas panggilan yang dulunya tiba dalam waktu lebih dari satu menit sekarang dapat tiba dalam satu ledakan. Ketahui apa yang dilakukan titik akhir Anda di bawah pola itu sebelum model mengetahuinya untuk Anda.
- Latensi. Alat yang membutuhkan delapan detik dapat ditoleransi sekali per giliran. Di dalam loop dua belas iterasi, itu menentukan waktu respons Anda.
Di sinilah workbench API yang sesungguhnya mendapatkan tempatnya. Definisikan atau impor spesifikasi setiap titik akhir alat, kirim permintaan pengujian terhadapnya, dan konfirmasi skema respons cocok dengan apa yang dijanjikan definisi alat Anda. Kemudian melangkah lebih jauh: maket API alat sehingga Anda dapat melatih orkestrasi terhadap data palsu yang dapat diprediksi tanpa menyentuh produksi. Unduh Apidog dan server maket bawaannya akan menyajikan respons berbentuk skema untuk setiap titik akhir yang telah Anda definisikan, sehingga Anda dapat menyerahkan permukaan alat yang lengkap kepada model dan melihat bagaimana ia mengorkestrasi sebelum menyentuh satu pun catatan nyata.
Fitur GA lainnya secara singkat
Pemanggilan alat secara terprogram tidak diluncurkan sendiri. Dua tambahan Responses API yang berdekatan penting di sini:
- Multi-agen, dalam beta: eksekusi subagen paralel yang dikelola oleh API. Tahap awal, layak untuk diamati daripada dipertaruhkan.
- Penalaran yang bertahan: konteks penalaran yang digunakan kembali di seluruh giliran melalui
reasoning.context, sehingga sesi agen yang panjang berhenti menurunkan kesimpulan yang sama di setiap giliran.
Keduanya diperparah dengan pemanggilan alat secara terprogram: agen yang mempertahankan penalarannya di seluruh giliran dan menulis orkestrasinya sendiri melakukan jauh lebih sedikit pekerjaan yang berlebihan per tugas.
Pemanggilan alat terprogram vs mode ultra
Peluncuran ini juga menghadirkan mode ultra, dan keduanya sering membingungkan karena keduanya melakukan lebih banyak per permintaan. Mereka memecahkan hambatan yang berbeda.
Ultra adalah pengaturan multi-agen yang menjalankan empat agen secara paralel secara default, sengaja menghabiskan lebih banyak token untuk memangkas waktu jam dinding; menurut OpenAI, ini meningkatkan Terminal-Bench 2.1 dari 88.8% menjadi 91.9%. Ini tersedia di ChatGPT Work pada paket Pro dan Enterprise, dan di Codex dari Plus ke atas. Pemanggilan alat secara terprogram adalah kemampuan API di mana satu agen mengorkestrasi alatnya dalam kode. Ultra memparalelkan pemikiran; pemanggilan alat secara terprogram meruntuhkan perjalanan bolak-balik eksekusi. Penjelasan lengkapnya ada di artikel mode ultra GPT-5.6 kami, tetapi versi singkatnya: jika hambatan Anda adalah latensi panggilan alat, Anda menginginkan pemanggilan alat secara terprogram; jika itu adalah waktu pertimbangan pada masalah sulit, Anda menginginkan ultra.
FAQ
Apakah saya perlu menulis ulang definisi alat saya yang sudah ada?
Tidak. Alat tetap memiliki bentuk Skema JSON yang sama seperti yang ditunjukkan pada kode di atas, dan definisi yang ditulis untuk pemanggilan fungsi klasik tetap berlaku. Pekerjaan yang berharga adalah memperketatnya: tambahkan enum, nyatakan format, dan buat deskripsi cukup spesifik sehingga kode yang dihasilkan tidak dapat salah menafsirkannya.
Bisakah JavaScript yang dihasilkan mengakses internet?
Tidak. Kode berjalan di runtime V8 yang terisolasi tanpa akses jaringan, dan alat yang Anda deklarasikan adalah satu-satunya cara untuk memengaruhi apa pun di luar sandbox. Itu menjadikan permukaan alat Anda sebagai keseluruhan model risiko, jadi audit alat mana yang Anda ekspos dengan kehati-hatian yang sama seperti yang akan Anda berikan pada API publik.
Model GPT-5.6 mana yang mendukung pemanggilan alat terprogram?
OpenAI mendokumentasikannya sebagai permukaan Responses API untuk keluarga GPT-5.6, dan ketiga tingkatan (gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna) dapat diakses sendiri untuk akun API apa pun. Periksa referensi API untuk detail tingkat tingkatan sebelum berkomitmen pada salah satunya. Untuk pengaturan penting dan panduan permintaan pertama, lihat cara menggunakan API GPT-5.6.
Apa bedanya dengan interpreter kode?
Interpreter kode menjalankan kode sebagai hasil akhir: analisis, grafik, transformasi file. Pemanggilan alat secara terprogram menghasilkan kode yang satu-satunya tugas adalah mengoordinasikan alat yang Anda deklarasikan; hasil akhirnya adalah hasil alat yang diagregasi, bukan kodenya itu sendiri.
Di mana ini menempatkan Anda
Loop bolak-balik adalah bagian yang paling tidak menarik dari setiap agen yang telah Anda kirim, dan GPT-5.6 menjadikannya opsional. Orkestrasi berpindah ke model; tanggung jawab untuk API alat yang bersih, presisi, dan berperilaku baik berpindah kepada Anda, dengan bobot yang lebih besar dari sebelumnya.
Langkah selanjutnya adalah konkret. Pilih satu alur kerja yang banyak membaca, tulis atau perketat skema alat yang dibutuhkan, dan letakkan setiap titik akhir melalui klien API Apidog dan server maket hingga kontrak berlaku di bawah panggilan beruntun dan masukan yang buruk. Ketika model mulai menulis kode terhadap alat Anda, Anda ingin kode itu membaca dari permukaan yang sudah Anda uji.
