Spend Control for LangGraph
LangGraph turns agents into graphs — and graphs fan out. A single node calling a paid tool in a loop, or a swarm of subagents spending in parallel, compounds costs faster than any prompt can police.
Why LangGraph agents overspend
Subagent fan-out: one graph step can spawn dozens of agents, each with its own tool calls.
Retry loops on a failing node re-run paid tools automatically.
The graph's parallel branches can all hit the same vendor in the same window.
How it works
Call sipi.bot from any node before a spend — via the MCP tool or a one-line HTTP request. The graph continues on APPROVED, short-circuits on BLOCKED, and routes FLAGGED to a human checkpoint.
Rules that fit graph workflows
Shared daily cap across the whole graph — the fleet can't compound one mistake.
Velocity limit per node so a retry loop dies fast.
Category rule so research nodes can buy data but never anything else.
HTTP call from a node
import requests
resp = requests.post(
"https://sipi.bot/v1/transactions/evaluate",
json={"amount": 800, "merchant": "data-vendor.com", "category": "data"},
headers={"Authorization": "Bearer YOUR_KEY"},
)
decision = resp.json()["decision"] # APPROVED | BLOCKED | FLAGGED
Deterministic, ~5 ms, no model call. Add it in the node that spends.
FAQ
Can sipi.bot limit parallel subagents?
Yes — a shared daily ceiling and velocity limit apply across the whole graph, so parallel branches can't compound one mistake.
Does it add latency to graph nodes?
About 5 ms per spend check — negligible next to tool call latency.
What if a node's legit spend gets flagged?
FLAGGED routes to your human approval queue. The graph can pause at a checkpoint while the human reviews.
Related
Stop the next $12,400 night.
One API call (or MCP tool) in front of every agent transaction — APPROVED, BLOCKED, or FLAGGED, deterministic, ~5 ms, fully logged.
See plans — from $99/mo Try a live check