When the agent should wait for you.
An approval pauses one guarded action until an authorised person decides it, or until the request expires. It is how Kautuka puts a human in front of the actions that matter.
What can require approval
- Connector tools set to Ask mode on an agent.
- Selected agent-as-tool targets, when you require approval for that delegation.
- Skills attached as Ask.
- Scheduled runs when a schedule is set to require approval before a run begins.
- Workflow steps marked Check with me first. The review comes after the step finishes, before its results are passed on. See Workflows.
Approval is a decision point you configure, not a blanket rule that every action always pauses. If a tool is set to On, it will not ask. Review each agent’s tool modes if you expect it to stop.
What you see, and what you can do
Pending requests appear on the Approvals page. A card shows the tool, the arguments it will run with, the agent, the outer agent and session when the work is nested, the time the request was made, and its expiry.
A tool approval has three actions:
- Approve — the waiting run resumes.
- Deny — the tool returns a denied outcome and the agent continues without it.
- Stop run — the run is terminated. If it was a child agent, the parent receives a cancelled or stopped tool result.
A workflow review has its own three: Approve passes the step’s results on, Request changes sends the step back with your note (twice for each step at most), and Stop run ends the workflow run.
When a request is resolved, the decision, the person who made it, the source channel, the reason when given, and the time are recorded in history.
Answering from a channel
You do not have to be in the browser. A channel set to send approvals can deliver the request with its context, and your answer updates the same request. Resolving it in one place resolves it everywhere.
A repeated decision is not treated as a second decision. If a run seems stuck after you approved something, check whether the request moved from pending to history, then reopen the related session rather than submitting again.
Technical details
Pending and history: GET /api/approvals/pending, GET /api/approvals/history. Session and detail: /api/approvals/session/{sessionId}, /api/approvals/{requestId}.
Resolve: POST /api/narad/v1/commands/resolve-interrupt with { interruptId, decision, reason? }. The optional stop_run decision appends a canonical run.stop.requested through the durable stop command service.
Stop an active root: POST /api/narad/v1/agents/{agentId}/sessions/{sessionId}/commands/stop-active-root.
“Approve all for this run” is not a product action. Configure tools and skills instead of approving broadly.
Verify that the request leaves Pending, appears in History with attribution, and the related session reaches the expected continued or terminal state.