Skip to main content
BlogAI

LangChain vs Membangun Orkestrasi LLM Sendiri: Kapan Menggunakan Masing-Masing

Penilaian jujur tentang LangChain di 2025 — kapan menghemat waktu, kapan menghalangi, dan cara memutuskan apakah Anda membutuhkannya sama sekali.

Matthews Wong

Software Engineer

Juni 202510 menit baca
AI

Saya telah membangun aplikasi LLM dengan dua cara: menggunakan LangChain (dan LangGraph) sebagai lapisan orkestrasi, dan membangun orkestrasi kustom dari awal dengan panggilan API langsung. Aplikasi AI Gymbro fitness saya dimulai dengan LangChain dan ditulis ulang sebagai orkestrasi kustom enam minggu kemudian.

DimensiLangChain / LangGraphOrkestrasi Kustom
Paling cocok untukAplikasi multi-provider, prototipe RAG cepatAlur kerja sederhana, 1-3 panggilan LLM per permintaan
Kecepatan setupPipeline RAG dalam sekitar 50 baris PythonPipeline yang sama butuh sekitar 200 baris, lebih banyak kerja di awal
DebuggingStack trace melewati 5 lapisan internal frameworkError langsung terlihat dari kode Anda sendiri
Beralih providerGanti OpenAI, Anthropic, Bedrock tanpa ubah kodeSetiap integrasi provider ditulis manual
Agent stateful yang kompleksLangGraph menangani percabangan dan state multi-giliran dengan baikMakin sulit dikelola begitu jumlah state bertambah
Kontrol token dan latensiLapisan abstraksi menambah overheadSekitar 30% lebih sedikit token, latensi sekitar 25% lebih rendah
Stabilitas versiPerubahan breaking antar versi utama, pin dengan hati-hatiTidak ada upgrade framework yang perlu dikelola

Apa Sebenarnya LangChain (dan Bukan)

LangChain adalah framework Python/JavaScript yang menyediakan abstraksi untuk pola LLM umum: chain (urutan panggilan LLM), agent (LLM + alat + loop), retrieval (integrasi vector store), dan memory (manajemen riwayat percakapan). Proposi nilai: LangChain memberi Anda antarmuka terpadu di berbagai provider LLM.

Pajak Abstraksi

Setiap lapisan abstraksi menambahkan jarak debugging antara kode Anda dan API yang mendasarinya. Ketika chain LangChain gagal, Anda mendapatkan stack trace melalui 5 lapisan internal LangChain sebelum melihat error API yang sebenarnya. Saya menghabiskan 3 jam men-debug SequentialChain LangChain yang secara diam-diam menghapus output.

Di Mana LangChain Benar-Benar Menghemat Waktu

LangChain bernilai untuk tiga kasus penggunaan: prototyping cepat (Anda bisa mendapatkan pipeline RAG yang berjalan dalam 50 baris Python), dukungan multi-provider (jika Anda benar-benar perlu beralih antara OpenAI, Anthropic, dan Bedrock tanpa perubahan kode), dan alur kerja agent stateful yang kompleks via LangGraph.

LangChain vs Custom: Decision Framework

  Start
    │
    ▼
  Do you need to switch LLM providers often?
    ├── Yes → LangChain (unified interface)
    └── No  → Continue...
                │
                ▼
  Is your workflow > 4 states with branching?
    ├── Yes → LangGraph
    └── No  → Continue...
                │
                ▼
  Do you have > 5 integrations (vector stores,
  document loaders, custom tools)?
    ├── Yes → LangChain ecosystem
    └── No  → Continue...
                │
                ▼
  How many LLM calls per user request?
    ├── 1-3  → Custom orchestration (simpler, faster)
    └── 4+   → Evaluate LangGraph
                │
                ▼
  Do you need sub-200ms latency?
    ├── Yes → Custom (no abstraction overhead)
    └── No  → Either works

  Verdict:
  Simple app (1-3 calls, < 5 integrations) → Custom
  Complex agent (many states, multi-provider) → LangChain/LangGraph

Jika Anda menggunakan LangChain, integrasikan LangSmith dari hari pertama. Ini menangkap data trace lengkap — setiap panggilan LLM, setiap langkah chain, setiap jumlah token — dan membuat debugging jauh lebih mudah. Tier gratis cukup dermawan untuk pengembangan dan produksi skala kecil.

Kapan Membangun Orkestrasi Kustom

Bangun orkestrasi kustom ketika: alur kerja Anda sederhana (1-3 panggilan LLM per permintaan pengguna); Anda membutuhkan kontrol tepat atas penggunaan token dan caching; Anda membutuhkan output streaming dengan perilaku UI tertentu; atau tim Anda lebih nyaman men-debug JavaScript/Python daripada internal framework.

LangGraph untuk Alur Kerja yang Kompleks

LangGraph layak dipisahkan dari LangChain proper. Model alur kerja berbasis grafik (node adalah aksi, edge adalah transisi state) sangat berguna untuk alur kerja agent multi-langkah yang kompleks dengan jalur percabangan, eksekusi kondisional, dan state yang perlu bertahan di berbagai giliran.

# LangChain RAG — 50 lines, fast to prototype
from langchain_anthropic import ChatAnthropic
from langchain_community.vectorstores import PGVector
from langchain.chains import RetrievalQA

