Cara Kerja Agentic AI Coding (Studi Kasus: OpenCode)

Kemarin saya sempat riset tentang agentic AI coding — tren AI yang lagi ramai dipakai untuk menulis kode. Beda dengan AI generasi lama yang cuma menjawab potongan kode sekali jalan, agentic AI bisa mengerjakan tugas sampai selesai: baca file, edit, jalankan perintah, cari di web, bahkan bertanya balik ke kita. Contohnya OpenCode, Claude Code, Codex CLI, Cursor Agent. Di tulisan ini saya bahas cara kerjanya, dengan OpenCode sebagai studi kasus.

Apa itu Agentic AI Coding?

Perbedaan fundamentalnya begini:

AI Assistant klasik (autocomplete/chat)Agentic AI coding
Cara kerjaMenjawab potongan kode sekali jalanLoop: model → panggil tool → lihat hasil → lanjut, sampai tugas selesai
AksesHanya teks di editorBisa baca/edit file, jalankan shell, cari di web, tanya user
KontrolUser yang mengeksekusiAgent yang mengeksekusi (dengan permission yang bisa dibatasi)
ContohCopilot autocompleteOpenCode, Claude Code, Codex CLI, Cursor Agent

Cara Kerja Inti: Agent Loop

Inti dari semua agentic coding adalah agent loop — siklus yang diulang sampai target tercapai:

  1. Konteks — agent diberi instruksi + isi repo, aturan proyek (AGENTS.md/rules), dan riwayat sesi.
  2. Putuskan — model memilih: jawab langsung, atau panggil tool.
  3. Eksekusi — tool dijalankan (edit file, run test, fetch docs), output dikembalikan ke konteks.
  4. Iterasi — ulangi sampai target tercapai, lalu lapor hasil.

Yang membuat loop ini aman dan berguna ada empat dukungan kunci: sistem permissions (apa yang boleh dijalankan tanpa izin), subagent (agent khusus yang didelegasikan), context management (kompaksi saat konteks panjang), dan integrasi LSP/MCP (code intelligence + tool eksternal).

OpenCode sebagai Contoh Nyata

OpenCode (opencode.ai) adalah agentic coding open-source yang cukup populer. Data repo terverifikasi via GitHub API (11 Agustus 2026):

  • Repo: anomalyco/opencode — “The open source AI coding agent”
  • ~195.800 ⭐, 25.100+ fork, lisensi MIT, bahasa TypeScript
  • Dibuat 30 April 2025, masih aktif (push terakhir 10 Agustus 2026)
  • Bentuk: TUI (terminal), CLI opencode run, desktop app (beta), ekstensi IDE

Sistem Agent

OpenCode punya dua tipe agent: primary (dipakai langsung, ganti via tombol Tab) dan subagent (dipanggil via @nama atau otomatis oleh agent utama):

AgentTipeAksesFungsi
buildprimary (default)semua tooldevelopment, edit + run perintah
planprimaryread-only (edit: deny, bash: ask)analisis & buat rencana tanpa menyentuh kode
generalsubagentsemua tool kecuali todoriset multi-langkah, bisa jalan paralel
exploresubagentread-onlyjelajah/cari di codebase dengan cepat
scoutsubagentread-onlyriset dokumentasi/dependency eksternal
compaction, title, summaryhidden—kompaksi konteks, judul sesi, ringkasan (otomatis)

Tool Bawaan

Semua tool bisa di-allow/ask/deny satu per satu lewat konfigurasi permission:

ToolFungsi
basheksekusi perintah shell
read / write / edit / apply_patchoperasi file
grep / globpencarian (ditenagai ripgrep, hormati .gitignore)
lsp (eksperimental)go-to-definition, find-references, hover
skillmemuat SKILL.md (knowledge prosedural)
todowritetodo list saat tugas kompleks
webfetchambil konten halaman web
websearchcari web via Exa AI (tanpa API key, aktivasi via env)
questionbertanya ke user saat eksekusi (klarifikasi/pilihan)

Cara kerja khasnya: agent memanggil tool → hasil tool masuk konteks → model menyambung logika → bisa membuat sesi child untuk subagent, lalu kembali ke sesi induk. Modelnya provider-agnostic (Anthropic, OpenAI, OpenRouter, model lokal via Ollama, dll) — tidak terikat satu vendor. Konfigurasi via opencode.json atau file markdown di .opencode/agents/.

Arsitektur Loop: Observe → Think → Act → Tool

Secara lebih rinci, satu iterasi agent loop bisa dipecah jadi empat langkah yang berulang:

Observe — agent membaca konteks saat ini: isi file yang relevan, isi terminal terakhir, riwayat percakapan. Ini seperti programmer yang duduk di depan layar, membaca error log sebelum mulai mengetik. Think — model LLM merencanakan langkah berikutnya: perlu baca file X dulu? Harus edit baris Y? Perlu jalankan test? Act — agent memanggil tool yang dipilih, misalnya write atau bash. Tool result — output tool dikembalikan ke dalam konteks, lalu loop kembali ke Observe.

Yang menarik: tidak ada satu pun komponen di loop ini yang “pintar” sendiri. Model LLM hanya merencanakan — semua eksekusi nyata dilakukan tool. Seperti tech lead yang pintar merencanakan tapi tidak coding langsung: delegation ke tool yang tepat adalah kunci.

Context Management & Memory

