7 poin oleh GN⁺ 2026-01-09 | 1 komentar | Bagikan ke WhatsApp
  • Struktur inti asisten coding AI bukanlah sihir yang rumit, melainkan terdiri dari sekitar 200 baris kode Python sederhana
  • Sistem ini berbasis loop percakapan dengan LLM; ketika LLM meminta pemanggilan tool, kode lokal mengeksekusinya lalu mengirimkan hasilnya kembali
  • Tiga tool dasar yang dibutuhkan adalah membaca file (read), melihat daftar file (list), dan mengedit file (edit), yang memungkinkan penjelajahan proyek dan modifikasi kode
  • LLM menentukan sendiri tool apa yang harus dipanggil dan kapan, berdasarkan signature dan deskripsi (docstring) dari tiap tool
  • Struktur ini sama dengan inti produk komersial seperti Claude Code, dan bahkan struktur sederhana pun bisa mewujudkan agen coding yang kuat

Konsep dasar agen coding

  • Agen coding adalah sistem berbasis percakapan dengan LLM yang menerima perintah pengguna lalu melakukan operasi file nyata melalui pemanggilan tool
    • Pengguna memasukkan permintaan seperti “buat file baru yang berisi fungsi hello world”
    • LLM merespons dalam format JSON untuk pemanggilan tool yang diperlukan
    • Program menjalankan tool tersebut dan mengirimkan hasilnya kembali ke LLM
  • LLM tidak mengakses sistem file secara langsung; ia hanya membuat permintaan, sedangkan pekerjaan sebenarnya ditangani oleh kode lokal

Tiga tool yang dibutuhkan

  • read_file: membaca seluruh isi file yang ditentukan dan mengembalikannya
  • list_files: mengembalikan daftar file dan folder di dalam direktori
  • edit_file: mengganti string lama dengan string baru, atau membuat file baru jika old_str kosong
    • Jika string yang akan diganti tidak ditemukan, mengembalikan “old_str not found”
  • Dengan hanya tiga tool ini, pembuatan, pengeditan, dan penelusuran file sudah bisa dilakukan

Registrasi tool dan integrasi LLM

  • Semua tool didaftarkan di TOOL_REGISTRY dengan nama dan fungsi agar bisa dipanggil oleh LLM
  • Docstring dan signature dari setiap tool diekstrak lalu dikirim ke LLM
  • System prompt memberi tahu LLM dengan jelas tentang “daftar tool yang tersedia” dan “format pemanggilan”
    • Pemanggilan tool dibatasi pada format 'tool: TOOL_NAME({JSON_ARGS})'
    • Hasil eksekusi tool dikirim ke LLM dalam bentuk tool_result(...)

Parsing pemanggilan tool dan pemrosesan respons LLM

  • Dari respons LLM, sistem mencari baris yang diawali tool: lalu mengekstrak nama tool dan argumennya (JSON)
  • Setelah setiap tool dijalankan, hasilnya diserialisasi ke JSON dan ditambahkan ke riwayat percakapan
  • Fungsi execute_llm_call memanggil API LLM dan mengembalikan teks respons
  • run_coding_agent_loop menerima input pengguna dan mempertahankan loop percakapan dengan LLM
    • Loop internal terus berulang sampai LLM tidak lagi meminta pemanggilan tool

Contoh eksekusi dan kemungkinan pengembangan

  • Contoh percakapan:
    • “buat file hello.py dan implementasikan hello world” → membuat file baru lewat pemanggilan edit_file
    • “tambahkan fungsi untuk mengalikan dua angka di hello.py” → memanggil read_file lalu edit_file
  • Asisten coding yang lengkap bisa diimplementasikan hanya dengan sekitar 200 baris kode
  • Produk komersial menambahkan hal-hal seperti penanganan error, respons streaming, manajemen konteks, tool tambahan, dan prosedur persetujuan
  • Namun struktur intinya tetap sama: loop sederhana di mana LLM memutuskan dan kode mengeksekusi

Praktik dan pengembangan lebih lanjut

  • Seluruh source hanya sekitar 200 baris, dan dapat diperluas dengan mengganti penyedia LLM lain atau menambahkan tool
  • Bahkan dengan struktur sederhana, kita bisa langsung membangun prototipe agen coding AI yang kuat

