Ask
Approvals
Before a consequential act, named people authorise it — approve, approve with changes, reject, or ask the agent a question.
deliverd.approve()Human-in-the-loop infrastructure for AI agents
When an AI agent needs a person — for approval, a review, an answer or a decision — it makes one call and carries on when they reply. A gate checks an agent's action against policy, or asks a person, before the agent acts; a task keeps the job's objective, the evidence says who decided what, and what the agent made can be published behind your own sign-in.
The right person is asked, on their phone, and the answer comes back to the agent.
How it works: Stop chasing approvals.Without losing the objective: the goal, where the work stands and the next step are kept, so another agent or a colleague picks it up without starting again.
How it works: Keep AI work moving across tools.The agent asks before it acts — your policy answers, or a person does — and every answer is recorded.
How it works: Fewer unapproved agent actions.With the sign-off attached: what the agent made opens behind your own sign-in, and the review it went through stays on its record.
How it works: Share finished work securely.For clients, management and audit: who asked, who decided and what happened, recorded as it happens and exported as one pack.
How it works: Evidence without anyone assembling it.Ask
Before a consequential act, named people authorise it — approve, approve with changes, reject, or ask the agent a question.
deliverd.approve()Ask
Named readers approve the work or ask for changes, with a note, and the agent reads the verdicts back.
deliverd.review()Ask
Typed questions to the people who have the answer, with reminders and a due date; the answers come back as one object.
deliverd.collect()Check
The agent says what it is about to do. Your policy answers, or a person does, and what ran is recorded.
deliverd.gate()Track
An objective and a short state that outlive the conversation, so any agent or person picks the work up without re-explaining it.
deliverd.tasksPublish
What the agent made, on a secure address people open with their own sign-in, every version kept.
deliverd.publish()Prove
Who asked, who decided and what they said, as one timeline you can export.
get_evidenceOne platform, one API
await deliverd.gate({ action, input, externalId }); // may I? — your organisation answers
await deliverd.approve({ title }); // ask permission, and wait for the answer
await deliverd.review({ title, reportId, reviewers }); // ask whether it is right
await deliverd.collect({ title, questions, respondents }); // ask for what you lack
await deliverd.confirm({ title }); // a yes or no on something small → boolean
await deliverd.publish({ title, content }); // get the work to the people who need itOne platform under all of it: the same identity, the same agent permissions, the same audit trail and evidence pack, the same MCP server, REST API and SDKs.
What you get
The person approves, rejects, answers or asks the agent a question back — and the agent receives it.
An administrator writes them; the agent does not. Most calls settle without interrupting anybody, and every one is recorded.
An agent acts as itself, inside boundaries somebody set, rather than borrowing a person's credentials.
It may not approve its own request, be an approver of anything, or grant itself scope — refused in the service, not hidden in the interface.
A persistent address with version history, rollback, and a refusal when two publishes race — and every open checked against who may read it.
Who asked, who decided, what they saw, what changed and who opened it — kept as a tamper-evident record, hash-chained per organisation, and exported as a signed evidence pack anyone can check offline.