llm = ChatAnthropic(model="claude-3-5-haiku-20241022")
vectorstore = PGVector.from_existing_index(connection_string=DB_URL)
chain = RetrievalQA.from_chain_type(llm=llm, retriever=vectorstore.as_retriever())
result = chain.invoke({"query": "What exercises target the lats?"})

# Custom RAG — 200 lines, full control
async def custom_rag(query: str) -> str:
    # 1. HyDE — generate hypothetical answer for better embedding
    hyp_answer = await llm.generate(f"Write a brief answer to: {query}")
    embedding = await embed(hyp_answer)

    # 2. Vector search with metadata filter
    chunks = await db.search(embedding, filter={"type": "exercise"}, limit=20)

    # 3. Rerank
    reranked = await cohere_rerank(query, chunks, top_n=5)

    # 4. Generate with precise prompt + caching
    context = "

".join(c.content for c in reranked)
    return await llm.generate(
        system=CACHED_SYSTEM_PROMPT,  # prompt caching
        user=f"Context:
{context}

Question: {query}"
    )
# Custom is more work but: 30% fewer tokens, 25% lower latency, easier to debug

Kerangka Keputusan

Gunakan LangChain/LangGraph jika: Anda membangun aplikasi RAG dan menginginkan iterasi cepat pada strategi retrieval; Anda membutuhkan dukungan multi-provider; Anda membangun alur kerja agent stateful yang kompleks; atau tim Anda sudah mengenal LangChain. Lewati LangChain jika: alur kerja Anda memiliki kurang dari 3 panggilan LLM; Anda membutuhkan kontrol token yang tepat; atau Anda membutuhkan kustomisasi streaming yang mendalam.

LangChain telah memiliki banyak perubahan breaking antara versi utama. Jika Anda membangun sistem produksi di LangChain, pin versi Anda secara ketat di requirements.txt dan anggaran waktu untuk pekerjaan migrasi versi setiap 6-12 bulan.

Apa yang Akan Saya Lakukan Sekarang Jika Memulai dari Awal

Untuk proyek LLM baru di 2025, saya akan mulai dengan panggilan API langsung menggunakan SDK resmi Anthropic atau OpenAI (keduanya sangat baik), tambahkan LangSmith untuk observabilitas (ini berfungsi tanpa LangChain), dan perkenalkan LangGraph hanya jika kompleksitas alur kerja benar-benar memerlukannya.

Faktor Ekosistem

Satu keunggulan nyata LangChain di 2025 adalah ekosistemnya: 600+ integrasi (vector store, document loader, alat), komunitas besar, dan LangSmith untuk observabilitas. Jika Anda perlu mengintegrasikan dengan database vektor tertentu, konektor bawaan LangChain menghemat waktu nyata.

Sumber & Bacaan Lanjutan

Artikel Terkait

FAQ

Pertanyaan Umum

Jawaban singkat untuk pertanyaan yang paling sering diajukan pembaca tentang topik ini.

Apa trade-off utama antara menggunakan LangChain dan membangun orkestrasi LLM sendiri?

LangChain mempercepat prototyping — pipeline RAG bisa berjalan dalam 50 baris Python dibanding 200+ baris kode kustom — namun setiap lapisan abstraksi menambah jarak debugging dari API yang mendasarinya. Saat terjadi error, Anda akan melihat stack trace melalui 5 lapisan internal LangChain sebelum menemukan error API yang sebenarnya, sehingga bug sederhana bisa berubah menjadi investigasi berjam-jam.

Kapan sebaiknya melewati LangChain dan langsung memanggil API secara manual?

Lewati LangChain jika alur kerja Anda memiliki kurang dari 3 panggilan LLM per permintaan pengguna, jika Anda membutuhkan kontrol tepat atas penggunaan token dan caching, atau jika output streaming dengan perilaku UI tertentu diperlukan. Dalam kasus ini, biaya abstraksi melebihi kemudahannya, dan panggilan langsung menggunakan SDK resmi Anthropic atau OpenAI lebih mudah di-debug dan dipelihara.

Apakah LangGraph tetap layak digunakan meski Anda menghindari LangChain?

Ya — artikel ini memisahkan LangGraph dari LangChain proper. Model berbasis grafik (node sebagai aksi, edge sebagai transisi state) sangat berguna untuk alur kerja agent multi-langkah yang kompleks dengan jalur percabangan, eksekusi kondisional, dan state yang harus bertahan di berbagai giliran, bahkan jika Anda lebih memilih orkestrasi kustom untuk bagian lainnya.

Apa yang direkomendasikan artikel ini untuk observabilitas saat membangun aplikasi LLM?

Artikel ini merekomendasikan integrasi LangSmith sejak hari pertama, terlepas dari apakah Anda menggunakan LangChain. LangSmith menangkap data trace lengkap — setiap panggilan LLM, setiap langkah chain, setiap jumlah token — dan tier gratisnya cukup untuk pengembangan dan produksi skala kecil. Yang penting, LangSmith bekerja tanpa LangChain sehingga bisa menambahkan observabilitas pada pipeline kustom sekalipun.

Bagaimana tim harus menangani perubahan breaking LangChain yang sering terjadi di produksi?

Pin versi secara ketat di requirements.txt dan alokasikan waktu khusus untuk migrasi versi setiap 6–12 bulan. Artikel ini memperingatkan bahwa LangChain telah memiliki banyak perubahan breaking antara versi utama, dan bahwa tim bisa kehilangan waktu berhari-hari karena masalah upgrade, sehingga disiplin versi dan jendela migrasi yang terencana sangat penting untuk sistem produksi.