Blog

What should an AI agent do when it needs a human decision mid-run?

Park the question on the task and move on. How Done's ask_decision tool lets an unattended agent ask you something without stopping its run or guessing.

By Alejandro Rioja4 min read

An AI agent that hits a decision it shouldn't make alone should park one specific question on the task and move on to other work — not stop the whole run, and not guess. In Done that's the ask_decision tool: it posts a single question with the agent's recommendation, takes the task out of the agent's queue as needs_input, and the agent claims its next task. When you answer, the task goes back to in progress and gets picked up on a later run.

Why not just stop and wait, or make a guess?

Both obvious options fail for an agent that runs unattended overnight. Stopping means the other eleven tasks in the queue don't get touched because one of them had a fork in it. Guessing means the agent picks an answer to a question that was expensive to get wrong, and you find out in the morning. Parking the question keeps the run productive and keeps the decision with you.

What does ask_decision actually do?

  • question — one sentence. It is posted on the task, so you read it where the work lives.
  • recommendation — required. The agent has to say what it would do absent an answer and why, so answering is one keystroke rather than an essay.
  • kind and options — a question, a permission, or an input only you have, with optionally 2 to 4 concrete choices; leave options out for a free-text answer.
  • blocking — true by default: the task parks at needs_input and drops out of the agent's queue. With blocking:false the task stays in the queue, the agent keeps working, and it picks up your answer later.

When should an agent ask instead of deciding?

The tool's own guidance is deliberately narrow, because an ask for every ambiguity turns the board into the comment feed it replaced. An agent should ask when the call is one of these, and otherwise decide and say what it decided in its run summary:

  • Spending money.
  • Anything outward-facing: an email, a post, a reply to a customer.
  • Anything irreversible, or a genuine fork where guessing wrong is expensive.

What happens when I answer?

Your answer is recorded as a comment on the task, and a task that was parked by a blocking question returns to in progress. The agent finds it by calling list_open_decisions at the start of a run, or just next_task, which ranks recently answered tasks first because their context is already written down. If two people answer at once, exactly one answer lands and the other is told the question is already closed. If the agent works the question out itself, withdraw_decision un-parks the task. Only one blocking question can be open on a task at a time.

How is this different from the approval gate?

The approval gate guards the end of the work: a task that isn't marked auto-OK can't reach done until you approve it. ask_decision happens in the middle, and it is not an approval — answering never completes anything. The two don't collide: a blocking question can't reopen a task that is already done or waiting on your sign-off, so on those the agent asks with blocking:false and the original request isn't lost.

Frequently asked questions

What should an AI agent do when it needs a human decision?

Park a single question on the task and move on to other work instead of stopping or guessing. In Done the agent calls ask_decision with the question and a recommendation; the task waits at needs_input until you answer.

Does an unanswered question stop my other agents or tasks?

No. A blocking question parks only its own task, which drops out of the asking agent's queue. Every other task keeps flowing, and a non-blocking question doesn't even park its own task.

Can an agent answer its own question or approve a task through ask_decision?

No. ask_decision is not an approval and never completes anything; a task that needs sign-off still has to go through propose_completion and a human approval. The agent can withdraw a question it no longer needs answered.

Keep reading

Have AI complete your to‑do list.

Free to start. No card.