AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified Apache-2.0 Self-run

Awaithumans Human In The Loop Ai Agents

mcp-awaithumans-awaithumans-human-in-the-loop-ai-agents · by awaithumans

Pause your AI agent. Ask a human. Resume with their answer. Open source human-in-the-loop (HITL) library for production LLM agents: Slack, email, and web dashboard. Typed Pydantic and Zod responses. Durable Temporal and LangGraph adapters. AI verifier. Audit trail. Self-hosted, Apache 2.0. Python and TypeScript.

No reviews yet
0 installs
25 views
0.0% view→install

Install

$ agentstack add mcp-awaithumans-awaithumans-human-in-the-loop-ai-agents

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-awaithumans-awaithumans-human-in-the-loop-ai-agents)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Awaithumans Human In The Loop Ai Agents? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

awaithumans — HITL infrastructure for AI agents

Your agents already await promises. Now they can await humans.

[](https://pepy.tech/project/awaithumans) [](https://www.npmjs.com/package/awaithumans) [](https://github.com/awaithumans/awaithumans-human-in-the-loop-ai-agents)

[](https://pypi.org/project/awaithumans/) [](https://www.npmjs.com/package/awaithumans) [](https://github.com/awaithumans/awaithumans-human-in-the-loop-ai-agents/actions/workflows/test.yml) [](https://github.com/awaithumans/awaithumans-human-in-the-loop-ai-agents/blob/main/LICENSE) [](https://www.python.org/downloads/) [](https://discord.gg/Kewdh7vjdc)

Docs · Quickstart · [Examples](./examples) · Discord

HITL infrastructure for AI agents — open source. A single primitive (await_human() / awaitHuman()) your agent calls when it needs a human. A real person reviews via Slack / email / a built-in dashboard, submits a typed response, and your agent resumes — like awaiting any other promise.

from awaithumans import await_human
from pydantic import BaseModel

class Decision(BaseModel):
    approved: bool
    note: str | None = None

decision = await await_human(
    task="Approve refund request",
    payload_schema=RefundRequest,
    payload=RefundRequest(order_id="A-4721", amount_usd=180),
    response_schema=Decision,
    timeout_seconds=900,
)

if decision.approved:
    process_refund(...)

The agent waits on decision like it waits on any other Promise or Future. A human gets notified (Slack, email, dashboard), reviews the request, and submits a typed response. The agent resumes with the typed answer.


The problem

Every production agent hits a wall where the model can't or shouldn't proceed alone. Three distinct walls, each permanent:

  • Judgment. The agent has the information but can't be trusted to

decide. High liability, regulation, or consequence — KYC approvals, refund sign-offs, content moderation escalations. A human carries the accountability.

  • System-uncertainty. The agent doesn't know the state of the world.

The source of truth is in a bank dashboard, a partner system, a manual file. No model can close this gap. A human investigates and tells the agent what's true.

  • Embodiment. The task requires a real person — signing, calling,

picking something up, passing a CAPTCHA. Not a model problem.

Better models don't solve walls 2 and 3. awaithumans makes the call to a human a first-class primitive instead of a pile of bespoke glue per project.


Why awaithumans

| | awaithumans | humanlayer | DIY glue code | |---|---|---|---| | Maintained | ✅ Active development | ❌ Abandoned | — | | Setup time | One command (awaithumans dev) | Per-customer rebuild | Weeks | | Channels | Slack + email + built-in dashboard | Slack only | Build each yourself | | Typed responses | ✅ Pydantic (Python) / Zod (TS) — schema-validated end to end | Partial | Build each yourself | | Restart-safe | ✅ Stripe-style idempotency — agent resumes across restarts | ❌ | Build each yourself | | AI pre-verification | ✅ Claude / OpenAI / Gemini / Azure — pre-check the human's answer before the agent trusts it | ❌ | Build each yourself | | Workflow engines | ✅ Temporal + LangGraph adapters — hand the wait to the engine | ❌ | Build each yourself | | Self-hostable | ✅ Docker + Postgres in one command | SaaS-only | — | | License | Apache 2.0 (patent grant) | — | — |

Built by engineers who hit the HITL wall three times in production fintech and ScaleBrick agent systems — and watched the only OSS alternative get abandoned by its founder over per-customer-fork creep. The architecture has exactly four extension points (channels, verifiers, routers, task-type handlers) so no single customer can push the core into the same trap.


Quick start

60 seconds. Two terminals. First-time setup needs a browser click; everything else is paste-and-run.

Terminal 1 — server + dashboard:

pip install "awaithumans[server]" && awaithumans dev

Click the setup URL it prints, create your operator account. The dashboard is now at http://localhost:3001.

Terminal 2 — paste this whole block:

pip install awaithumans pydantic && cat > /tmp/refund.py  **Note on the image name.** The canonical image is
> `ghcr.io/awaithumans/awaithumans-human-in-the-loop-ai-agents`. The
> shorter `ghcr.io/awaithumans/awaithumans` from earlier release notes
> is **deprecated** and frozen at a pre-rename build — older docs and
> blog posts pointing there pull a stale image. Update any pipelines
> or compose files referencing the short name.

Or `docker compose up` with the included `docker-compose.yml`
(optional Postgres block inside). Backs everything — API, dashboard,
channels — from one image.

---

## Managed: AwaitVerify

If your use case is **document verification** and you would rather not run the infrastructure or recruit reviewers yourself, [**AwaitVerify**](https://awaithumans.dev/awaitverify) is the managed service we sell on top of this primitive. We provide the humans, the ops, and the SLA. You keep the same one-function-call integration.

```python
from awaithumans import verify_document  # also aliased as awaitVerify
from pydantic import BaseModel

class LineItem(BaseModel):
    sku: str
    qty: int
    unit_price_cents: int

class Invoice(BaseModel):
    invoice_number: str
    total_cents: int
    line_items: list[LineItem]

result = await verify_document(
    document_path="./invoice.pdf",
    prior_extraction={
        "invoice_number": "INV-4471",
        "total_cents": 12000,
        "line_items": [...],
    },
    response_schema=Invoice,
    priority="standard",                          # or "high" for the Express queue
    api_key=os.environ["AWAITHUMANS_API_KEY"],
)

$0.80 per page standard. $0.60 at 1,000+ pages/month. Custom at 10,000+. The Express SLA (30-minute target during Mon-Fri 8am-8pm ET, best-effort outside) runs at 2x the rate and is triggered by priority="high".

The SDK fragments the document client-side into five masked views before any upload. The full unfragmented document never leaves your environment. Fragments are encrypted in transit (TLS 1.2+) and at rest (AES-256-GCM with per-task data keys destroyed on reviewer submit).

Sign up at app.awaithumans.dev · Pricing · Security


Architecture

  • Core primitive: one function, await_human() / awaitHuman(),

typed-in-typed-out.

  • Task store: SQLite in dev, Postgres in prod. Idempotency keys,

atomic state transitions, audit trail.

  • Channels: Slack + email today. Plug in your own by implementing

a small interface (server/channels/).

  • Verifiers: Claude today, OpenAI, Gemini, and Azure OpenAI shipped; any provider is a one-file adapter.
  • Router: least-recently-assigned over a user directory with

free-form role/access_level/pool labels.

  • Task-type handlers: forms auto-generated from your Pydantic /

Zod schema, rendered per channel (Slack Block Kit, email, web form).

Every customization flows through one of these four buckets. That's the entire extension surface.


Documentation

  • Quickstart: [examples/quickstart/](./examples/quickstart/)
  • Full docs: docs.awaithumans.dev
  • Contributing: [CONTRIBUTING.md](./CONTRIBUTING.md)
  • Security policy: [SECURITY.md](./SECURITY.md)

Built with awaithumans?

Drop this badge in your project's README so folks know where the HITL primitive came from:

[](https://github.com/awaithumans/awaithumans-human-in-the-loop-ai-agents)

[](https://github.com/awaithumans/awaithumans-human-in-the-loop-ai-agents)

Or generate a generic variant via shields.io:

[](https://github.com/awaithumans/awaithumans-human-in-the-loop-ai-agents)

Troubleshooting

If something isn't working, run the pre-flight check first:

awaithumans doctor

It scans your environment for the most common misconfigurations — missing or malformed PAYLOAD_KEY, Slack token issues, unreachable database, Docker bind-mount gotchas — and prints a clear report with actionable fixes. Catches ~80% of first-run issues in under 2 seconds.


Packages

| Package | Registry | License | |---|---|---| | awaithumans (Python SDK + server + CLI + dashboard) | PyPI | Apache 2.0 | | awaithumans (TypeScript SDK) | npm | Apache 2.0 | | ghcr.io/awaithumans/awaithumans-human-in-the-loop-ai-agents (container) | GHCR | Apache 2.0 |

License: [Apache License 2.0](LICENSE). Permissive, OSI-approved, with an explicit patent grant. Use it in proprietary stacks, fork it, ship it inside paid products — no fee, no contact required. The only thing the license asks is that you preserve the notice and don't use the project's trademarks without permission.


Status

v0.1.0 — public preview. Released 2026-05-11.

The full primitive, all three channels (dashboard / Slack / email), both durable adapters (Temporal / LangGraph), AI verification across four providers, and one-command self-hosting are all live in this release.

This is a young project — APIs are stable for v0.x, but expect rough edges in the long tail. File issues, open PRs, drop questions in Discussions or Discord. Every reproducible bug report shipped with a fix in v0.2.

For the post-launch roadmap — local task book for runtimes without an orchestrator, custom router strategies, post-launch hardening — see Roadmap & help wanted.


Contributors

awaithumans is built by the maintainers and these brilliant community contributors.

Hiren Gajjar

awaithumans doctor #150

Want to be on this list? Pick a good first issue, drop a comment on it to claim, and we'll review your PR within ~24h. As we grow, this gallery shrinks each avatar back down to a tight grid — same shape, more faces.

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.