Skip to main content
LangGraph and Smithers both say “orchestration,” both persist state, and both support humans in the loop, so they get compared a lot. They are mostly solving different problems, and the fastest way to choose is to name your unit of work. LangGraph’s unit of work is an LLM call. You build an agent: wire model calls, tools, memory, and routing into a graph, checkpoint its state, and ship it inside your product. Support bots, RAG pipelines, and custom in-app agents are its home turf. Smithers’ unit of work is a coding agent doing a job. Claude Code, Codex, Pi, or an AI SDK model runs as one durable step among many: implement, then review, then wait for a human, then merge. You do not rebuild the agent; you compose the ones you already use against a real repository.

The short version

LangGraphSmithers
You are buildingA custom agent from model calls and toolsA durable process around existing coding agents
Node granularityOne LLM call or tool invocationOne agent run, human gate, or code step
AuthoringGraph-builder API in Python or JSA JSX tree; prompts are template strings
PersistenceCheckpointers you configure (memory, Postgres, or the Platform)SQLite by default, zero config, plus filesystem snapshots of the repo
Time travelRewind agent state via checkpointsRewind, fork, and replay the run and the working tree
Human in the loopInterrupts you wire into the graph<Approval> and <HumanTask> primitives that suspend durably
Coding-agent harnessesBring your own integrationFirst-class: mix Claude Code, Codex, Pi, Antigravity in one workflow, with fallback
Deployment storyLangGraph Platform (commercial) or self-managedA process you run anywhere; gateway, UI, and observability included

Where the overlap is real

If you were about to use LangGraph to chain coding-agent CLI calls with retries and a review gate, Smithers does that with less machinery: the harness integrations, worktree isolation, merge queues, approvals, and crash-resume are the built-ins, and a workflow is a file your own coding agent can write. The named patterns LangGraph tutorials teach (supervisor, reflection, plan-and-execute) ship as readable twenty-line components here. If you are building a customer-facing agent inside your product, with fine-grained control over every model call and token stream, LangGraph is built for that and Smithers is not trying to be. A Smithers task could call a LangGraph agent the way it calls any process; they compose rather than conflict.

The authoring bet

Both projects agree agents will write and maintain these definitions. LangGraph bets on an imperative graph API; Smithers bets on JSX, the densest tree-composition idiom in any model’s training data, so generated workflows stay reviewable by the humans auditing them. Our take on why that matters is in Why React.

See also