Skip to main content

When Your LangGraph Pilot's Lift Is Just Noise

· 6 min read
Vadim Nicolai
Senior Software Engineer

The read-out was flat. The room split into the two explanations always available after a null: the model wasn't good enough, or the test was too small. Both assume the experiment was about the model. Both usually miss the point. The forecast, written down before the run, said every candidate was predicted to move the metric by less than the design could resolve.

Pre-Register Your LangGraph Pilot Before the First Dashboard

· 7 min read
Vadim Nicolai
Senior Software Engineer

Three weeks after the read-out, the meeting happens. Not the launch review — the other one. Someone from procurement, or legal, or the VP who inherited the budget, asks how the cohort was chosen. The room looks for a document that predates the number and finds a deck that postdates it. The evaluation criteria live on a single slide, written in the week the traces started looking good. The success threshold appears in the same sentence that reports clearing it.

The Business Case for LangGraph Checkpoints: Agents That Survive a Restart

· 9 min read
Vadim Nicolai
Senior Software Engineer

The most expensive component in an agent is not the model. It is the record you decided not to write. LangGraph's answer is a checkpointer compiled into the graph and keyed by the run's thread id, saving graph state between steps so a restarted run resumes from its last checkpoint instead of starting again (LangChain docs, persistence).

Prove Your Guardrails Work: Testing LangGraph With Planted Defects

· 6 min read
Vadim Nicolai
Senior Software Engineer

A guard test is proven only once you have watched it fail on a defect you planted on purpose — and the plant stays, so it fails again on every run. Every guard worth keeping asserts an absence: no node writes, every model node is guarded, every declared file ships. Absence has a pass path that has nothing to do with your code. The scan looked in the wrong directory, the pattern never matched, the node list it walked was empty.