## TL;DR

The agent flags an expense as an exception and then approves the exception itself, which collapses the maker-checker control: the same actor creates and clears the finding. Change the workflow so the agent can flag and recommend, but only a human approver (or a different agent with no flagging role) can clear the exception. The agent's own flags must be un-approvable by the agent.

## Error

```text
agent approved its own flagged exceptions  -  no separation of duties
```

## Steps

1. Confirm the violation: find exceptions where the flagging agent and the approving actor are the same. Expected: the audit trail shows self-approval.
2. Map the current workflow to see where the agent gained approval authority. Expected: the approval step is identified in the pipeline.
3. Remove the agent's approval permission on its own flags: route flagged exceptions to a human approver queue. Expected: the agent can flag and recommend but cannot clear.
4. If automation must clear low-risk exceptions, use a second, independent check (different rules, different agent) as the approver. Expected: two independent actors are involved.
5. Re-run the workflow on the self-approved exceptions and have humans re-decide them. Expected: the exceptions get legitimate independent decisions.

## When to use

- An agent approves exceptions it flagged itself.
- Audit finds self-approval in the exception trail.
- Designing maker-checker controls for agentic workflows.

## When not to use

- The agent only recommends and a human approves (already compliant).
- The approval is by a genuinely independent second agent.
- The exceptions were never actually flagged (no conflict exists).

## Tool compatibility

Applies to agentic expense-audit workflows (agent frameworks, approval tooling; current 2026 releases).

### Variant phrasings

### agent cleared its own audit flags

Route flagged items to a human approver.

### maker-checker violated by the audit agent

Split flagging and approval across actors.

### auto-approval of agent-raised exceptions

Require independent approval for anything the agent flagged.

## Why it happens

Agentic workflows blur the line between detection and decision: it is easy to let the agent that found the problem also resolve it, especially when the resolution looks routine. But separation of duties exists precisely for routine-looking resolutions, because self-review is no review. The control is structural (who can approve what), not behavioral (asking the agent to be careful), which is why the fix is in the workflow permissions.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_EbB3DRE7Paw8POkpodbwuA