Tantangan utama agentic coding adalah context window — LLM punya batas token yang bisa diingat dalam satu sesi. OpenCode menangani ini dengan beberapa strategi:

  1. Compaction otomatis — saat konteks mendekati batas, agent tersembunyi “compaction” merangkum seluruh sesi jadi ringkasan singkat, lalu mulai sesi baru dengan ringkasan itu. Seperti menulis catatan rapat lalu memulai rapat baru dengan catatan itu.
  2. Subagent delegation — agent utama bisa mendelegasikan sub-tugas ke subagent. Subagent punya konteks sendiri yang terpisah, jadi tidak membebani konteks utama.
  3. File-based memory — AGENTS.md, .opencode/rules/, dan SKILL.md persist antar sesi. Agent “membaca” file ini setiap kali mulai, seperti programmer yang baca README sebelum kerja.
  4. Todo list — untuk tugas kompleks, todowrite tool membuat checklist yang bisa diakses agent kapan saja, menjaga fokus pada task yang belum selesai.

Error Recovery

Ketika tool gagal — misalnya test error, syntax error, atau permission ditolak — agent tidak berhenti. Strategi error recovery-nya:

  • Retry dengan pendekatan berbeda — jika bash mengembalikan error, agent membaca error message, menganalisis penyebab, lalu coba solusi lain. Sama seperti kita baca stack trace lalu fix.
  • Fallback ke tool lain — jika edit gagal karena context mismatch, agent bisa baca file dulu dengan read, lalu coba write dengan konten yang benar.
  • Ask user — tool question memungkinkan agent bertanya ke user saat buntu. Ini safety net terakhir sebelum agent loop mandek.
  • Batas iterasi — ada batas maksimal iterasi loop agar agent tidak infinite loop. Jika mencapai batas, agent lapor status dan berhenti.

Agentic vs IDE Assistance Tradisional

Bandingkan dengan Copilot autocomplete atau ChatGPT di editor: asisten tradisional hanya mengusulkan kode — kita yang harus copy-paste, jalankan test, perbaiki error sendiri. Alurnyaada di manual di tiap langkah.

Agentic coding mengotomasi seluruh siklus itu. Kita beri instruksi tingkat tinggi (“fix bug ini”, “tambah fitur X”), agent mengerjakan loop baca → edit → test → fix sampai selesai. Perbedaannya seperti peta manual vs GPS: dua-duanya bantu navigasi, tapi GPS yang mengeksekusi belokan demi belokan.

Implikasinya: untuk tugas kecil (satu baris autocomplete, quick fix), Copilot tetap lebih cepat. Tapi untuk tugas yang butuh multi-step reasoning — refactor across files, investigasi bug kompleks, setup proyek baru dari nol — agentic coding jauh lebih efisien karena mengurangi context-switching manual manusia.

Limitasi yang Harus Dipahami

  • Context window limit — meski sudah compaction, project besar dengan banyak file tetap sulit diakses sekaligus. Agent mungkin melewatkan konteks penting.
  • Hallucination risk — agent bisa membuat kode yang terlihat benar tapi sebenarnya tidak berfungsi. Tool bash menjalankan test membantu mitigasi, tapi tidak menjamin semua edge case tertangkap.
  • Token cost — satu sesi agentic coding bisa menghabiskan ribuan token per iterasi. Untuk model berbayar (Claude, GPT), biaya bisa signifikan di sesi panjang.
  • Keamanan — meski ada permission system, agent tetap punya akses ke filesystem dan shell. Selalu review perubahan yang dibuat agent sebelum commit ke production.
  • Tidak bisa ganti domain knowledge — agent membantu eksekusi, tapi tetap kita yang harus tahu arsitektur sistem, requirement bisnis, dan decision-making strategis.

Kapan Pakai Agentic vs Manual?

SkenarioPendekatan terbaik
Fix typo / rename variableAutocomplete / find-replace — tidak butuh agent
Buat function baru standaloneCopilot chat — cepat, langsung di editor
Refactor across 5+ fileAgentic — agent bisa baca semua file, edit konsisten, jalankan test
Investigasi bug dari error logAgentic — agent bisa baca log, trace kode, coba fix berulang
Setup CI/CD dari nolAgentic — banyak file, banyak iterasi, banyak test
Belajar konsep baruManual + chat AI — agentic terlalu cepat, kita perlu ikuti prosesnya

Catatan Pribadi

Pertama kali pakai agentic coding, saya sempat kaget — agent baca file saya, edit, jalankan test, lalu fix error sendiri dalam hitungan menit. Rasanya seperti pair programming dengan rekan yang sangat cepat tapi butuh banyak arahan di awal. Saya juga sempat tergoda untuk menyerahkan semua task tanpa review, tapi pengalaman itu mengajarkan satu hal: agent itu tool, bukan rekan yang bisa dipercaya 100%. Review tetap wajib, apalagi untuk kode yang akan production.

Yang paling berguna menurut saya adalah saat debugging — agent bisa membaca error log yang panjang, trace ke beberapa file, dan menyarankan fix lebih cepat dari yang bisa saya lakukan manual. Tapi untuk arsitektural decision, tetap manusia yang harus memimpin.

Kesimpulan

Agentic coding pada dasarnya memberi LLM tangan (tools) + aturan (permissions) + ingatan kerja (konteks sesi), lalu membiarkannya mengulang loop eksekusi sampai selesai. OpenCode adalah implementasi open-source yang bagus untuk dipelajari: konsepnya sederhana (loop + tools), tapi lengkap — subagent, MCP, LSP, permission. Yang menarik buat saya: loop yang sama persis juga dipakai asisten riset di mesin ini untuk men-delegate tugas, jadi paham konsep ini ternyata berguna di luar coding.

Sumber

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses