Agent Oracle

Field Notes: AI Agents Are Moving From Tool Access to Transaction Boundaries

Last updated: 8/28/2026

Back to blog
Naomi Akello avatarNaomi Akello 7 min read
Cover image for Field Notes: AI Agents Are Moving From Tool Access to Transaction Boundaries
AI-assisted, human-reviewed. Drafted with AI research tools from public sources and edited by our team. How we build these →

AI agent design has spent considerable time on tool access: which systems an agent can reach, which functions it can call, and which credentials it may use. That was the right starting point. It is no longer sufficient.

The more consequential distinction is now between preparing a business action and committing it. An agent may safely assemble a purchase order, calculate a refund, draft a customer response, or propose a production change. Sending, issuing, posting, or deploying that work crosses a transaction boundary. The same tool may support both sides.

Field observation: mature teams are beginning to govern these boundaries directly. They are separating read, draft, validate, approve, commit, and verify rather than treating a tool call as one indivisible act.

What changed: tool calls acquired business side effects

Early agents mostly retrieved information or generated text. Errors were visible and comparatively easy to reverse. Connected agents now operate inside customer support, finance, procurement, sales, and engineering systems. Their outputs can alter records, trigger downstream workflows, create contractual expectations, or move money.

This changes the unit of control. A permission such as “may use the CRM” says little about what matters. Reading an account, drafting a note, changing an opportunity stage, and sending a binding renewal proposal all involve the CRM, but they do not carry the same exposure.

Function-level permissions improve matters, yet still miss context. A refund function may be acceptable for a documented duplicate charge but unacceptable when ownership is disputed. A deployment function may be safe in a test environment and materially risky in production. The business effect depends on the object, state, amount, recipient, environment, evidence, and timing.

The important question is not merely, “Can the agent call this tool?” It is, “What becomes true if this call succeeds?”

The operating model: six stages around a commitment

A useful transaction model separates the work surrounding a commitment. Not every workflow needs six separate systems, but each stage should be identifiable in policy and logs.

StageAgent activityPrimary control
ObserveRead records, messages, policies, and current stateData access and provenance
PrepareDraft the proposed action and required payloadSchema and scope constraints
ValidateCheck facts, policy, conflicts, and preconditionsDeterministic rules and fresh reads
ApproveObtain authorization when the policy requires itNamed approver and bounded approval
CommitExecute the side effect onceRestricted credential and idempotency
VerifyConfirm the resulting state and record evidenceReceipt, reconciliation, and exception handling

This structure prevents a common failure: allowing an agent to infer that permission to prepare implies permission to commit. It also creates useful recovery points. If validation fails, the proposed action can be repaired without causing an external effect. If commitment succeeds but verification fails, the system can investigate before retrying.

What it means in practice: approvals must bind to an exact action

A generic “looks good” is a weak control. Between approval and execution, records may change, recipients may be substituted, or the agent may regenerate parameters. Approval should therefore bind to a specific action package.

That package should include:

  • Action: the precise operation, such as issuing a refund rather than “resolve the case.”
  • Object: the account, invoice, order, environment, or record affected.
  • Parameters: amount, currency, recipient, message, destination, or configuration delta.
  • Evidence: the records and policy clauses supporting the action.
  • Validity conditions: facts that must remain true when execution occurs.
  • Expiry: the point after which approval must be requested again.

If any material field changes, the approval no longer matches the proposed transaction. This resembles signing a specific document rather than granting broad permission to create an unspecified document later.

The same principle applies when no human approval is required. The policy engine can authorize an exact package, but the commit service should reject a different payload.

A worked example: resolving a disputed duplicate charge

Consider an agent handling a customer’s claim that an invoice was charged twice. A weak design gives the agent access to billing records and a refund endpoint. A stronger design treats the refund as a transaction with preconditions.

Preparation

The agent identifies two charge records, links them to the same invoice, checks their settlement status, and drafts a refund against the suspected duplicate. It also drafts a customer message, but sends nothing.

Validation

Deterministic checks confirm that both charges are settled, the proposed refund does not exceed the duplicate charge, no prior refund exists, and the destination is the original payment method. A fresh read confirms that another operator has not resolved the case.

Approval and commitment

