Docs › LangGraph with RunVouch

LangGraph with RunVouch

LangGraph gives you cycles by design. A cycle that never converges, on a nightly schedule, is a bill. LangSmith shows you the trace afterwards; RunVouch stops the run when it crosses the cap.

How it runs on LangGraph

Around the graph invocation with the Python client; report each tool node call with run.tool() so identical inputs are detected as a retry storm.

Store the key

An environment variable wherever the graph runs (cron, container, Lambda).

Wrap the job

import runvouch
from graph import app   # your compiled StateGraph

runvouch.agent("research-digest", cadence_s=86400, cap_run_cost=2, evidence_required=True)

with runvouch.vouch("research-digest", evidence=lambda: {"digest": len(result["digest"]) > 200}) as run:
    result = None
    for event in app.stream({"topic": "..."}, stream_mode="updates"):
        for node, update in event.items():
            run.tool(node, update.get("tool_input", {}), cost=update.get("cost", 0))
    result = app.get_state(config).values

rv fails open: if RunVouch is unreachable the job still runs and you get one warning line.

Register the cadence and caps

rv agent nightly-report --cadence 24h --grace 30m --max-runtime 1h --evidence --cap-run-cost 2

Register the agent once, from anywhere with the key. Cadence is what turns a schedule that stopped into an alert; --evidence makes a run without evidence a failure; the caps pause the agent when it overspends.

What goes silent on LangGraph

What RunVouch detects

AlertWhat it means here
MISSEDcadence plus grace passed and no run started
FAILEDnon-zero exit or a reported failure, with the stderr excerpt
NO_EVIDENCEthe run said ok but the file, URL or assertion you required is missing
STALLEDa run started and never ended within max runtime
RETRY_STORMthe same tool called with identical input many times in one run
BUDGET_RUN / BUDGET_DAYcost cap crossed; the agent is paused until you resume it
DRIFTduration or output size far off its 7-run baseline

Need a key? Get a free key · Stuck? contact