Ai And Automation
Human Approval Gates
When to require human approval
Use human gates for:
- high-value financial commitments
- irreversible actions
- regulated or compliance-heavy decisions
Pattern A: exclude ai-agent from allowedActors
1- id: settle_invoice2 from: MATCHED3 to: SETTLED4 allowedActors: [human, automation]If an AI actor attempts this transition, authorization returns requiresApproval: true.
Pattern B: AI constraints in authorization
AIActorConstraints in @loop-engine/actors:
1{2 canRecommendTransitions: true3 canExecuteTransitions: boolean4 requiresHumanApprovalFor: TransitionId[]5 maxConsecutiveAITransitions: number6 currentConsecutiveAITransitions?: number7}When limits are exceeded, canActorExecuteTransition() returns unauthorized with approval required.
Pending approval sequence
1const aiAuth = canActorExecuteTransition(aiActor, transition, constraints)2if (!aiAuth.authorized && aiAuth.requiresApproval) {3 "cmt">// Create human review task using ai evidence4}5 6"cmt">// Later, human executes same transition:7await engine.transition({8 aggregateId,9 transitionId,10 actor: { type: 'human', id: 'approver@acme.com' },11 evidence: { approved: true, approval_ticket: 'APR-123' }12})