Skip to main content
A realistic AI banking agent that processes wire transfers with compliance controls, fraud detection, and approval workflows.

What This Demonstrates

This example shows the three Agent Control action types in a real-world banking scenario:
  • Deny: Hard-block compliance violations (OFAC sanctions, high fraud)
  • Steer: Guide agent through approval workflows (2FA, manager approval)
  • Observe: Record suspicious activity for audit without blocking (new recipients)

Understanding Steer Actions

Steer is a non-fatal control signal. Unlike deny, steer provides corrective guidance so the agent can fix the issue and retry. Key difference from deny:
  • Deny = You cannot do this (permanent block)
  • Steer = You need to do X first (correctable)

Demo Flow

Quick Start

Prerequisites

  1. Start the AgentControl server
  2. Set your OpenAI API key: export OPENAI_API_KEY="your-key"

Run the Demo

Try These Scenarios

1. Simple Transfer (Auto-Approved)

“Send $500 to Jane Smith” Expected: Automatically approved - no controls triggered

2. Sanctioned Country (Blocked)

“Wire $5,000 to North Korea” Expected: Hard blocked - OFAC compliance violation

3. Large Transfer (Requires Approval)

“Transfer $15,000 to contractor in UK” Expected:
  1. Agent requests 2FA code
  2. Agent asks for business justification
  3. Agent requests manager approval
  4. Transfer completes after approvals

What You Will Learn

  • When to use deny vs steer vs observe actions
  • How to integrate human feedback (2FA, approvals) into agent workflows
  • How structured steering context enables deterministic agent workflows
  • Real-world compliance patterns (OFAC, AML, fraud prevention)
  • The steer → correct → retry lifecycle

How It Works

The agent uses AgentControl to gate wire transfers through five controls:

Structured Steering Context

Steer controls provide structured JSON guidance for deterministic workflows:
For multi-step workflows:
Key fields:
  • required_actions: list of actions the agent must complete
  • retry_flags: flags to set when retrying after correction
  • reason: human-readable explanation
  • steps: optional sequential workflow steps with descriptions

Files

  • setup_controls.py - Creates the five banking controls (deny, steer, observe)
  • autonomous_agent_demo.py - Interactive agent with deterministic steer handling

Source Code

View the complete example with all scripts and setup instructions: Steer Action Demo Example