Human in the loop AI agents: where a person approves

Human in the loop means an AI agent stops for a person before steps that matter. How Sume's agent does it in chat, and what replaces it in API runs.

5 min readSume
All posts

Human in the loop means an AI agent stops for a person before a step that matters, such as spending money, publishing, or deleting, and waits for approval or a correction. An agent without a person in the loop acts on its own, so any limits have to be set in advance. Sume's video agent works both ways: in chat it asks before it spends, while API and scheduled runs are unattended, so a spend cap stands in for the approval and a run that truly needs a person comes back failed instead of half-finished.

Sume's side comes from its Quick start, Format API, Create a run, and Agent Completions docs, read on 2026-09-27, and from current server code where the docs are silent. The MCP line is from the MCP specification's Tools page.

Where does a person approve in Sume's video agent?

In the Agents chat. Sume's docs say to use the Agents tab when a person should stay in the loop: brief, review, iterate, then save the result as a reusable recipe. The agent picks the models and asks before it spends, and the thread keeps every artifact and approval. A brief can add its own checkpoint, such as asking for a draft before spending credits on the final render.

What happens when nobody is watching?

Over the API, nobody is there to answer. A Format run is one unattended turn: it does not stop to ask a person anything, approvals a chat-authored recipe would request are pre-granted, and the run carries on to the paid step within its spend cap. In current code this is text added to the run's prompt: runs started from the Agents UI keep their approval stops, while API and scheduled runs are told that nobody will answer a question and that approval gates are already granted.

When the agent genuinely cannot go on, the run ends failed, never a half-finished completed. The error code unattended_blocked means it hit a gate it could not pass without a person, such as no avatar matching the brief or a missing input it would have asked about in chat. Fix the input or the brief, then retry with a new Idempotency-Key.

What stands in for the approval?

A spend cap. Agent Completions make it mandatory: generation_spend_cap_usd has no default, because the chat's interactive spend-approval prompt is not available to a backend caller, and the docs call the cap its substitute. Spend caps for unattended AI agents covers how each surface enforces one.

From Quick start, Format API, Create a run, Scheduled, and Agent Completions, read 2026-09-27.
How the run startsPerson in the loop?What limits spend
A person in the Agents chatYes: the agent asks before it spendsThe person's approval
Format run over the APINo: approvals are pre-grantedThe run's cap, or the Format's; $400 if the Format never set one
Scheduled runNo: approvals are pre-grantedThe schedule's per-run cap; $1.00 when unset
Agent CompletionNo: the spend-approval prompt is not availablegeneration_spend_cap_usd, required on every request

How do I keep a person in the loop outside the chat?

Put the approval between runs or calls, not inside one:

  • Review, then continue. A Format run is one agent turn. Show its result to a reviewer, then send previous_run_id on a new run with their notes as the instruction; the agent is replayed what it produced, so it can redo one part and leave the rest alone. The continuation is a new run with its own spend cap, as Regenerate one scene of an AI video shows.
  • Approve stills first. Avatar video previews generate the first-frame stills without starting the full talking-video render, so a person can approve composition before a full Avatar Video generation is spent.
  • Gate tool calls. On Sume's hosted MCP, an OAuth session sees only read-only tools until the user grants Write at consent, and dry_run=true previews admission and cost without submitting. The required idempotency_key is for deduplication, not human approval. The MCP spec says there SHOULD always be a human in the loop with the ability to deny tool invocations.

Human in the loop or autonomous: which should I use?

Sume's docs split it by stage. Interactive chat is the right surface when a human should stay in the loop, which is where a recipe gets shaped. Once the recipe is fixed and only the inputs change, a Format run is the path, and the docs say to build partner integrations on runs, not on chat threads. A person approves while the work is still being defined; a spend cap and an honest failed status take over once it repeats. For the MCP side of the same question, see Safe automation for AI agents that call paid APIs.

Sources

Related posts

More in Agents

All Agents posts

Written by Sume