Belajar LangChain - Observability & Evaluasi dengan LangSmith
Episode 19 of 23

Belajar LangChain - Observability & Evaluasi dengan LangSmith

Episode 19 memasang observability dan evaluasi: tracing LangSmith dengan gateway dan instrumentasi otomatis, membuat dataset dan evaluator, serta regression testing untuk menjaga kualitas prompt dan RAG di setiap perubahan.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Di episode 18 kalian mengoptimasi performa dan biaya: streaming, batching, parallelism, async, prompt caching, model tiering, dan caching layer. Tapi optimasi tanpa pengukuran berbahaya — kalian bisa membuat pipeline lebih cepat dan sekaligus lebih buruk tanpa sadar. Episode 19 ini menjawabnya dengan LangSmith: observability lewat tracing dan evaluasi lewat dataset, evaluator, serta regression testing. Hasilnya, setiap perubahan prompt atau pipeline bisa dipertanggungjawabkan dengan data, bukan intuisi.

Mengapa Aplikasi LLM Butuh Observability

Aplikasi LLM bersifat non-deterministik, jadi failure mode-nya pun unik: bukan hanya error yang terlihat, tapi jawaban yang salah secara halus. Bayangkan chain RAG yang diam-diam menjawab dari memori model alih-alih konteks yang di-retrieve — tanpa rekaman lengkap, kalian tidak akan pernah tahu. Observability di sini bukan sekadar log, melainkan rekaman setiap langkah: prompt yang masuk, model yang dipakai, token yang dikonsumsi, durasi, dan output yang keluar.

LangSmith memberi tiga kemampuan inti yang kita bedah hari ini:

  • Tracing: rekaman visual setiap run dalam bentuk tree.
  • Dataset: kumpulan pasangan input dan expected output.
  • Evaluator: penilaian otomatis kualitas output dengan skor.

Setup: Instrumentasi Otomatis

Tracing LangSmith bersifat otomatis. Setelah menginstal paket dan mengekspos API key, hampir semua komponen ekosistem — langchain, langchain-openai, langgraph, hingga deepagents — langsung terekam tanpa kode tambahan.

install.sh
pip install langchain langchain-openai langsmith
.env
LANGSMITH_API_KEY=lsv2_xxxx
LANGSMITH_TRACING=true
LANGSMITH_PROJECT=my-rag-app

Variabel LANGSMITH_API_KEY berisi credential akun kalian, LANGSMITH_TRACING di-set ke nilai true untuk menyalakan tracing, dan LANGSMITH_PROJECT memisahkan trace per aplikasi. Setelah itu, setiap invoke, ainvoke, stream, atau batch otomatis muncul di dashboard sebagai trace. Install via pip install langsmith cukup untuk memulai.

Membaca Trace: Run Tree

Saat membuka dashboard LangSmith, setiap pemanggilan tampil sebagai pohon run. Root-nya adalah chain atau agent, dan anaknya adalah tiap langkah: retrieval, prompt, model call, tool call, sampai parser. Tree inilah peta jalan debugging kalian — kalian bisa melihat di titik mana latensi membengkak atau token terbuang.

Pythontrace_metadata.py
from langchain_openai import ChatOpenAI
 
model = ChatOpenAI(model="gpt-5-mini")
 
model.invoke(
    "Apa itu hybrid search?",
    config={"metadata": {"fitur": "rag", "user": "tim-internal"}},
)

Dengan config berisi metadata, kalian menandai trace agar mudah difilter di dashboard — misalnya memfilter semua trace dari fitur tertentu. Gunakan metadata untuk project, versi prompt, atau sesi percobaan. Kebiasaan ini membuat dashboard LangSmith menjadi alat analisis, bukan sekadar catatan.

LangSmith Gateway

Mengelola API key provider secara terpusat itu merepotkan — tiap developer butuh key masing-masing, dan aplikasi menyimpan banyak secret. LangSmith Gateway memecahkannya: aplikasi cukup memegang satu LANGSMITH_API_KEY, lalu gateway yang meneruskan request ke provider sekaligus mencatat trace secara otomatis.

Pythongateway.py
from langchain_openai import ChatOpenAI
 
model = ChatOpenAI(
    base_url="https://gateway.langsmith.com/openai",
    model="gpt-5-mini",
)

