Lewati ke konten utama
Versi: 1.1

Agentic Loop

Semua coding agent modern — Claude Code, opencode, oh-my-pi, Codex, Hermes — pada intinya adalah program yang sama:

# Pseudocode: inti dari SEMUA coding agent
messages = [system_prompt, user_goal]

while True:
response = llm(messages, tools=[read, edit, bash, search, ...])

if response.has_tool_calls:
for call in response.tool_calls:
result = execute(call) # jalankan di dunia nyata
messages.append(result) # hasil masuk kembali ke konteks
else:
break # model bicara ke user = selesai/butuh input

if hit_stop_condition(): # budget habis, izin ditolak, dsb.
break

Semua fitur canggih — subagents, plan mode, memory — adalah hiasan di atas loop ini. Kalau kamu paham loop-nya, kamu bisa men-debug agent apapun.

Empat fase dalam satu iterasi

┌────────────────────────────────────────────┐
│ │
▼ │
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ PERCEIVE│───▶│ PLAN │───▶│ ACT │───▶│ OBSERVE │
│ baca │ │ tentukan│ │ panggil │ │ baca │
│ konteks │ │ langkah │ │ tool │ │ hasil │
└─────────┘ └─────────┘ └─────────┘ └─────────┘

Perceive. Model membaca semua yang ada di konteks: goal, isi file yang sudah dibaca, hasil tool sebelumnya, error terakhir. Model tidak melihat apa-apa di luar konteks — ini akar dari hampir semua kegagalan agent, dibahas tuntas di Context Engineering.

Plan. Model memutuskan langkah berikutnya. Di tool modern ini bisa eksplisit ("plan mode" yang menghasilkan rencana untuk kamu setujui) atau implisit (reasoning internal sebelum tiap tool call).

Act. Model memanggil tool: baca file, edit, jalankan npm test. Di sinilah permission model menentukan apakah aksi dieksekusi langsung atau menunggu persetujuanmu.

Observe. Output tool — termasuk error — dimasukkan kembali ke konteks. Inilah yang membuat agent bisa memperbaiki dirinya sendiri: test gagal → stack trace masuk konteks → iterasi berikutnya model memperbaiki penyebabnya.

Kenapa "test gagal" adalah bahan bakar, bukan masalah

Loop di atas menjelaskan prinsip terpenting dalam bekerja dengan agent:

:::tip Agent sekuat sinyal feedback-nya Agent yang bisa menjalankan test, linter, dan type checker akan konvergen ke solusi benar. Agent tanpa sinyal itu hanya bisa menebak dengan percaya diri. Karena itu Playbook langkah 1 mewajibkan test harness sebelum otomasi apapun. :::

Feedback yang bagus untuk agent bersifat: cepat (detik, bukan menit), spesifik (stack trace dengan nomor baris, bukan "failed"), dan bisa dijalankan berulang tanpa efek samping.

Stop conditions

Loop tanpa kondisi berhenti adalah tagihan API tak terbatas. Agent berhenti karena salah satu dari:

KondisiSifatCatatan
Model menyatakan selesaiNormalBerhenti memanggil tool, menulis ringkasan
Butuh input manusiaNormalPertanyaan klarifikasi, atau permission ditolak
Budget habisGuardrailBatas token/biaya/iterasi per-task
TimeoutGuardrailBatas waktu per tool call atau per sesi
Kill switchDaruratKamu menghentikan manual (Esc/Ctrl-C, atau perintah stop via Telegram)

Failure mode klasik: loop kejar-ekor. Agent mengedit → test gagal → edit lagi → test gagal dengan error yang sama → ulangi. Model tidak selalu sadar sedang berputar. Mitigasi: batas iterasi, dan instruksi eksplisit di AGENTS.md seperti "kalau pendekatan yang sama gagal 2×, berhenti dan jelaskan hipotesismu".

Satu iterasi nyata

Task: "perbaiki test yang gagal di utils/date.test.ts".

[PERCEIVE] goal + struktur repo di konteks
[ACT] bash: npx vitest run utils/date.test.ts
[OBSERVE] FAIL — expected "2026-08-31", received "2026-08-30"
at formatDate (utils/date.ts:14)
[PLAN] hipotesis: bug timezone di formatDate
[ACT] read: utils/date.ts
[OBSERVE] baris 14: new Date(input).toISOString().slice(0,10)
[PLAN] toISOString() konversi ke UTC → tanggal mundur 1 hari
[ACT] edit: pakai formatter lokal, bukan toISOString
[ACT] bash: npx vitest run utils/date.test.ts
[OBSERVE] PASS (12 tests)
[STOP] model menulis ringkasan → loop selesai

Perhatikan: tidak ada satu pun langkah yang ajaib. Setiap keputusan model didasarkan pada apa yang masuk ke konteks pada langkah sebelumnya.

Kenapa ini penting untuk playbook

Saat agent bekerja remote (via Telegram) kamu tidak menonton loop-nya — kamu hanya melihat ringkasan. Kemampuan membaca "agent ini macet di fase mana" dari ringkasan/log adalah skill inti agentic engineer: macet di observe berarti feedback signal-mu jelek (perbaiki test harness), macet di plan berarti konteksnya kurang (perbaiki AGENTS.md), macet loop kejar-ekor berarti stop condition-mu kurang ketat.

Lanjut

Tool Use: membedah fase Act — bagaimana persisnya model menyentuh dunia nyata.