- Octomind menggunakan agen AI untuk secara otomatis membuat dan memperbaiki pengujian end-to-end di Playwright.
- Pada awalnya, mereka menggunakan framework LangChain, tetapi seiring waktu tingkat abstraksi LangChain yang tinggi mulai menimbulkan masalah.
Masalah pada LangChain
- Abstraksi LangChain awalnya berguna, tetapi ketika kebutuhan menjadi lebih kompleks, memahami dan memelihara kode menjadi sulit.
- Banyak waktu terbuang untuk memahami struktur internal LangChain dan melakukan debugging.
- Sebagai contoh, bahkan pada kode sederhana untuk menerjemahkan kata bahasa Inggris ke bahasa Italia, penggunaan LangChain menambah kompleksitas.
Masalah Abstraksi LangChain
- LangChain meningkatkan kompleksitas kode dengan menumpuk berbagai lapisan abstraksi.
- Abstraksi seperti ini membuat kode lebih sulit dipahami dan di-debug.
- Sebagai contoh, bahkan untuk tugas sederhana seperti mengambil data JSON dari API, penggunaan LangChain menambah kompleksitas.
Dampaknya pada Tim Pengembang
- Saat mencoba mengimplementasikan arsitektur agen yang kompleks, LangChain menjadi faktor pembatas.
- Setelah LangChain dihapus, tim dapat menulis kode dengan lebih bebas sesuai kebutuhan.
Apakah Framework Diperlukan untuk Membangun Aplikasi AI?
- LangChain berguna pada tahap awal, tetapi dalam jangka panjang pengembangan tanpa framework kemungkinan akan menjadi pilihan yang lebih baik.
- Sebagian besar aplikasi AI dapat diimplementasikan hanya dengan kode sederhana dan beberapa paket eksternal.
- Pendekatan sederhana direkomendasikan sampai pola penggunaan agen benar-benar mapan.
Pengembangan Cepat dan Ringkas dengan Building Block Modular
- Framework memaksakan struktur, tetapi aplikasi AI masih belum memiliki pola penggunaan yang mapan.
- Pendekatan building block modular lebih menyukai kode tingkat rendah yang sederhana dan membantu mempercepat pengembangan.
- Dengan menggunakan komponen modular seperti vector database, codebase dapat tetap ringkas dan mudah beradaptasi.
Opini GN⁺
- Keterbatasan LangChain: Abstraksi LangChain yang tinggi berguna pada awalnya, tetapi bisa menjadi hambatan ketika kebutuhan menjadi kompleks.
- Keunggulan pendekatan modular: Pendekatan building block modular memudahkan pemahaman dan pemeliharaan kode, sekaligus meningkatkan kecepatan pengembangan.
- Meninjau ulang kebutuhan framework: Tidak semua aplikasi AI memerlukan framework; implementasi dengan kode sederhana dan paket eksternal saja sering kali sudah cukup.
- Pentingnya kecepatan pengembangan: Di bidang AI, eksperimen dan pembuatan prototipe yang cepat sangat penting, dan framework bisa membatasinya.
- Pola penggunaan agen di masa depan: Sampai pola penggunaan agen benar-benar mapan, lebih baik mempertahankan pendekatan yang sederhana.
2 komentar
Katanya ini arsitektur yang gagal, ternyata di GeekNews juga mulai terlihat ya.
Komentar Hacker News
Membangun agen LLM komersial pertama pada Oktober/November tahun lalu: Membangun agen sendiri dari nol tanpa menggunakan LangChain membantu menghasilkan hasil yang lebih baik.
Kompleksitas framework LLM: Framework LLM seperti LangChain cenderung memperkenalkan kompleksitas ala Java atau Python.
Perbandingan LangChain dan ChatGPT: LangChain dibuat sebelum ChatGPT muncul, tetapi ketika ChatGPT menghadirkan model percakapan yang lebih baik, kebutuhan akan LangChain pun berkurang.
Perdebatan soal nilai LangChain: LangChain mencoba menempatkan diri di antara developer dan LLM, tetapi tidak benar-benar menambahkan nilai nyata dan malah memperkenalkan abstraksi yang tidak perlu.
Abstraksi yang baik dan abstraksi yang buruk: Abstraksi yang baik menangani logika aplikasi, sedangkan abstraksi yang buruk mengabstraksikan pekerjaan yang perlu dilakukan hingga wawasan penting hilang.
Masalah penggunaan agen: Untuk pembuatan konten, menggunakan prompt berurutan lebih mudah dan lebih efektif daripada menggunakan agen.
Pengenalan framework Ragged: Memperkenalkan Ragged, konektor ringan yang dapat terhubung dengan mudah ke LLM. Framework ini menyediakan antarmuka integrasi yang mirip ORM.
Kurangnya kegunaan LangChain: Pendekatan LangChain memang menarik, tetapi dalam praktiknya lebih efisien menggunakan library runtime LLM secara langsung.
Framework agen yang berubah cepat: Framework agen yang digunakan berubah dengan cepat, dan perubahan versi kecil pun dapat merusak konfigurasi yang ada saat ini.
Masalah kompleksitas LangChain: LangChain terlalu rumit untuk use case sederhana, dan sulit diadaptasi untuk use case yang kompleks. Sering kali, menulis kode langsung adalah pilihan yang lebih baik.