How to add human approvals to LangGraph
Pause LangGraph execution at deterministic checkpoints, route review through CENTCOM, and resume with signed decisions.
Architecture
Run and govern agents across LangGraph, OpenAI Agents SDK, CrewAI, n8n, and Claude Code with one control layer.
As organizations adopt more than one agent framework, the hard problem shifts from building an agent to operating many of them together.
One team may use LangGraph for durable agent flows, another may use n8n for operational automation, and another may use Claude Code for supervised engineering tasks. Asking everyone to consolidate on one framework is rarely productive - each framework has a local optimum for a specific kind of work.
The real challenge is not framework choice. It is creating consistent control, ownership, and auditability across all of them.
Here is the same refund-approval request raised from four different frameworks. The control layer sees them identically - the reviewer does not know or care which framework the run came from.
Per-framework adapters are open source in the contro1-hq GitHub organization: one repo per framework, each with a slim bridge to the Contro1 request API. Your policy - thresholds, routing, deadlines - is configured centrally, not per framework.
LangGraph docs · OpenAI Agents docs · CrewAI docs · n8n docs · Claude Code docs
The first enterprise question is "if a customer calls and asks who approved action X at time Y, can you answer?" With one control layer across frameworks the answer is yes, with one query. Without it, the answer depends on which team owned the agent that did the action - and the audit trails are in five different formats.
Yes. That is increasingly common because different teams optimize for different tools, runtimes, and ownership models.
Usually not. The cost of forcing every team onto one framework is higher than the cost of adding a shared control layer on top of several.
No. The adapters are open source, the request API is framework-agnostic, and a workflow can migrate between frameworks without changing its approval policy.
Any framework that can call an HTTP API can integrate. The adapters are small (under 400 lines each) - a custom one is usually a day of work.
Every approval from every framework writes to the same Contro1 store with the same schema. One query answers "who approved action X" regardless of which framework raised it.
Pause LangGraph execution at deterministic checkpoints, route review through CENTCOM, and resume with signed decisions.
Map OpenAI Agents SDK interruptions to Contro1 requests so humans can approve high-risk actions before execution continues.
Use HTTP Request and Wait nodes in n8n to pause workflows, route approvals through Contro1, and branch on the result.