Ratifia Ratifia Ratifia
← All posts

How did this come about?

A blog about the unglamorous half of AI engineering: what happens when an agent proposes an action that a person has to stand behind.

Engineering 4 min read announcements

I really like software engineering. I always have. When AI came along, I started to notice something; once I got in groove, I was the bottle neck. I think this will always be true. When you're running 7+ agents deep, they're bound to have questions. Some questions take longer than others etc.

I started to search for solutions. I found some cute things (a world-of-warcraft animation that showed the status of my agents is my favorite mention :) ). We all know the terminolfy "Human-in-the-loop". I was looking for an efficient way to be the HITL. However, I started to notice one thing:

Human in the loop was not being treated as a first class citizen.

Given the speed of AI and its/our ability to have it multi-task, one must humble themselves and realize that the "human" will now be the bottleneck in the process.

So at first, I created something to help me be a more efficient HITL. I needed a way to "lean-back" on some decision, quickly respond to others, and jump back into sessions where I had more questions. I then realized I needed more "surfaces" to make decisions on ( Email, Slack, Phone, etc. ).

When I started talking to my friends they also had a common problem. However they were in more high regulated industries, they needed yet more surfaces ( DocuSign, etc. ), ability to audit and be audited, etc.

All of it kept pointing at the same gap: my own bottleneck, the extra surfaces, my friends in regulated shops with their audits. And here's what strikes me. Almost everything written about AI agents is about making them capable — better tools, bigger context, more autonomy. Barely anyone writes about the other half: what happens the moment an agent proposes to do something a person has to stand behind. Issue the refund. Send the email. File the claim. Deploy the model.

That moment (the hand-off, the "are you sure?", the sign-off) is where I've ended up spending all my time. And honestly, it's way stranger and more interesting than "just add an approval step." So I'm going to write about it here, out in the open.

What I'll be writing about#

Mostly the stuff I keep tripping over, plus the problems my design-partner friends drag me into:

  • Approval design. What a reviewer actually needs to see before they can honestly say yes, and why a bare approve/reject button is a liability instead of a control.
  • Policy. How to say "a human decides this" as a rule, instead of a hard-coded if buried in some function, and how to stop an agent from quietly deciding it doesn't need one.
  • Routing, quorum, and escalation. Who gets asked, how many of them, and what happens when nobody answers. (Silence, it turns out, is a design problem, not an error case.)
  • Provenance. What you have to record so that a year from now, someone can reconstruct not just who approved something, but what they were actually looking at when they did.
  • Workflow engines. What Inngest, Temporal, Trigger.dev, and Hatchet give you, where their primitives stop, and why that line sits exactly where it does.

Fair warning: some of it will be opinionated. Some of it will be things I got wrong and had to walk back. And where I or we haven't shipped something yet, I'll say so, same as everywhere else on this site.

Why it might be worth your time#

HITL usually gets treated as a checkbox on a compliance form, and I think it deserves a lot better than that. The difference between an approval system that actually works and one that rots into a rubber stamp is a hundred tiny design decisions, and almost none of them are written down anywhere.

I'm making those decisions in public, on a product that lets agents move real money. I'd rather share what I learn as I go than pretend I showed up already knowing it.

And if you're building something in this space too: disagree with me, loudly. That's genuinely the point.


Ratifia pauses an AI workflow for a human decision, hands the reviewer the full context, and resumes with the verdict. It runs on top of the workflow engine you already use and never touches your code. Request early access.