OpenAI baru saja merilis Agents API dalam public beta. API ini membawa harness dan infrastructure yang digunakan di balik Codex ke dalam API yang bisa dipakai developer.1
Buat saya, ini bukan sekadar API baru untuk memanggil model.
Selama ini, ketika ingin membangun AI agent, kita harus merakit banyak bagian sendiri:
Agents API mencoba mengurus sebagian besar pekerjaan tersebut.
Pertanyaannya bukan lagi hanya "model apa yang dipakai?", tetapi juga: apakah kita ingin membangun agent runtime sendiri atau memakai runtime yang sudah dikelola provider?
Model yang pintar belum cukup untuk membuat agent yang berguna.
Agent yang mengerjakan task panjang perlu mengetahui konteks sebelumnya. Ia perlu menggunakan tools secara efisien. Ia perlu bisa membaca file, menjalankan kode, menghasilkan artefak, dan melanjutkan pekerjaan tanpa kehilangan arah.
Menurut OpenAI, Agents API dibangun dari pengalaman menjalankan Codex dan ChatGPT Work dalam skala besar. API ini menyediakan session, orchestration, context management, tool usage, dan recovery yang dikelola OpenAI.1
Dalam dokumentasinya, OpenAI membagi konsep utama Agents API menjadi empat bagian:
Pembagian ini penting karena membuat kita bisa memisahkan otak agent dari tempat agent bekerja.
Agent bisa menggunakan model tertentu, tetapi eksekusinya berjalan di environment yang berbeda. Environment tersebut bisa berupa sandbox yang dikelola OpenAI atau infrastructure milik kita sendiri.
Contoh paling sederhana dari dokumentasi OpenAI terlihat seperti ini:
import OpenAI from 'openai'
const client = new OpenAI()
const session = await client.beta.agents.sessions.create({
agent: {
model: 'gpt-6-astra',
instructions: `
Investigate technical issues carefully.
Explain your findings before proposing changes.
Never access production secrets.
`,
tools: [
{
type: 'web_search',
},
{
type: 'mcp',
server_label: 'observability',
transport: {
type: 'http',
server_url: 'https://observability.example.com/mcp',
},
},
],
},
environment: {
type: 'openai_hosted',
capability_directories: [
'/workspace/capabilities/skills',
],
},
input:
`Investigate service-api's elevated 5xx rate over the last 30 minutes.`,
})
console.log(session.id)
Contoh ini membuat session baru, menentukan model, menghubungkan tools, memilih environment, lalu memberikan task awal kepada agent.
Yang menarik bukan hanya jumlah baris kodenya. Bagian yang biasanya membutuhkan banyak glue code sekarang menjadi konfigurasi deklaratif.
Kita memberi tahu:
Setelah itu, aplikasi bisa menerima event dari session, menunggu hasil, atau mengirim input tambahan ke session yang sama.2
Agent yang hanya bisa menjawab satu prompt biasanya belum terlalu menarik.
Masalah nyata sering berjalan lebih lama:
Agents API menyediakan session yang bisa digunakan kembali. Aplikasi dapat mengirim task lanjutan ke session yang sama tanpa membangun ulang seluruh konteks dari awal.2
Untuk workflow seperti incident response atau code review, kemampuan ini cukup penting.
Bayangkan sebuah agent untuk membantu investigasi error production:
Input pertama:
"Periksa kenaikan HTTP 500 pada service-api."
Input kedua:
"Fokus hanya pada perubahan deployment terakhir."
Input ketiga:
"Bandingkan error ini dengan incident minggu lalu."
Input keempat:
"Buatkan rekomendasi mitigasi. Jangan menjalankan perubahan apa pun."
Tanpa session yang tahan lama, setiap input harus membawa ulang konteks. Dengan session, agent dapat melanjutkan pekerjaan sebelumnya.
Namun session yang durable tidak otomatis berarti agent aman. Kita tetap perlu menetapkan berapa lama data disimpan, siapa yang boleh mengaksesnya, dan bagaimana session dihapus setelah tidak diperlukan.
Salah satu bagian yang paling berguna dari Agents API adalah environment atau sandbox.
Agent dapat bekerja dengan file, menjalankan kode, memasang package yang diperlukan, dan menghasilkan artefak di dalam environment tersebut. OpenAI menyediakan hosted sandbox, tetapi developer juga dapat memilih self-hosted environment atau sandbox dari partner ecosystem.1
Pemisahan ini lebih sehat daripada memberikan akses langsung ke server aplikasi.
Untuk task seperti:
agent tidak harus memiliki akses langsung ke production.
Saya akan mulai dengan prinsip sederhana:
Agent boleh bekerja di sandbox, tetapi sistem utama tetap mengontrol kapan hasilnya boleh masuk ke production.
Misalnya agent boleh membuat patch dan menjalankan test, tetapi tidak boleh langsung melakukan deployment. Hasil kerja agent dikirim sebagai pull request untuk direview manusia atau melewati pipeline dengan approval terpisah.
Agents API mendukung MCP, custom function, dan built-in tools seperti web search.1
Artinya, agent dapat dihubungkan dengan sistem eksternal tanpa semua integrasi harus ditulis sebagai kode khusus di aplikasi utama.
Contoh tool yang mungkin digunakan:
OpenAI juga memperkenalkan tool search untuk membantu agent memuat definisi tool yang relevan hanya ketika diperlukan. Ini dapat mengurangi jumlah token yang dipakai untuk mendeskripsikan semua tools di setiap interaksi.1
Bagi aplikasi yang punya banyak integrasi, pendekatan ini lebih masuk akal daripada memasukkan seluruh definisi tool ke context sejak awal.
Tetap ada satu risiko: semakin banyak tool yang tersedia, semakin besar area kesalahan agent.
Tool untuk membaca data biasanya lebih mudah diberi otonomi. Tool untuk mengubah data, mengirim pesan, menghapus record, atau memicu deployment harus memiliki batas yang jauh lebih ketat.
Agents API juga mendukung subagent. Task besar dapat dipecah menjadi beberapa pekerjaan independen, lalu dikerjakan secara paralel.1
Misalnya untuk investigasi incident:
Konfigurasinya terlihat sederhana:
const session = await client.beta.agents.sessions.create({
agent: {
model: 'gpt-6-astra',
instructions: `
Investigate the incident.
Delegate independent deployment, error, and dependency analysis.
Combine the findings into one report.
`,
multi_agent: {
enabled: true,
max_concurrent_subagents: 3,
},
},
input: `
Investigate the elevated 5xx rate in service-api
over the last 30 minutes.
`,
})
Di sinilah saya akan berhati-hati.
Parallel execution memang bisa mengurangi waktu tunggu, tetapi tidak otomatis membuat hasil lebih benar. Tiga subagent bisa saja mengulang kesalahan yang sama karena membaca data atau asumsi yang sama.
Sebelum memakai multi-agent, pastikan:
Kalau task-nya sederhana, satu agent dengan tools yang tepat mungkin lebih murah dan lebih mudah diaudit.
Agents API mengurangi pekerjaan infrastructure. Ia tidak menghapus pekerjaan product dan engineering.
Kita masih harus menentukan:
API juga tidak menggantikan observability. Kita tetap perlu mencatat:
Agent yang tidak bisa diaudit bukan sistem yang siap production, meskipun demo-nya terlihat bagus.
Agents API saat ini masih public beta. OpenAI menyatakan bahwa tidak ada biaya tambahan khusus untuk penggunaan Agents API, tetapi developer tetap membayar token, tools, dan biaya container sesuai penggunaan.1
Dokumentasi OpenAI juga menyebutkan bahwa Agents API saat ini mendukung data residency hanya di Amerika Serikat dan belum mendukung Zero Data Retention. Memilih self-hosted sandbox tidak otomatis membuat penggunaan Agents API memenuhi syarat ZDR.2
Ini bukan detail kecil.
Untuk developer di Indonesia, pertanyaan yang harus dijawab sebelum menghubungkan data internal adalah:
Jangan menunggu sampai agent sudah terhubung dengan database production baru pertanyaan ini dibahas.
Saya tidak akan memulai dari agent yang punya akses penuh ke seluruh sistem.
Beberapa use case dengan risiko lebih terkendali:
Agent membaca repository, mencari file yang relevan, menjelaskan alur kode, dan membuat rencana perubahan.
Output-nya berupa laporan atau draft patch. Tidak ada akses write ke production.
Agent membaca alert, log yang sudah disaring, dan riwayat deployment. Hasilnya berupa ringkasan penyebab yang mungkin serta rekomendasi langkah berikutnya.
Tindakan pemulihan tetap membutuhkan approval.
Agent membaca perubahan kode dan membuat draft dokumentasi, changelog, atau release note.
Perubahan dapat dikirim sebagai pull request agar tetap melalui workflow biasa.
Agent menggunakan MCP untuk membaca dokumentasi internal, SOP, dan knowledge base.
Pastikan permission di MCP mengikuti permission pengguna. Jangan membuat agent yang bisa membaca semua dokumen hanya karena lebih mudah saat setup.
Agent dapat menjalankan query analitik terbatas untuk menjawab pertanyaan bisnis.
Gunakan database replica atau role read-only. Batasi tabel, durasi query, dan jumlah record yang bisa dikembalikan.
Kalau saya harus mengadopsi Agents API sekarang, urutannya kira-kira seperti ini:
Saya tidak akan langsung membuat agent yang bisa membaca database, mengubah repository, mengirim email, dan melakukan deployment sekaligus.
Bukan karena agent tidak mampu melakukannya. Justru karena agent mungkin cukup mampu untuk melakukan banyak hal sebelum kita menyadari bahwa permission-nya terlalu luas.
Agents API membuat pembangunan AI agent menjadi lebih dekat dengan pekerjaan API integration biasa.
Kita tidak perlu selalu membangun sendiri session manager, context compaction, orchestration layer, sandbox lifecycle, dan mekanisme subagent. OpenAI menyediakan semua itu sebagai managed runtime.[1]2
Tetapi kemudahan ini juga bisa membuat kita terlalu cepat memberi akses.
Agent tetap perlu diperlakukan sebagai komponen software yang memiliki permission, failure mode, biaya, dan risiko. Bedanya, perilakunya tidak selalu deterministik seperti service biasa.
Jadi, saya melihat Agents API bukan sebagai alasan untuk membuat agent yang semakin bebas.
Saya melihatnya sebagai alasan untuk membuat agent yang lebih terstruktur:
API boleh mengurus harness. Keputusan tentang batas otonomi tetap tanggung jawab kita.
1 https://openai.com/index/introducing-the-agents-api — Introducing the Agents API | OpenAI
2 https://developers.openai.com/api/docs/guides/agents-api/overview — Agents API | OpenAI API
Catatan praktis tentang software engineering, AI, dan proses membangun produk. Tanpa spam, maksimal 2–4 email per bulan.