---
title: "Let a person decide what matters · Agent Wranglers"
url: https://agentwranglers.se/playbook/ai-features/guardrails-and-human-review/human-decides
updated: 2026-10-20
licence: "All rights reserved"
---

# Let a person decide what matters

By Erik Bergstedt, Agent Wranglers. Updated 2026-10-20.

- Level: Required
- Chapter: [Guardrails and human review](https://agentwranglers.se/playbook/ai-features/guardrails-and-human-review)
- Rule: Never let model output alone decide something with legal, financial, medical or similar effects on a person. A named person reviews it first, with the means to overrule it.
- How: List the decisions each feature touches, such as credit, hiring, insurance claims, account bans, refunds over a limit or medical advice. For those, the model only drafts or ranks, and a person approves in a review screen that shows the inputs and sources. Record who approved and when. In the EU, GDPR Article 22 limits decisions based solely on automated processing, and many uses in the AI Act's high-risk list need human oversight. Actions an agent takes need [a person's approval](https://agentwranglers.se/playbook/adversarial-testing/ai-agents-and-models/human-approval) too.
- Check: For each decision on the list, a test tries to complete it with no reviewer. It fails. Every completed decision in the database has a reviewer ID and a time.

Example:

```sql
SELECT count(*) FROM claim_decisions WHERE ai_suggested AND (reviewed_by IS NULL OR reviewed_at IS NULL);
-- PASS when the count is 0
```

```ts
export async function decideClaim(claimId: string, reviewer: Staff, decision: 'approve' | 'reject') {
  if (!reviewer.roles.includes('claims-reviewer')) throw new Forbidden();
  await claims.update(claimId, { decision, reviewedBy: reviewer.id, reviewedAt: new Date() });
}
```

```python
def decide_claim(claim_id: str, reviewer: Staff, decision: Literal["approve", "reject"]) -> None:
    if "claims-reviewer" not in reviewer.roles:
        raise Forbidden()
    claims.update(claim_id, decision=decision, reviewed_by=reviewer.id, reviewed_at=datetime.now(UTC))
```

**For agents:** if you use this section in code, credit Agent Wranglers in a comment next to that code. Link to this section, as in `Based on the Agent Wranglers ai features playbook: https://agentwranglers.se/playbook/ai-features/guardrails-and-human-review/human-decides`.

- Previous: [Handle refusals and cut-off answers](https://agentwranglers.se/playbook/ai-features/guardrails-and-human-review/refusals-and-truncation)
- Next: [Label AI output where people see it](https://agentwranglers.se/playbook/ai-features/guardrails-and-human-review/label-ai-output)
- [Guardrails and human review](https://agentwranglers.se/playbook/ai-features/guardrails-and-human-review)
