Open source library for AI agents that need a human in the loop. The human reviews in Slack, email, or a dashboard and replies with the answer in your schema.
from awaithumans import await_human
from pydantic import BaseModel
class Refund(BaseModel): amount: float; customer: str
class Decision(BaseModel): approved: bool
decision = await await_human(
task="Approve refund?",
payload_schema=Refund,
payload=Refund(amount=240, customer="cus_123"),
response_schema=Decision,
notify=["slack:#ops"],
timeout_seconds=3600,
)
if decision.approved: process_refund()Every production agent hits the same three walls. No model release moves them.
The agent has the information, but a human has to own the call. High-stakes, regulated, or irreversible decisions need a person's signature, and that gap widens as agents get more capable.
The world exists outside the model's context window, and no amount of intelligence closes the gap between what the model thinks is true and what is actually happening on the ground.
The physical world was not built for agents and will not be rebuilt overnight. Until it catches up, agents need humans to be their hands.
Your OCR or vision model is right most of the time. The pages it gets wrong are what break your agent downstream. AwaitVerify routes those pages to a trained human reviewer and returns a clean, typed answer in your schema. We supply the reviewers. Per page, with a 30-minute SLA on Express.
Reviewers answer in Slack, email, or the dashboard. The same schema renders the UI on each channel, so you write zero templates and they learn zero new tools.
Interactive Slack messages. Reply in thread or click the button. The AI quality check runs before your agent trusts the answer.
Action buttons inline. Click for a confirmation page. Reply with natural language to complete.
Typed forms generated from your schema. Audit trail and admin built in.
From install to first human task in under five minutes, every release. CI runs the quickstart on a fresh machine so the path stays clean.