Agent governance
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 CoreGuardClient
client = CoreGuardClient(api_key="eve_sk_...")
result = client.evaluate(
request_id="sess_3",
tenant_id="org_abc",
proposed_action={"type": "issue_refund", "order_id": "ord_42", "amount": 5000},
model_output={"decision": "approve"},
context={"principal_id": "agent_support", "session_id": "sess_3"},
policy_set="agent_tools_v1",
)
if result.decision.status == "BLOCKED":
route_to_human_review(result.decision.action) # underlying tool not called
elif result.decision.status == "MODIFIED":
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.