Governance
Human-in-the-loop
Risky actions can pause and wait for a person. A paused agent surfaces in the approval inbox, where one click resumes it — with the action re-evaluated against policy.
Pausing an action
Any rule or soft budget can pause instead of allow/deny:
policy.yaml
rules: - trigger: "action:wire_transfer" checks: ["amount > 1000"] enforce: pause message: "Large transfer needs approval"Note
When paused, the runtime records
pending_approvalon the agent's context and waits. On resume, the action is re-evaluated — approval is a one-time override, not a blanket bypass.Approval inbox
Run the control plane and open the inbox to review and approve paused actions:
shell
antraft serve# then open:# http://localhost:8000/inbox (web inbox, one-click approve)# http://localhost:8000/observability (live runs + decisions)Approve via API
shell
GET /agents # list active agentsGET /agents/{id} # status (paused? pending action?)POST /agents/{id}/approve # approve the pending action and resumePOST /agents/{id}/signal # PAUSE | RESUME | STOPFleet / swarm control
The same control plane manages remote agents: they heartbeat in and receive pending signals, so you can pause, resume, or update policy across a fleet from one place.
swarm.py
Antraft.agent(model, tools, task="...") .connect_swarm("http://localhost:8000") .build()