NORNR
Mandates, approvals and evidence for autonomous agents.
Guide / CrewAI
10 minutesHow to add spend controls to a CrewAI flow
Add NORNR spend controls to a CrewAI flow so paid tasks run only when policy allows them.
1. Why this guide matters
CrewAI makes it easy to coordinate agents around tasks and role boundaries. It does not itself answer whether a paid task should be allowed to run.
This guide inserts NORNR right before the paid task so the crew keeps its orchestration model while the budget and approval logic stays separate.
2. Install what you need
pip install agentpay crewai
This guide uses the hosted NORNR path at https://nornr.com, so you can validate the decision flow without standing up the full local stack first.
3. Create the governed wallet
from agentpay import Wallet
wallet = Wallet.create(
owner="crew-researcher",
daily_limit=50,
require_approval_above=20,
base_url="https://nornr.com",
)
This wallet is the mandate. It sets the budget and review threshold before the framework-specific workflow is allowed to continue.
4. Apply it in the workflow
from crewai import Agent, Task, Crew
decision = wallet.pay(amount=14.00, to="openai", purpose="CrewAI task execution")
if decision.get("status") == "approved":
researcher = Agent(role="Researcher", goal="Summarize findings")
task = Task(description="Research the market update", agent=researcher)
crew = Crew(agents=[researcher], tasks=[task])
print(crew.kickoff())
else:
print("Crew task held by policy.", decision)
The key pattern stays the same across frameworks: ask NORNR for a decision first, then let the expensive or externally billable step run only if policy says yes.
5. What to expect
- approved means the workflow can continue immediately inside its mandate.
- queued means the request crossed an approval threshold and should wait for review.
- rejected means policy did not allow the action to proceed.
That three-way split is what makes the pattern useful: low-risk work stays fast, higher-risk work becomes reviewable, and clearly out-of-policy work never leaves the workflow.
6. Where to go next
Related guides
Keep going from the same control problem.
These are the closest follow-up guides in the same part of the library.
How to give your LangChain agent a budget in 10 minutes
Add a governed wallet, budget threshold and decision handling to a LangChain workflow with NORNR in 10 minutes.
Read guide OpenAI Agents SDK / 10 minutesHow to add approval rules to an OpenAI Agents SDK workflow
Add approval thresholds to an OpenAI Agents SDK workflow so expensive or risky steps pause before money moves.
Read guide LangGraph / 12 minutesHow to gate paid tool calls in LangGraph
Gate paid LangGraph tool calls with NORNR so graph edges only reach expensive actions after policy says yes.
Read guide