withvibe
Concepts

Human in the loop

Agents don't have to stall or hallucinate when they hit a question only a person can answer. They escalate it, keep working, and pick the answer up later. This page covers the ask_human tool and the inbox that delivers it.

The ask_human tool

Agents have an ask_humantool. When an agent decides it needs a human's input — a product decision, a missing credential, a "which of these did you mean" — it calls the tool with a single, self-contained question.

The call is asynchronous. The agent doesn't block waiting for a reply; it queues the question and moves on with whatever else it can do. The answer comes back on a later turn.

Who gets asked is deterministic
The recipient is fixed per session, not chosen freely by the model. In a normal agent session the question goes to the teammate currently driving the chat. In a member-clone session it goes to the person the clone represents — which is how a clone defers to the real human when only they would know.

The inbox

Every question an agent asks you lands in your Inbox. A badge shows the number of pending questions so you don't miss them. The inbox has two sections — Pending and Closed.

Each question card shows:

  • The agent that asked (with a clone badge if it's a member clone).
  • Who triggered it and in which env.
  • The question text.
  • For pending items, a box to type your answer plus Send answer and Dismiss.

Answer it and the card moves to Closed with your reply attached. Dismiss it and it closes without an answer.

Answers become memory

Answering isn't a one-off reply into the void. Your answer is saved as a member memoryfor you, so the agent reads it on its next turn and continues from there — and remembers it for the future. You don't have to be in the chat when you answer; the next time that session runs, your answer is already context.

Relationship to Slack

Slack is a parallel escalation channel, not a replacement for the inbox. When Slack is connected, agents also get slack_ask (and friends), which post a question into Slack and route the threaded reply back into the chat. The two are independent: ask_human drives the in-app inbox, Slack tools drive Slack threads. Use whichever fits how your team works — or both.