Prompt confidence decides too much.
- Agent reads context and drafts a reply.
- The same tool path can send externally.
- Approvals, edits, and refusals disappear into chat history.
- Enterprise governance sees activity after the fact.
A workspace agent moves from risky automation into a public permission ladder: Observe, Draft, Prepare, Execute with approval, and Autonomous within bounds.
Mission does not ask buyers to trust an autonomous agent in one leap. It teaches the agent through bounded work, tests the boundary with approval packets, shares receipts, and uses feedback to improve.
external_actions: 0.The same agent can observe and draft quickly, prepare consequential work for review, execute only after approval, and earn bounded autonomy from receipts.
A useful agent can observe and draft today without earning permission to send, spend, delete, publish, or mutate production state. Receipts make that boundary inspectable.
external_actions: 0.The demo maps to the reference wrapper: canExecute, prepareApprovalPacket, and recordReceipt.
const decision = canExecute("email.send.external", {
evidenceCount: 2,
reversible: false,
humanApproved: false
})
// decision.status = "review_required"
prepareApprovalPacket({
actionClass: "email.send.external",
external_actions: 0
})
Inside each agent app, inside MCP metadata, inside evals/observability, or as a small receipt layer across them? That is the builder question.