1 komentar

 
GN⁺ 2026-01-09
Opini Hacker News
  • Yang ingin saya tambahkan adalah planning
    Kunci penggunaan alat yang efektif adalah menyadari bahwa semuanya bekerja di atas daftar TODO dinamis
    Mode Plan berfungsi untuk melakukan bootstrap pada bagaimana daftar itu di-seed dan kapan tiap item dijalankan
    Interaksi pengguna bekerja dengan cara menyusun ulang daftar tersebut
    Bulan lalu saya bereksperimen melihat seberapa baik Claude Code menyelesaikan soal CTF, dan saat alat TodoList serta planning dimatikan, performanya turun 1–2 tingkat
    Untuk videonya, lihat Breaking Bots: Cheating at Blue Team CTFs with AI Speed Runs
    Yang menarik, banyak orang hanya fokus pada “pakai mode plan atau tidak”, padahal daftar TODO selalu aktif
    Selain itu, agak lucu melihat tulisan yang meremehkan “manajemen konteks cerdas” sebagai sekadar item TODO sederhana
    Banyak juga yang mencoba mengimplementasikannya sendiri lalu membuang 1 tahun karena hasil evaluasi yang rusak di lingkungan produksi

    • Kalau melihat gist yang mengekstrak system prompt Claude Code, ada banyak detail tentang iterasi TODO
      Ini memang bisa saja ditambahkan sebagai reasoning token, tetapi dalam praktiknya jauh lebih bisa diprediksi dan efektif jika diimplementasikan sebagai alat penyimpanan eksplisit dengan satu kunci
      Rasanya pendekatan sesederhana ini juga bisa berhasil untuk ide alat lain yang menyimpan struktur bahasa
    • Untuk agen CLI, pendekatan mempertahankan file “working memory” bekerja sangat baik
      Saat menguji Codex, saya meluangkan sekitar 10 menit merapikan spesifikasi dan membaginya menjadi daftar perubahan, lalu menyuruhnya menyimpan itu ke file dan meninjau serta merevisi rencana setelah tiap perubahan
      Dengan begitu, LLM bisa tetap fokus pada pekerjaan pendek yang berorientasi tujuan tanpa perlu input prompt terus-menerus
      Efeknya pada dasarnya mirip seperti memiliki subagen
    • Saya juga sering menambahkan kalimat “gunakan daftar todo yang sangat terperinci untuk tugas ini” di akhir prompt
      Terkadang saya juga mengarahkan agar todo terakhir berbunyi “tinjau ulang seluruh pekerjaan dan periksa kualitasnya dengan linter dan sebagainya”
    • Daftar TODO sering disisipkan kembali ke HEAD konteks agar LLM menyadari riwayat dan langkah berikutnya
      Saat kompresi konteks, itu juga dipakai sebagai representasi ringkas dari sesi
    • Menjelang akhir tahun mungkin akan muncul lelucon seperti “How to Code Claude Code in 200 Million Lines of Code”
  • Inti agen coding sebenarnya hanyalah loop dan struktur pemanggilan alat yang sederhana
    Tetapi kalau mau menulis artikel seperti “The Emperor Has No Clothes: How to Code Claude Code in 200 Lines of Code”, wajib melihat How to Build an Agent dari Thorsten Ball
    Artikel itu yang pertama kali mengemukakan gagasan bahwa “hakikat agen itu sederhana”
    Tentu saja dalam praktiknya dibutuhkan TODO dan berbagai scaffolding, dan Claude Code sendiri juga punya banyak konfigurasi kompleks, plugin, dan fitur UI
    Meski begitu, dengan loop minimal saja kita tetap bisa melakukan bootstrap agar ia memperluas fungsinya sendiri
    Kalau ingin melihat cara kerjanya di dalam, claude-trace bisa digunakan untuk melacak interaksi antara LLM dan pemanggilan alat

    • Saya menganalisis transkrip lokal Claude Code dan Codex untuk melihat struktur internalnya
      Di luar loop sederhana, ada banyak elemen kompleks seperti uuid threading, pemrosesan message queue, snapshot perubahan file, dan sidechain subagen
      Jadi “200 baris” benar secara konseptual, tetapi pada level produksi nyata jauh lebih kompleks
      Codex memang belum punya fitur queueing, tetapi tetap kuat
      Saya membuat aplikasi macOS bernama Contextify untuk memantau transkrip CLI Claude Code dan Codex secara real-time, serta memungkinkan riwayat percakapan ditanyakan lewat fitur Total Recall
    • Pengeditan kode adalah bagian yang paling penting
      Model Claude dilatih dengan skema alat str replace miliknya sendiri
      Menulis ulang seluruh file tidak efisien, jadi revisi parsial adalah kuncinya
    • Ada juga respons seperti “saya kira ini repost dari artikel yang sama”
    • Ada pula permintaan seperti “bisakah Anda menunjukkan loop inti yang sederhana itu secara langsung”
  • Sebenarnya ada lebih banyak elemen lagi
    Misalnya, ada kasus ketika agen mengalami early stopping lalu mengakhiri tugas begitu saja
    Ini tidak terselesaikan bahkan dengan model reasoning terbaru
    Claude Code mengatasinya dengan menyuntikkan TODO ke setiap prompt untuk mengingatkan pekerjaan yang masih tersisa
    Repositori publik HolmesGPT memiliki berbagai benchmark eksperimen

    • Ada pertanyaan “kenapa early stop bisa terjadi”
  • Konsep “cukup beri LLM daftar alat dan format pemanggilannya” awalnya terasa mengejutkan
    Saya sempat berpikir, bagaimana mungkin LLM yang hanya menghasilkan teks bisa memanggil alat, tetapi saat sadar bahwa memang hanya itu yang terjadi, rasanya seperti sihir

  • Saat liburan saya membuat agen coding berbasis DSL Prolog dengan Opus (jumlahnya lebih dari 200 baris)
    Yang mengejutkan, itu hampir langsung bekerja dengan baik
    Model generasi terbaru tampaknya sudah mencapai tahap di mana pentingnya agent harness berkurang
    Untuk eksperimen terkait, lihat posting ini

  • Setahun lalu artikel ini cukup akurat, tetapi sekarang harness sudah jauh lebih berkembang sehingga model loop sederhana sulit menjelaskan perilaku nyata Claude Code

    • Tentu, harness modern punya lebih banyak fitur, tetapi konsep dasarnya tetap berlaku
      Bahkan agen sederhana pun tidak terlalu berbeda performanya jika memakai model yang sama
      Mirip seperti tutorial “membuat DB sendiri” yang memperlihatkan B-tree dasar
    • Menurut leaderboard tbench.ai, kompleksitas memang sedikit meningkatkan performa, tetapi pendekatan berbasis loop sederhana seperti “Terminus” tetap cukup kuat
    • Ada juga komentar bahwa “artikel ini dipublikasikan pada Januari 2025”
    • Dalam praktiknya, perkembangan satu tahun terakhir justru berfokus pada penyederhanaan prompt dan desain alat
      Subagent, MCP, dan Skills ada di tingkat menengah, sedangkan optimasi konteks hanya benar-benar berarti untuk eksekusi jangka panjang
    • Repositori codex-cli bisa dimanfaatkan untuk analisis model yang lebih baik
  • Saya membangun sendiri agent loop untuk penggunaan enterprise dan memproses lebih dari 1 miliar token per bulan
    Loop sederhana memang inti utamanya, tetapi di lingkungan nyata banyak detail yang membuat kompleksitas meledak
    Misalnya bagaimana memproses loop ketika pengguna mengirim pesan di tengah jalan, bagaimana menyinkronkan input webhook seperti Slack,
    serta hal-hal seperti persetujuan, guardrail, dan pemrosesan task asinkron
    Saya sempat berpikir untuk merangkum pengalaman ini dalam sebuah blog

  • Bacaan referensi yang layak dilihat adalah You Should Write An Agent dan How To Build An Agent

  • Tim SWE-bench kami merilis agen open-source 100 baris
    Namanya mini-swe-agent, dan populer baik di akademia maupun industri
    Ini titik awal yang bagus untuk mempelajari dunia agen

  • Pada 2023 ada artikel berjudul “mengimplementasikan ulang LangChain dalam 100 baris”
    Saya melihat artikel itu, lalu benar-benar mengimplementasikannya dan memakainya di beberapa proyek

    • Ada juga reaksi seperti “ternyata itu sudah 3 tahun lalu”