Apa itu AI agent & agentic loop
Tool use di Fase 2 berhenti setelah satu putaran: model minta satu tool, dapat hasil, jawab. Agent membiarkan model mengulang siklus itu sendiri — memutuskan langkah demi langkah — sampai tugasnya benar-benar selesai.
Intisari
- Agent = model yang diberi tool, lalu dibiarkan memutuskan sendiri urutan dan jumlah langkah untuk mencapai tujuan — bukan alur yang langkahnya sudah kamu tentukan semua di kode.
- Pola dasarnya disebut ReAct (Reason → Act → Observe): model bernalar apa yang harus dilakukan, bertindak (panggil tool), amati hasilnya, ulangi sampai selesai.
- Beda dengan workflow: workflow adalah urutan langkah tetap yang kamu program eksplisit; agent adalah loop terbuka di mana model sendiri yang memutuskan urutan langkahnya.
- Agent butuh kondisi berhenti yang jelas — tanpa batas jumlah langkah maksimum, agent bisa berputar tanpa akhir dan menghabiskan biaya token.
- Semakin otonom sebuah agent (semakin banyak keputusan diserahkan ke model), semakin besar juga risiko ia salah langkah — trade-off ini yang menentukan seberapa 'agentic' desain yang tepat untuk suatu tugas.
Dari satu putaran ke loop
Di Fase 2, tool use berbentuk satu putaran: kirim pertanyaan, model minta satu tool, kamu jalankan, kirim hasilnya balik, model jawab — selesai. Agent adalah loop dari pola yang sama, dibiarkan berjalan berkali-kali: hasil dari satu tool call dipakai model untuk memutuskan tool call berikutnya, dan seterusnya, sampai model memutuskan tugasnya sudah selesai.
def jalankan_agent(pertanyaan: str, tools: list, tool_impl: dict, maks_langkah: int = 8):
messages = [{"role": "user", "content": pertanyaan}]
for langkah in range(maks_langkah):
response = client.messages.create(
model="claude-sonnet-4-5", max_tokens=1024, tools=tools, messages=messages,
)
messages.append({"role": "assistant", "content": response.content})
if response.stop_reason != "tool_use":
return response.content[0].text # model memutuskan sudah selesai
hasil_tools = []
for block in response.content:
if block.type == "tool_use":
hasil = tool_impl[block.name](**block.input) # jalankan tool sungguhan
hasil_tools.append({"type": "tool_result", "tool_use_id": block.id, "content": str(hasil)})
messages.append({"role": "user", "content": hasil_tools})
return "Batas langkah maksimum tercapai tanpa jawaban final." # kondisi berhenti darurat
Ini persis pola ReAct (Reason → Act → Observe) yang jadi dasar hampir semua framework agent:
model bernalar ("saya perlu cek stok dulu sebelum bisa jawab"), bertindak (panggil tool
cek_stok), mengamati hasilnya (stok ada 3), lalu bernalar lagi ("stok cukup, saya
bisa proses pesanan") — diulang sampai model menghasilkan jawaban final tanpa memanggil tool lagi.
Workflow vs agent: siapa yang memegang kendali alur
| Workflow | Agent | |
|---|---|---|
| Urutan langkah | Ditentukan eksplisit di kode (if/else, pipeline tetap) | Diputuskan model saat runtime, langkah demi langkah |
| Prediktabilitas | Tinggi — jalurnya selalu sama | Lebih rendah — jalur bisa berbeda tiap eksekusi, tergantung apa yang ditemukan |
| Cocok untuk | Tugas yang jalurnya sudah diketahui & berulang (mis. proses approval berjenjang) | Tugas terbuka yang jalurnya bergantung konteks (mis. "riset topik X dan buat rangkumannya") |
| Biaya & latensi | Bisa diperkirakan | Bervariasi — bisa butuh 1 langkah atau 10 langkah tergantung kasus |
Jangan lompat ke agent kalau workflow sudah cukup. Anthropic sendiri menekankan ini di sumber materi ini: banyak masalah yang terlihat butuh "agent" sebenarnya cukup diselesaikan dengan workflow eksplisit yang lebih murah, lebih cepat, dan lebih mudah didebug. Pakai agent saat tugasnya benar-benar butuh model mengambil keputusan yang jalurnya tidak bisa kamu tentukan semua di muka.
Kondisi berhenti — bagian yang paling sering dilupakan
Tanpa batas eksplisit, agent bisa terjebak loop: memanggil tool yang sama berulang kali, atau bolak-balik antara dua kesimpulan tanpa pernah "selesai". Tiga pengaman yang wajib ada:
- Batas jumlah langkah maksimum — seperti
maks_langkahdi kode atas. Kalau tercapai, hentikan paksa dan laporkan status apa adanya. - Batas anggaran token/biaya — agent yang berputar lama juga berarti biaya token yang terus bertambah (Fase 7).
- Deteksi loop — kalau tool call yang sama dengan argumen sama terpanggil berkali-kali berturutan, itu tanda agent "bingung" dan sebaiknya dihentikan lebih awal daripada menunggu batas maksimum.
Spektrum otonomi
"Agent" bukan sakelar on/off — ia spektrum seberapa banyak keputusan diserahkan ke model:
| Tingkat otonomi | Contoh |
|---|---|
| Rendah | Satu tool call tetap (Fase 2), tidak ada loop |
| Menengah | Agent dengan tool terbatas & batas langkah ketat, untuk tugas sempit (mis. "cari & ringkas satu dokumen") |
| Tinggi | Agent dengan banyak tool, boleh menulis file, menjalankan kode, mengambil keputusan bertingkat (mis. coding agent) |
Semakin tinggi otonominya, semakin besar dampak kalau agent salah langkah — dan semakin penting guardrails dari Fase 2 (pembatasan tool, hak akses minimal) diterapkan ketat.
Latihan: beri agent di atas dua tool: cek_stok(produk) dan
hitung_ongkir(kota, berat). Ajukan pertanyaan yang butuh keduanya dipanggil berurutan
("apakah kaos L ada, dan berapa ongkir ke Medan kalau beratnya 0.5kg?") dan amati di
messages bagaimana model memutuskan sendiri urutan pemanggilannya.
Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.