AI Agent Approval Workflows
Not every action should auto-execute and not every action should hard-block. EVE lets you require approval before a tool executes: a governed request can resolve to BLOCK (stop), ALLOW (proceed), or MODIFY (proceed only with the modified request), so high-risk actions are gated before the side effect rather than reviewed after it.
How approval gating works
- Pre-execution gate — the verdict is returned before the tool call runs; a BLOCK means the underlying tool is never invoked.
- Deterministic dispositions — ALLOW / BLOCK / MODIFY are computed by policy code, so the same request is gated the same way every time.
- Signed record of the gate — the decision (including a hold or block) can emit signed evidence for later review.
- Fail-closed — if the governance service is unreachable, the action does not proceed by default.
SDK example
from eve_coreguard import EVE
eve = EVE()
result = eve.govern_tool_call(
tool="issue_refund",
arguments={"order_id": "ord_42", "amount": 5000},
context={"tenant_id": "org_abc", "principal_id": "agent_support", "session_id": "sess_3"},
)
if result["action"] == "BLOCK":
route_to_human_review(result["reason_codes"]) # underlying tool not called
elif result["action"] == "MODIFY":
issue_refund(order_id="ord_42", amount=5000) # only the modified (forwarded) request proceeds
else:
issue_refund(order_id="ord_42", amount=5000)
Links
- Agent governance overview: /seo/landing/ai-agent-governance.md
- Budget-triggered gating: /seo/landing/ai-agent-budget-controls.md
- Policy enforcement mechanics: /seo/landing/ai-policy-enforcement.md
Readiness
The underlying CoreGuard decision (ALLOW / BLOCK / MODIFY) is PILOT_READY, and fail-closed deployment is PILOT_READY. The Python SDK entry point is a release-candidate core client. The SDK core is a RELEASE CANDIDATE WITH EXCLUSIONS.
Limitations
- EVE returns the disposition; wiring a BLOCK to a human review queue and enforcing the hold is an integration responsibility on your side.
- The pip client gates via hosted mode and needs a reachable endpoint; embedded gating is the EVE service.
- Wrapper-based framework integrations can be bypassed by a direct underlying-tool call; hard enforcement of the gate requires a gateway or sidecar.
Next step
Wire a BLOCK disposition to your approval queue in a pilot and confirm the underlying tool is never called on a hold.