Belajar AI #29: Framework Agent — LangChain, LangGraph, LlamaIndex, dan smolagents

Di episode #26 kita sudah membedah apa itu AI Agent: loop perceive-reason-act dengan tool use di dalamnya. Lalu di episode #27 dan #28 kita bahas function calling dan MCP sebagai cara model memanggil tools. Pertanyaan berikutnya yang muncul di kepala saya: kalau mau bikin agent sungguhan, harus mulai dari mana? Tulis loop-nya sendiri dari nol pakai API, atau pakai framework yang sudah ada? Hari ini saya catat peta ekosistem framework agent 2026 dan kapan saya memilih pakai mana.

Framework agent itu apa, sebenarnya?

Sederhananya: framework agent adalah kerangka kerja yang mengurus “hal-hal membosankan” di sekitar LLM — memanggil model, mengelola daftar tools, menjalankan loop reasoning, menyimpan state antar-step, dan menambah retry atau guardrail. Kalau tanpa framework, saya harus menulis sendiri while-loop yang memanggil API, mem-parse tool call, mengeksekusinya, mengirim hasilnya balik ke model, dan mengulang sampai selesai. Pernah saya coba pola itu manual dan baru sadar: separuh kodenya bukan logika bisnis, tapi plumbing.

Analogi programmer-nya: framework agent itu seperti Express/Django untuk web. HTTP request dan routing bisa ditulis manual dengan netcat, tapi tidak ada gunanya mengulang hal yang sama tiap proyek. Yang perlu saya bedakan: framework ini BUKAN modelnya. Model (GPT, Llama, Qwen) tetap dari provider lain; framework hanya otak kendali di sekitarnya.

Peta ekosistem: empat nama besar

FrameworkFokus utamaCocok untuk
LangChainIntegrasi model + tools, abstraction umumPrototipe cepat, integrasi banyak provider
LangGraphState machine untuk agent, graph eksplisitWorkflow agent yang butuh kontrol penuh
LlamaIndexRAG: indexing & retrieval dokumenAgent yang berbasis dokumen/knowledge base
smolagentsCode agent minimalis (Hugging Face)Agent kecil yang menulis kode untuk bekerja

Perlu saya catat versinya supaya tidak basi: LangChain 1.0 dan LangGraph 1.0 resmi GA pada 22 Oktober 2025 — rilis besar yang menyederhanakan framework dari versi 0.x yang dulu terkenal berbelit. LlamaIndex per 21 September 2026 berada di llama-index-core 0.14.25 dengan kontrak stabilitas: tidak ada perubahan breaking API publik sampai versi 2.0. Smolagents dari Hugging Face rilis 30 Desember 2024 dan tetap mempertahankan filosofinya: logika inti agent muat di sekitar 1.000 baris kode.

LangChain vs LangGraph: sering tertukar

Ini yang paling membingungkan saya di awal. LangChain adalah lapisan integrasi: menyamakan antarmuka antar model provider, menyediakan ratusan integrasi tools dan loader dokumen. LangGraph adalah lapisan orkestrasi: agent direpresentasikan sebagai graph dengan node (step) dan edge (transisi), plus state yang persist. Kalau LangChain memudahkan “bicara dengan model”, LangGraph memudahkan “mengontrol urutan kerja agent”.

Pengalaman saya: untuk prototipe, LangChain dengan prebuilt agent cepat selesai. Tapi begitu ada kebutuhan seperti “kalau tool gagal, kembali ke node X”, “langkah ini butuh persetujuan manusia dulu”, atau “simpan state supaya bisa dilanjutkan besok”, saya pindah ke LangGraph. Di LangGraph, graph-nya eksplisit — mirip saya mendesain state machine di backend, dan itu justru terasa nyaman bagi programmer yang terbiasa flowchart.

LlamaIndex: bukan cuma RAG lagi

LlamaIndex dulu saya kenal sebagai “library RAG”. Sekarang orientasinya bergeser: dokumen, workflow, dan agentic document workflows — termasuk OCR untuk dokumen. Kalau kasus saya adalah “agent yang menjawab pertanyaan dari dokumen kantor, lalu mengekstrak data ke tabel”, LlamaIndex punya abstraction indexing, retrieval, dan query engine yang siap pakai. Bandingkan dengan merakit sendiri dari vector DB + embedding API: bisa, tapi banyak bagian yang harus saya tulis ulang.

smolagents: pendekatan yang berani

Smolagents menarik karena pendekatannya tidak biasa: code agents. Alih-alih model memilih tool satu per satu (JSON tool call seperti yang kita bahas di episode #27), smolagents memberi model satu tool saja — menulis dan mengeksekusi kode Python — lalu hasil eksekusinya jadi “tool call”-nya. Filosofinya: kalau kode bisa menyatakan ribuan aksi dalam beberapa baris, kenapa membatasi model pada daftar tool yang saya tulis manual?

Tapi konsekuensinya jelas: agent menjalankan kode yang ditulis model, jadi sandboxing jadi urusan serius. Buat saya ini contoh bagus bahwa setiap pilihan framework membawa trade-off, bukan sekadar selera.

Kapan pakai mana? Keputusan saya

Setelah mencoba-coba, ini heuristik yang saya pakai sekarang:

  • Butuh prototipe agent sederhana dengan banyak integrasi → LangChain.
  • Butuh kontrol alur ketat, state persist, human-in-the-loop → LangGraph.
  • Inti masalahnya dokumen & retrieval → LlamaIndex.
  • Butuh agent kecil, ringkas, dan nyaman dengan ekosistem Hugging Face → smolagents.
  • Kasusnya cuma satu tool call sederhana dari form web → seringkali TIDAK perlu framework sama sekali; API langsung seperti di episode #27 sudah cukup.

Titik terakhir yang paling penting bagi saya: framework bukan kewajiban. Framework menambah dependency, abstraksi yang bisa bocor, dan biaya belajar. Kalau loop-nya cuma dua langkah, menulis sendiri dengan API justru lebih mudah dirawat. Framework baru worth it ketika kompleksitas workflow-nya yang besar — bukan karena lagi ramai dibicarakan.

Yang saya pelajari

Hari ini saya belajar bahwa ekosistem framework agent sudah cukup matang untuk dipilih berdasarkan bentuk masalah, bukan ikut-ikutan. LangChain dan LangGraph 1.0 memberi fondasi yang jauh lebih stabil dari generasi 0.x, LlamaIndex memperkuat jalur dokumen, dan smolagents mengingatkan saya bahwa ada pendekatan radikal yang juga valid. Langkah saya selanjutnya: memilih satu framework, membangun satu agent kecil yang benar-benar berguna, dan membaca kodenya sampai paham apa yang framework itu sembunyikan dari saya. Itu rencananya di episode-episode berikutnya.

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