LangGraph · Agentic RAG · Evaluation

Agents that cite their sources, or say they can't.

I'm Ingyu Koh. I build LangGraph agents with explicit state, bounded tools, verified citations, and a principled abstention path. Then I measure them against a real baseline, so the extra complexity has to show up in the numbers.

Experience

Agent engineering work

Independent, public projects. Each one can be cloned, tested, and benchmarked.

Sep 2026 — present

Agentic RAG & Evaluation Engineer

Independent · agentic-rag-eval
  • Designed and built a LangGraph StateGraph (plan → retrieve → grade → verify) for numeric questions over SEC 10-K facts, with an explicit abstention path and SEC-linked citations.
  • Raised exact task success from 65.6% to 100% over a single-pass BM25 baseline with the same corpus and retriever, on a content-hashed 64-case benchmark that includes unanswerable questions.
  • Built the eval harness, which reports task success, answerability, value and citation accuracy, and p50/p95 latency, and writes failure reports that cover every failed case.
  • Shipped it as a FastAPI service with a node-level execution trace in every response, packaged with Docker and CI (ruff, pytest, and the benchmark on Python 3.11 and 3.12).
Sep 2026

Agent Safety & Tool Routing

  • Built a LangGraph agent with an input guard that blocks prompt-injection patterns before retrieval or any tool call runs.
  • Added allowlisted tool routing (skill-gap analysis, evidence-quality inspection) and grounded synthesis with source citations.
  • Designed a pluggable generation layer with a deterministic offline provider and an optional OpenAI Responses provider, so evals are reproducible at zero cost.
  • Wrote an eval suite covering grounded retrieval, injection attempts, and insufficient-evidence refusals, and compared a top-1 baseline with an agentic top-3 path.

Scope: These are portfolio systems that show current engineering ability. They have not been deployed for a client. I wrote the orchestration, evaluation, and serving code. SEC data, LangGraph, and FastAPI are third-party.

Evidence map

What a LangChain / LangGraph role asks for, and where to check it

Stateful agent orchestration

Typed state, explicit nodes and edges, and a compiled graph.

agent/system.py

Retrieval & grounding

A transparent BM25 retriever, shared with the baseline so the comparison is fair.

retrieval/

Evaluation & baselines

Generated metrics, per-case JSON, and failure reports.

eval/benchmark.py

Hallucination control

Exact-match grading, provenance checks, and abstention.

results/failures.md

Guardrails & tool safety

An injection guard and allowlisted tools, with adversarial tests.

evidence-first-agentic-rag

Serving & observability

FastAPI responses that carry a per-node timing trace, plus health checks.

api.py

Data provenance

Content-hashed manifest and SEC accession numbers.

data/manifest.json

Delivery

Docker, docker-compose, and a GitHub Actions matrix.

Actions runs