Human-in-the-Loop Approvals
Autonomous does not mean unsupervised. When an agent is about to take a sensitive action - moving money, sending something outside your workspace, deleting data - it pauses the run and raises an approval request in the app at app.flymy.ai. Nothing happens until the owner approves. Once approved, the run resumes from where it stopped and finishes normally.
Every run is recorded, so you can always inspect afterwards what the agent did, what it asked permission for, and what you approved. See Runs for the full event timeline.
How it works
- The agent runs autonomously - planning, researching, calling tools.
- It reaches a sensitive action: a refund, an outbound email, a record deletion.
- The run pauses and an approval request appears in the app.
- You review the request and approve it.
- The run resumes, performs the action, and continues to completion.
The agent does not skip the action or guess at your answer while paused - it waits.
Asking for approvals in plain text
You control the approval boundary the same way you control everything else about an agent: by saying it in the goal. No configuration, no special syntax - plain language when you create the agent.
You handle customer refunds.
Always ask me before issuing any refund over $500.
Refunds under $500 that match our policy can go out without asking.
Never delete a customer record without my explicit approval.
Other phrasings that work the same way:
- "Ask before sending any email to someone outside the company."
- "Get my approval before posting anything publicly."
- "Confirm with me before cancelling a subscription."
The more explicit the threshold, the more predictable the behavior. "Ask before refunds over $500" is better than "be careful with refunds."
Put approval rules in the agent's goal at creation time, not in a follow-up chat message. Rules in the goal apply to every run; a chat remark only applies to the current conversation.
What pauses and what does not
| Action | Behavior |
|---|---|
| Moving money (refunds, payments, transfers) | Pauses for approval |
| Sending externally (emails, messages, public posts) | Pauses for approval |
| Deleting or irreversibly changing data | Pauses for approval |
| Reading, searching, and researching | Runs without pausing |
| Drafting content for your review | Runs without pausing |
| Internal reasoning and planning steps | Runs without pausing |
Read-only work never needs a pause - the agent gathers information, drafts, and analyzes freely. It is the moment of irreversible effect that waits for you.
Approval rules are instructions, and thresholds you never stated cannot be enforced. If a specific limit matters to you - an amount, a recipient list, a category of records - write it into the goal explicitly rather than assuming the agent will infer it.
Checking what happened
Approvals do not replace observability - they complement it. Every run keeps its full log: which tools were called, with which arguments, and in what order. After a run finishes, open it in the app or fetch it via the SDK to verify the approved action did exactly what you expected.
Next steps
- Runs - lifecycle, event streaming, and inspecting a finished run
- Tools & MCP - the integrations your agent acts through
- Training with Patches - refine the goal when behavior needs adjusting