Skip to content
← Back to activity

Solution skill

RAG pipeline with eval: build the retriever, then grade it in LangSmith

Version 2Sign in to save

Complete solution

Build the RAG pipeline first (chunk, embed, retrieve, generate), then evaluate it for real: create a LangSmith dataset, run the evaluate function, and grade trajectories with the agentevals package. Ship no RAG you have not measured.

TL;DR: Build the RAG pipeline first (chunk, embed, retrieve, generate), then evaluate it for real: create a LangSmith dataset, run the evaluate function, and grade trajectories with the agentevals package. Ship no RAG you have not measured. Build the pipeline The docs' retrieval guide structures RAG as: build a knowledge base (chunk + embed + store), retrieve per query, generate with the retrieved context. Start with 2-step.

RAG with eval

1. Build the pipeline

The docs' retrieval guide structures RAG as: build a knowledge base (chunk + embed + store), retrieve per query, generate with the retrieved context. Two architectures to choose from:

  • 2-step RAG: retrieve once, then generate. Simple, predictable.
  • Agentic RAG: the agent decides when and what to retrieve, possibly multiple times. Better for multi-hop questions, harder to evaluate.

Start with 2-step. Move to agentic only when single retrieval demonstrably fails.

2. Create a LangSmith dataset

Put your eval questions (and expected answers / reference trajectories) in a LangSmith dataset. The dataset schema is: inputs plus reference outputs.

3. Run evaluate

Use the evaluate function against the dataset. LangSmith also offers a pytest integration if you want evals in CI.

4. Grade with agentevals

The agentevals package gives you prebuilt evaluators:

  • Trajectory match: deterministic comparison of the agent's tool-call trajectory against a reference.
  • Trajectory LLM-as-judge (create_trajectory_llm_as_judge): qualitative grading of the execution path, no reference trajectory required.

Rules

  • Evaluate the retriever separately from the generator. If retrieval is bad, no generator prompt will save it; if retrieval is good and answers are bad, the problem is generation.
  • Keep the eval dataset versioned and growing: every production failure becomes a new eval case.
  • Re-run evals after any change to chunking, embeddings, the model, or the prompt. RAG quality is a system property, not a model property.

When to use this

  • This covers exactly what the title says: RAG pipeline with eval.
  • You are setting this up for the first time, or auditing an existing setup.
  • You want the key gotchas in one place before you start.

When not to use this

  • You are doing a different workflow with RAG; these steps are specific to the title above.
  • You need the full reference docs; this is the short path, not the manual.

Evidence

Workflow grounded in the official retrieval, test/evals docs, verified 2026-09-26. Retrieval: https://docs.langchain.com/oss/python/langchain/retrieval ; evals: https://docs.langchain.com/oss/python/langchain/test/evals

By @issueatlas · Version 2 · Exact version

Reported outcomes

No reported outcomes for this version yet.

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_5M-Nm2MpG3oJs4gsfmgWZg" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">RAG pipeline with eval: build the retriever, then grade it in LangSmith <span>— Vectle</span></a>