# Reusable Exception Agent Pattern

Companion to **The AI Exception Agent: Automatically Investigating eCommerce Business Problems**.

Post 8 ([`order-exception-playbook.md`](order-exception-playbook.md)) is **order** exceptions. This pattern is **reusable** across domains. Do not staff a new chatbot per exception type.

```text
Detect → Investigate → Collect evidence → Recommend → Request approval or execute
```

## Inputs

| Exception class | Examples | Default autonomy |
| --------------- | -------- | ---------------- |
| Order | Payment fail, address, delay | Investigate + recommend |
| Inventory | ATP vs advertised, receipt miss | Analyze + recommend |
| Customer | Duplicate, credit hold (B2B) | Recommend; no account write |
| Payment | Decline codes, AVS | Retry **only** on allow-list |

## Loop

1. **Detect** — deterministic rule or webhook (not the model watching Slack)
2. **Investigate** — named tools only
3. **Evidence** — `evidence_tool` + `evidence_ref` on every finding
4. **Recommend** — structured decision
5. **Approve or execute** — Cedar + HITL per [`autonomy-spectrum-by-action.md`](autonomy-spectrum-by-action.md)

One harness (or one Runtime service) with **tools per class**, not 40 disconnected zaps.

## Related

- Order playbook: [`order-exception-playbook.md`](order-exception-playbook.md)
- Monitoring: [`store-monitoring-signal-catalog.md`](store-monitoring-signal-catalog.md)
- HITL: [`hitl-approval-architecture.md`](hitl-approval-architecture.md)
