Agent bukan satu benda: model, runtime, tool, dan policy
Saat orang bilang “agent”, mereka biasanya sedang membicarakan satu dari lima hal yang berbeda. Memisahkannya membuat pertanyaan tentang akses jadi bisa dijawab.
Rujukan / 6 sumber primer ↓Mulai dari satu tugas biasa
Ambil permintaan sekecil ini: “ubah satu file konfigurasi dan tunjukkan diff-nya.” Kalimat itu tidak menyebut agent, model, atau protokol. Tetapi untuk menjalankannya, enam langkah harus bekerja berurutan — dan masing-masing punya batas yang berbeda.
- ModelMengusulkan langkah berikutnya dan argumen tool.Tidak melihat file, tidak memegang credential.
- InstruksiTeks aturan: kapan berhenti, apa yang tidak boleh.Hanya dibaca model; tidak menegakkan apa pun.
- Tool callPermintaan tindakan, misalnya membaca satu file.Belum tentu dijalankan.
- RuntimeMenjalankan tool, memakai credential, menyimpan state.Di sini izin benar-benar dipakai.
- FilesystemPerubahan nyata di disk, atau permintaan keluar ke jaringan.Bisa terjadi sebelum kamu melihat hasilnya.
- Review manusiaMembaca diff, log, dan hasil kerja.Satu-satunya titik yang bisa menolak.
Instruksi hanyalah teks: ia bisa meminta agent berhenti sebelum menulis, tetapi tidak ada yang menegakkan permintaan itu. Tool call juga belum tindakan; ia permintaan yang bisa ditolak runtime. Yang menyentuh file adalah runtime dengan credential yang kamu berikan. Dan yang bisa menolak hasilnya sebelum dipakai adalah kamu, di titik review.
Karena itu pertanyaan “apakah agent ini aman?” tidak punya jawaban tunggal. Yang bisa dijawab: tool apa yang tersedia, izin apa yang dipegang runtime, dan di mana kamu berhenti untuk memeriksa.
Tujuh istilah, satu tabel
Definisi saja tidak cukup, karena banyak istilah dipinjam untuk hal yang berbeda. Kolom terakhir di bawah ini yang membuat tabelnya berguna: setiap komponen juga punya hal yang tidak bisa ia tentukan.
| Istilah | Yang ia lakukan | Yang tidak bisa ia tentukan |
|---|---|---|
| AgentOpenAI — Agents | Menjalankan tugas multi-langkah: memilih langkah, memanggil tool, menyimpan konteks. | Tidak memberi izin apa pun. Izin datang dari runtime dan credential yang kamu pasang. |
| ModelOpenAI — Function calling | Menghasilkan usulan langkah dan argumen tool dari konteks yang dikirim runtime. | Tidak melihat isi filesystem dan tidak memastikan usulannya dijalankan. |
| ToolMCP — Tools | Satu fungsi yang bisa dipanggil, dengan skema input dan output. | Anotasi seperti read-only adalah klaim dari server; spesifikasi MCP meminta client menganggapnya belum tepercaya. |
| MCP serverMCP Python SDK — first steps | Proses yang mengekspos tool, resource, dan prompt lewat protokol MCP. | Tidak menentukan apa yang client lakukan dengan hasilnya, termasuk soal persetujuan. |
| SkillOpenAI — Skills | Folder instruksi (SKILL.md) plus script, referensi, atau template pendukung. | Tidak menambah akses dengan sendirinya; akses tetap milik tool yang tersedia. |
| PluginOpenAI — Plugin architecture | Paket yang bisa memuat skill, satu MCP server, dan hook lifecycle. | Nama paket tidak memberi tahu tool mana yang benar-benar aktif setelah dipasang. |
| WorkflowDefinisi kerja NoHalu | Urutan pekerjaan yang kamu susun: ambil issue, kelompokkan, buat draft, minta review. | Bukan produk atau standar. Tidak ada yang menjamin urutannya dijalankan. |
Nama paket tidak menentukan batas akses. Skill dapat menyertakan script, plugin dapat memuat beberapa integrasi, dan akses efektifnya tetap perlu dilihat dari tool, runtime, serta credential yang benar-benar dipakai.
Satu contoh konkret: dokumentasi plugin OpenAI menyebut bahwa memasang plugin di web tidak menjalankan script hook di mesinmu. Artinya “sudah terpasang” bukan pernyataan tentang apa yang berjalan, dan bukan pernyataan tentang izin apa yang dipegang.
Tiga kegagalan yang sering tertukar
Ketiganya terlihat sama dari luar: “agent tidak bisa.” Yang berbeda adalah komponen mana yang gagal, dan itu menentukan apa yang harus kamu ubah.
Model kuat, akses nol
Kamu mengganti model dengan yang lebih mampu, lalu menunggu agent memperbaiki repository. Yang terjadi: agent menjelaskan apa yang akan ia lakukan, tanpa pernah menyentuh file. Kekuatan penalaran tidak menciptakan akses.
Yang perlu diubah: Tambahkan tool yang memang dibutuhkan, lalu batasi ke satu folder.
Tool terlalu besar untuk tugasnya
Tugasnya membaca satu file, tetapi yang terpasang adalah tool yang juga menulis, menghapus, dan mengirim. Tidak ada yang salah dengan modelnya; permukaan tindakan yang terlalu lebar.
Yang perlu diubah: Pilih tool paling sempit, atau jalankan pada salinan yang boleh rusak.
Tool berguna tanpa titik review
Semua persetujuan dimatikan supaya cepat. Tool bekerja, perubahan masuk, dan tidak ada yang membaca diff sebelum hasilnya dipakai. Kegagalannya bukan pada tool, tetapi pada tidak adanya tempat berhenti.
Yang perlu diubah: Tetapkan satu tindakan yang selalu menunggu kamu: tulis, kirim, merge, atau publikasi.
Latihan lima menit: tarik batas untuk satu tugas
Ambil satu tugas yang benar-benar ingin kamu berikan. Jangan pilih yang besar; pilih yang hasilnya bisa kamu periksa dalam satu layar.
- Tulis tugas dan hasil yang cukup. Satu kalimat tugas, satu kalimat hasil. Contoh: “ubah satu file konfigurasi dan tunjukkan diff-nya”.
- Sebut akses minimum. Bukan “akses repo”, tetapi “baca dua file ini dan tulis satu file itu”.
- Tandai titik review. Tindakan mana yang harus berhenti dan menunggu kamu? Kalau tidak ada satu pun, kamu belum punya titik review.
- Tulis yang belum diketahui. Versi yang dipakai, perilaku saat tool gagal, cara mencabut akses. “Belum diketahui” adalah jawaban yang sah, dan lebih berguna daripada tebakan.
Empat baris itu mengisi bagian “Tugas dan kondisi hasil”, “Akses yang diizinkan”, dan “Unknowns” di agent review notes — sembilan bagian yang namanya sama dengan sembilan baris di artikel rekaman. Peta enam langkah di atas punya tempatnya sendiri di sana: model dan instruksi di bagian 1, tool call dan runtime di bagian 5, filesystem/network di bagian 4, dan titik review manusia di bagian 7. Kalau baris ketiga belum bisa kamu isi, jangan hubungkan dulu — itu bukan kegagalan latihan, itu hasilnya.
Langkah berikutnya
Peta di atas menjelaskan komponen. Pertanyaan yang biasanya tersisa lebih sempit: apakah kamu sudah tahu apa yang boleh disentuh agent di repository-mu, sebelum perintah pertama dijalankan?