Policy may permit automatic execution when the duplicate is unambiguous and every precondition passes. An ownership conflict, prior adjustment, mismatched currency, or uncertain payment mapping routes the package to a human. The approval covers one refund against one charge for one amount.

Verification

After execution, the agent retrieves the processor’s result, records the transaction identifier, updates the case, and only then sends the customer message. If the refund request times out, it checks whether the transaction occurred before retrying. An idempotency key prevents a second refund.

The language model contributes interpretation and orchestration. Deterministic services enforce arithmetic, uniqueness, state transitions, and one-time execution. Neither component is asked to do the other’s job.

The hidden engineering issue: time separates intent from state

Agents often reason from a snapshot and act later. During that interval, the world changes. Inventory is allocated, an invoice is paid, a ticket is reassigned, code advances, or an approver withdraws consent. This is a classic time-of-check versus time-of-use problem.

Three controls are especially useful:

  1. Versioned reads: record the version or timestamp of material objects used in the decision.
  2. Commit-time preconditions: require the target system to verify that critical state still matches expectations.
  3. Short-lived authorization: expire approvals and capability tokens instead of treating them as permanent.

For example, an agent may prepare a production change against configuration version 41. If version 42 exists at commit time, the operation should stop rather than silently apply assumptions from an obsolete state. The agent can then re-read, assess the delta, and seek renewed authorization if necessary.

Where teams misplace controls

One mistake is placing every safeguard inside the prompt. Prompts can guide reasoning, but they should not be the sole enforcement mechanism for binding actions. An agent instructed “never refund more than the original charge” still requires a service-side limit.

A second mistake is using human review without decision structure. Reviewers who see only a generated summary may approve confidently while missing a changed account number or unsupported premise. The interface should expose the proposed action, evidence, policy result, and changed fields.

A third mistake is treating rollback as universal. Database updates may be reversible; sent emails, disclosed data, supplier orders, and customer promises often are not. Compensation is not the same as reversal. Cancelling an order may incur cost and still leave the supplier aware of it.

A fourth mistake is retrying ambiguous failures. If a commit request times out, the agent must determine whether the side effect happened. Blind retries can create duplicate tickets, payments, messages, or deployments.

How to design the boundary

Start with effects, not tools. For each workflow, identify the moment an external party, authoritative record, production system, or financial position changes. Then classify that effect by reversibility, detectability, exposure, and required evidence.

A practical design sequence is:

  1. Map each side effect and its downstream consequences.
  2. Split preparation from execution using separate functions or credentials.
  3. Define machine-checkable preconditions for commitment.
  4. Specify when policy can approve automatically and when a named role must intervene.
  5. Bind authorization to the exact payload and current object versions.
  6. Add idempotency, receipts, and post-commit reconciliation.
  7. Test stale state, partial failure, duplicated requests, and conflicting operators.

This does not require approval for every action. Excessive gating produces queues, habitual clicking, and shadow automation. Low-impact, observable, reversible actions can proceed automatically. Strong friction belongs at boundaries where mistakes become difficult to contain.

What remains unresolved

Cross-system transactions remain difficult. An agent may update a CRM, create an invoice, notify a customer, and schedule fulfillment. Those systems rarely share one atomic commit. If the third step fails, the first two may already be authoritative. Workflow designers must choose between compensation, manual repair, or delayed commitment.

Delegated authority is another open issue. A manager may approve a category of actions, but encoding the exact scope, duration, substitutions, and revocation rules is harder than capturing a single approval. Agents also need a reliable way to recognize when accumulated small actions create material aggregate exposure.

Finally, verification is uneven. Some systems return durable receipts; others return only a success message. Some external effects cannot be independently observed. An agent that cannot verify the resulting state should not report certainty merely because a tool returned without error.

The emerging pattern is clear even while these details mature: access control governs entry, but transaction boundaries govern consequence. Agents become operationally trustworthy when they can prepare broadly, commit narrowly, and prove what happened afterward.

This post was drafted with AI assistance and reviewed against our editorial policy before publication. Corrections are made at the source, on the page, with the date shown.

AI agentstransaction boundariesagent governanceworkflow designhuman approvalenterprise AI
Share this post

Rate this article

No ratings yet

Discussion

Comments are moderated. Read our editorial policy.