---
title: "Smithers vs. LangGraph"
description: "LangGraph builds custom agents out of LLM calls and tools. Smithers orchestrates the coding agents you already use as durable, reviewable workflow steps."
---

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

| | LangGraph | Smithers |
| --- | --- | --- |
| You are building | A custom agent from model calls and tools | A durable process around existing coding agents |
| Node granularity | One LLM call or tool invocation | One agent run, human gate, or code step |
| Authoring | Graph-builder API in Python or JS | A JSX tree; prompts are template strings |
| Persistence | Checkpointers you configure (memory, Postgres, or the Platform) | SQLite by default, zero config, plus filesystem snapshots of the repo |
| Time travel | Rewind agent state via checkpoints | Rewind, fork, and replay the run and the working tree |
| Human in the loop | Interrupts you wire into the graph | `<Approval>` and `<HumanTask>` primitives that suspend durably |
| Coding-agent harnesses | Bring your own integration | First-class: mix Claude Code, Codex, Pi, Antigravity in one workflow, with fallback |
| Deployment story | LangGraph Platform (commercial) or self-managed | A 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](/components/workflow) 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](/why-react).

## See also

- [Smithers vs. Claude Code Workflows](/why/vs-claude-code-workflows)
- [Smithers vs. Temporal](/why/vs-temporal)
- [What is Smithers](/guide/what-is-smithers)
