Story 01 ยท Security & Platform Engineer

Stop unauthorized AI agent actions

Let an operations agent read an account status, but require a matching execution-scoped authorization before it can change that status.

The situation

An operations agent can inspect a customer account, then attempts to place it into maintenance without the delegated authority for that exact mutation.

The question

Can the protected operation be denied before it changes the banking record, with evidence that explains why?

The governance workflow

From question to governed outcome

  1. 01

    Register the execution and permitted actions

    The runtime records the execution and binds its requested action and resource scope to server-derived tenant and actor identity.

  2. 02

    Read the account safely

    The agent performs the permitted status lookup; a read does not imply authority to mutate the account.

  3. 03

    Ask immediately before the mutation

    BHANUJ - AIGP (AI Governance Platform) evaluates one exact action, resource, arguments, execution, and delegation binding and persists an ALLOW or DENY decision.

  4. 04

    Enforce the response at the tool boundary

    The integrated runtime validates the unexpired matching response before the protected tool call. A deny, timeout, or mismatched binding fails closed.

  5. 05

    Inspect the decision and execution evidence

    Review the authorization outcome, reason code, delegation scope, and execution record; no protected tool call or mutation is recorded on the denied path.

In Studio

The screens behind the story

An identity provider authenticates the agent; AIGP evaluates a bounded action request, and the runtime enforces the result at its protected tool boundary.

The runtime requests an operation-bound decision immediately before the protected action.

Authorization and execution evidence remain reviewable without exposing protected runtime content.

Verify the outcome yourself

Attempt the protected mutation and inspect the denial

The LangGraph operations lab makes the enforcement boundary observable with a permitted read and a denied protected write.

python app.py denied --database /tmp/aigp-langgraph-denied.db

Expected result

The deterministic denial fixture returns WRITE_DENIED, leaves OPS-001 PENDING, and emits no protected tool call. In a live AIGP path, the persisted DENY includes the machine-readable reason code, such as DELEGATION_SCOPE_DENIED, for the exact rejected binding.

Run the protected-action scenario

The outcome

The attempted status change is denied before the protected operation runs. The team retains a reviewable decision and proof that the record was not mutated.

OSS capabilities used

What makes this workflow possible

Runtime Action AuthorizationExecution-Scoped DelegationFail-Closed Tool EnforcementAgent Execution EvidenceTenant-Scoped Audit