I’ve been building LangGraph agents and kept hitting the same problem: no clean way to pause an agent before a sensitive action and wait for a human to approve or reject it before it executes.
LangGraph has interrupt() built in, but you still need somewhere to surface that interrupt to a reviewer, collect their decision, and return it to the agent. That’s the gap I built LangGraph Approval Hub to fill.
How it works
Your agent calls request_approval() — execution pauses. A reviewer sees the pending action on a real-time dashboard, approves or rejects with an optional note, and the agent gets the decision and continues.
from langgraph_approval_hub import request_approval
result = request_approval(
hub_url="https://your-app.vercel.app",
api_token="your-token",
agent_name="FinanceBot",
action_description="Transfer $5,000 to vendor account #4892",
assignee="cfo@company.com",
assignee_type="email",
)
if result["status"] == "approved":
execute_transfer()
What’s included
- Real-time dashboard (Next.js + Supabase Realtime)
- Audit log — every decision timestamped, exportable to JSON
- Email + Slack notifications when approvals arrive
- Team routing — any member of a group can approve
- Non-blocking async flow
- Runs free on Vercel + Supabase free tiers
Links
- GitHub: GitHub - suryamr2002/langgraph-approval-hub: Stop AI agents from acting without permission. Human-in-the-loop approvals for LangGraph — dashboard, audit log, Python SDK. Free to deploy. · GitHub
- Live demo: https://langgraph-approval-hub.vercel.app
- Try in Colab (no install): Google Colab
Deploy takes ~5 minutes. Would love feedback from anyone building production LangGraph agents — especially edge cases I might have missed.