Blog · 2026-07-04

LangGraph agent development

Where an explicit state graph earns its complexity — and what we run instead on our own fleet, with the reasons.

Get my free blueprint

LangGraph agent development

LangGraph agent development means building an agent as an explicit graph: nodes that read and write a shared state object, edges that encode the branching rules, and checkpoints that let a run resume from the exact step that failed. It suits long-running, auditable workflows, and is heavier than most single-task agents need.

We do not run LangGraph in production. Our own 19-agent fleet runs as native systemd units on one 4-vCPU VPS — the sections below explain why, and when that answer flips.

Most agent frameworks hide the control flow: you declare agents and tasks, and the framework decides how they execute. LangGraph does the opposite. You draw the graph, so every state transition is visible, every decision point is traceable, and every branch is testable. That is a real advantage and it has a real price, and the honest version of this article has to cover both.

What LangGraph actually is

LangGraph is a library for building stateful, multi-actor applications with language models. Four concepts carry the whole mental model:

It is a state machine whose states are model calls and tool executions and whose transitions are your business rules.

Why explicit control flow matters

When LangGraph is the right choice

When LangGraph is the wrong choice

What we run instead, and why

We run nineteen specialist Hermes agents on a single Fedora host with 4 vCPU and 15 GiB of RAM. There is no container runtime, no Kubernetes, and no graph framework in the stack: agents are native systemd units, scheduling is cron, state lives in PostgreSQL and Valkey, and a Caddy proxy fronts the lot. At survey time the five gateway services had accumulated zero restarts.

The reason is the shape of the workload rather than a view about LangGraph. Our fleet is scheduled, per-agent work — 47 jobs on cadences from continuous to weekly — with separation of duties enforced between agents rather than inside one graph: research gathers, an operator agent gates, a coder builds, an independent QA agent verifies, a publisher ships. The control flow lives in which agent is allowed to do what, and that is documented in the19-agent operating system case study.

The second reason is what actually broke. Of six jobs in an error state at survey time, not one failed because a model produced a poor answer. Three were a provider revoking free-tier access to a model slug mid-flight, others were delivery targets that were never configured, and the rest were upstream 500s. An explicit state graph would have recorded those failures more precisely. It would not have prevented a single one of them — that needs a fallback cascade and a delivery check.

LangGraph against the alternatives

FrameworkControl flowMemory across runsBest fit
LangGraphExplicit graph you writeCheckpoints onlyAuditable, long-running, branching workflows
HermesSingle agent, per-agent mandatePersistentOne agent that learns a job and keeps it
OpenClawOrchestrated handoffsPersistentMany agents across many business systems
CrewAIRoles and tasks, implicitNoneFast prototypes of role-based workflows

The comparison is about coupling and visibility, not quality. A fuller breakdown of the field, including AutoGen, is in ourCrewAI alternatives comparison.

Testing a graph-based workflow

The fourth one is the one to write first, because it is the class that actually shows up. The same discipline applied at the data layer is what keeps a research agent honest — seethe claims ledger case study for the structural version of that argument.

The bottom line

LangGraph is the right tool when the workflow is long, branching, and has to be explained to someone who was not there. It trades speed of iteration for control, and for a regulated process that is a good trade. For a scheduled fleet of narrow agents it is a layer that does not remove one, which is why our own stack is the shape it is.

Whichever way that goes, the framework decision is smaller than it looks next to the tool contracts and the guardrails around it. If you are sizing a build,how long it takes to build a production AI agentis the more useful read, andModel Context Protocol covers the tool layer that sits underneath every option in the table.

What our own fleet runs on instead

What our own fleet runs on instead — observed on Our own production host — a 19-agent Hermes fleet on one Fedora 42 VPS (4 vCPU / 15 GiB), surveyed read-only over SSH, 27 July 2026
Specialist agents in productioneach with its own mandate, skills and hard limits19
Orchestration layerno container runtime, no Kubernetes, no graph frameworksystemd
Scheduled jobs34 ok, 6 in error, 7 not yet run at survey time47
Service restarts since deployfive gateway services, longest active since 13 July 20260
Failures caused by model qualityall six were entitlement, delivery or upstream errors0

Source: Our own production host — a 19-agent Hermes fleet on one Fedora 42 VPS (4 vCPU / 15 GiB), surveyed read-only over SSH. Observed .This describes one host and one workload. Figures from other systems we run are deliberately not blended in.

LangGraph questions

Do you run LangGraph in your own production fleet?

No. Our fleet is nineteen Hermes agents running as native systemd units on one 4-vCPU VPS, with scheduling by cron and state in PostgreSQL and Valkey. The workload is scheduled and per-agent rather than one long branching workflow, so an explicit graph would add a layer without removing one. That answer would change for a long-running approval chain.

Does LangGraph give an agent memory between runs?

Not in the sense most people mean. Checkpointing persists the state object of a run so it can be resumed or replayed, which is durability rather than learning. An agent that gets better at a job across weeks needs a memory store with a schema for facts, episodes and procedures — that is a separate design decision from the control flow.

Is an explicit state graph worth it for a single-task agent?

Usually not. One trigger, one judgement, one action does not have branches worth drawing, and the graph becomes ceremony around a function call. The threshold is roughly where a workflow has several decision points whose outcomes matter to an auditor, or a run long enough that resuming from the exact failed step is cheaper than starting again.

What does LangGraph checkpointing actually recover from?

A crash, a restart, or a step that failed partway through a long run — it restores the state object and continues from that node. It does not recover from the failure classes that dominated our own production logs: a provider revoking access to a model, a completed job with no delivery target configured, or an upstream 500. Those need fallbacks and delivery checks, not checkpoints.

Amit Kumar

Founder of I Am Agent Man. Builds and runs production AI agents on Hermes, OpenClaw, and MCP — self-hosted, model-agnostic, with persistent memory and hard cost ceilings.

Get your agent blueprint — free.

Tell us what eats your week. We’ll come back with a concrete plan for the first agent to build and what it’ll automate — before you spend anything.

Goes straight to hello@iamagentman.com — we read every message ourselves. Prefer to answer three questions instead?Build your blueprint.

Talk to the studio

One message · reply within one business day