Info

Dengan gateway, satu key untuk seluruh tim dan seluruh provider. Trace tercatat di satu tempat, dan secret provider tidak pernah tersebar di laptop atau CI tiap developer.

Gateway menyajikan endpoint yang kompatibel dengan SDK provider, jadi pemakaiannya nyaris tak terlihat oleh kode. Bonusnya, tim bisa berbagi satu akses tanpa berbagi kredensial — sekaligus memudahkan audit siapa memakai model apa.

Dataset dan Evaluator

Evaluasi butuh standar pembanding, dan itu peran dataset LangSmith. Sebuah dataset berisi contoh-contoh input dengan expected output atau reference answer. Buat lewat UI dashboard atau lewat SDK dengan Client.

Pythondataset.py
from langsmith import Client
 
client = Client()
client.create_dataset(
    dataset_name="rag-qa-indonesia",
    description="Pertanyaan QA untuk pipeline RAG Indonesia",
)
client.create_examples(
    dataset_name="rag-qa-indonesia",
    inputs=[{"question": "Apa itu chunking?"}],
    outputs=[{"answer": "Memecah dokumen menjadi segmen kecil."}],
)

Evaluator menilai output yang dihasilkan. Ada evaluator bawaan yang siap pakai: exact match untuk kecocokan literal, semantic similarity untuk kemiripan makna, dan criteria-based untuk penilaian seperti correctness atau helpfulness. Untuk penilaian halus, gunakan LLM-as-judge — evaluator yang memakai model lain untuk menilai kualitas jawaban.

Regression Testing: Evaluasi Prompt dan RAG

Setelah dataset dan evaluator siap, jalankan regression test setiap kali kalian mengubah prompt, model, atau pipeline. LangSmith menjalankan chain terhadap dataset, menilai tiap output, dan menyajikan skor yang bisa dibandingkan antar eksperimen — persis seperti unit test, tapi untuk kualitas jawaban.

Pythonevaluate.py
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langsmith import evaluate
 
prompt = ChatPromptTemplate.from_template("Jawab: {question}")
chain = prompt | ChatOpenAI(model="gpt-5-mini")
 
def target(inputs: dict) -> dict:
    return {"answer": chain.invoke(inputs["question"]).content}
 
evaluate(
    target,
    data="rag-qa-indonesia",
    evaluators=["correctness"],
    experiment_prefix="rag-v1",
)

Untuk RAG, evaluasi tidak berhenti di jawaban. Ukur juga kualitas retrieval: faithfulness memastikan jawaban didukung oleh konteks yang di-retrieve, dan contextual relevance menilai apakah konteks yang ditarik benar-benar menjawab pertanyaan. Kombinasi ini menangkap kegagalan paling umum RAG: jawaban lancar tapi tidak berdasarkan dokumen.

Success

Jadikan evaluasi bagian dari pipeline rilis. Sebelum prompt baru di-deploy, jalankan eksperimen; jika skor turun, jangan terbitkan. Ini gerbang kualitas yang mencegah regresi masuk ke produksi.

Penutup

Episode 19 melengkapi kalian dengan mata-mata dan wasit: LangSmith untuk tracing run yang terstruktur, gateway untuk sentralisasi API key sekaligus trace, dataset dan evaluator untuk standar pembanding, serta regression testing yang mengunci kualitas prompt dan RAG di setiap perubahan. Optimasi performa episode 18 sekarang punya pengawas kualitas.

Inti yang harus dibawa pulang:

  • Instrumentasi LangSmith hampir otomatis: cukup LANGSMITH_API_KEY dan tracing aktif.
  • Trace adalah run tree — gunakan metadata agar mudah difilter di dashboard.
  • Gateway memusatkan API key dan trace: satu key untuk semua provider dan semua developer.
  • Dataset ditambah evaluator adalah regression test untuk kualitas jawaban.
  • Evaluasi RAG wajib memeriksa retrieval, bukan hanya jawaban akhir.

Di episode 20 berikutnya kita bawa aplikasi keluar dari laptop: Deployment & Production dengan LangServe, LangGraph Platform, containerisasi, scaling, dan monitoring. Sampai jumpa!

Belajar LangChain - Observability & Evaluasi dengan LangSmith | Belajar LangChain