Apa yang Membuat Sesuatu Menjadi Agent
Agent adalah LLM yang dijalankan dalam loop dengan alat. Model mengusulkan tindakan; harness memutuskan apa yang benar-benar terjadi.
Yang akan Anda bisa
- Menjelaskan loop agent: berpikir, memanggil alat, mengamati, mengulang
- Membedakan tanggung jawab model dan harness
- Mengenali kapan workflow tetap lebih baik daripada agent
Sebuah chatbot menjawab sekali lalu berhenti. Sebuah agent terus berjalan: ia memutuskan tindakan, melihat hasilnya, lalu memutuskan tindakan berikutnya — sampai tugasnya selesai atau ia dihentikan. Perbedaannya bukan pada modelnya. Modelnya bisa sama persis. Perbedaannya ada pada loop di sekelilingnya.
Loop-nya#
| Langkah | Siapa yang melakukan | Apa yang terjadi |
|---|---|---|
| 1. Konteks | Harness | Menyusun instruksi, riwayat, dan daftar alat yang tersedia |
| 2. Keputusan | Model | Menjawab langsung, atau meminta pemanggilan alat dengan argumen tertentu |
| 3. Eksekusi | Harness | Memvalidasi permintaan, menjalankan alatnya, menangkap hasil atau error |
| 4. Observasi | Harness | Menambahkan hasil alat ke konteks, lalu kembali ke langkah 2 |
| 5. Berhenti | Harness | Ketika model memberi jawaban akhir — atau ketika batas langkah, waktu, atau biaya tercapai |
Apa yang dimiliki harness#
Loop paling sederhana, tanpa framework#
MAX_STEPS = 10 def run_agent(task, tools, llm): messages = [{"role": "user", "content": task}] for step in range(MAX_STEPS): # kondisi berhenti reply = llm(messages, tools=tools.schemas()) messages.append(reply.as_message()) if not reply.tool_calls: # jawaban akhir return reply.text for call in reply.tool_calls: try: tools.validate(call) # skema + izin result = tools.run(call) except Exception as err: result = f"error: {err}" # kembalikan ke model messages.append(tool_result(call.id, result)) return "Berhenti: batas langkah tercapai."Itu seluruh intinya — sekitar dua puluh baris. Framework agent menambahkan kenyamanan, tapi setiap baris di atas tetap ada di dalamnya. Kalau Anda bisa menulis loop ini sendiri, Anda bisa men-debug framework apa pun.
Kapan Anda tidak butuh agent#
Agent membayar fleksibilitas dengan biaya, latensi, dan ketidakpastian. Kalau langkah-langkahnya sudah Anda ketahui sebelumnya — ekstrak, klasifikasi, ringkas, simpan — workflow tetap dengan satu atau beberapa panggilan LLM hampir selalu lebih murah, lebih cepat, dan lebih mudah diuji. Agent layak dipakai ketika jumlah dan urutan langkahnya benar-benar bergantung pada apa yang ditemukan di tengah jalan.
Model meminta pemanggilan alat delete_file(path="/data/report.csv"). Siapa yang menjalankan penghapusan itu?
Setiap faktur yang masuk harus diekstrak ke lima kolom yang sama lalu disimpan. Apa pilihan terbaik?