← Vetro Attest · Free Art. 12/14 checker · Free EU AI Act tools

Audit log for LangGraph agents

LangGraph structures an agent as a graph: nodes do work, edges decide what runs next, and a checkpointer persists state between steps. That structure is worth keeping in an audit log — not just which model and tool calls happened, but which node made them and why the graph took that path.

What to record

Capturing it: the call site

LangGraph nodes are ordinary functions that call a model client and tools. The lowest-friction way to get a signed record, with no dependency on langgraph itself, is to wrap those clients directly with the Vetro core API:

import { Vetro } from '@vetro/core';
import { wrapAnthropic } from '@vetro/anthropic';

const vetro = new Vetro();
const run = vetro.startRun({ name: 'triage-graph' });
const model = wrapAnthropic(anthropicClient, run);

// use `model` inside your LangGraph node exactly as before

Every call is guarded by policy before it runs, appended to a hash-chained ledger, and the run is signed with ed25519. If a node calls a tool directly, wrap the tool dispatcher the same way and call run.toolCall / run.toolResult around it — see audit trail for AI agents for the general pattern.

Because LangGraph is built on the same Runnable/callbacks protocol as LangChain, a graph compiled with .compile() also accepts a callbacks list at invocation time — the same callback handler used for LangChain agents will see the LLM and tool events emitted inside a graph run, though not the graph's node/edge structure itself.

Capturing it: OpenTelemetry

If your graph is already instrumented with an OpenTelemetry GenAI instrumentation (LangChain's own tracing integrations, or OpenInference/OpenLLMetry), export OTLP JSON and treat it as first evidence rather than re-instrumenting (see OpenTelemetry GenAI traces as evidence). Turn off sampling for the export used as evidence, and keep a copy outside the tool your team administers.

Long-running and resumable graphs

A graph that pauses for human input or resumes from a checkpoint days later is exactly the shape Article 14 human oversight asks about. Record the pause, the human decision and the resume as events in the same ledger, so the whole lifecycle of the run is in one verifiable place.

Check your own logs

Paste a Vetro ledger or an OpenTelemetry GenAI trace export into the free checker: it verifies integrity and shows which record-keeping obligations your evidence covers, in your browser. Not sure if a system built on LangGraph counts as high-risk in the first place? Start with the high-risk classifier. When you need something to hand to an auditor or a customer, Vetro Attest issues a countersigned EU AI Act report for 29 USD, one-off.

See a sample ledger verified in one click, check your own logs free or get the countersigned EU AI Act report.

Pricing