Machine speed breaks after-the-fact review
Most SAP teams review privileged, service and technical accounts the same way they always have: export a log, open it in a spreadsheet, and read. Monthly, perhaps. After an incident, perhaps. When the auditor asks.
AI changes the scale of that job. Agents and scripts now talk to SAP directly - OData calls, RFC reads, GUI automation - running under service accounts, often overnight, at hundreds of events per minute. Most of it is exactly what you would expect. A discovery script reads table structures; a monitored account runs its routine jobs.
The problem is the rest. The one read that touched a sensitive table. The one action outside the account's normal pattern. In a log of thousands of events, that single item is invisible to the human eye - and by the time a manual review finds it, the trail is weeks cold.
There is a second problem underneath it: attribution. When an agent runs under a person's account, an auditor's first question is not "read or write?" - it is "who is accountable for that session?" A personal user running a script blurs segregation of duties and pins any error on someone who never actually typed anything.
Banning it does not make it stop
There is a tempting answer to all of this: do not let AI or scripting near SAP at all. It does not work. People are already automating the parts of their job they dislike most - the manual export, the copy into Excel, the same five clicks a hundred times a day. Close the sanctioned path and they take the unsanctioned one: a personal user, a local script, a tool on a laptop that IT never sees.
So the choice was never AI in SAP - yes or no. It is monitored, or shadow. A blanket ban does not remove the risk; it removes your visibility of it, and pushes the activity onto exactly the personal accounts that blur attribution the most.
And it is getting easier, not harder. Turning on SAP GUI Scripting is a single profile parameter (sapgui/user_scripting = TRUE); a small COM bridge lets an assistant drive a live SAP session; and practitioners already publish agents that open a transaction, read an ALV grid, and produce an Excel analysis in a couple of minutes.
It is also going native. SAP's own Joule assistant now embeds in SAP GUI for Windows, with frontend actions that read the current screen and run GUI scripts directly - AI operating SAP transactions as a vendor-supported feature, not a workaround. The capability is arriving whether or not your controls are ready for it.
A working agent, in one plain-language request
This is not theoretical. A practitioner points an assistant at a running SAP session over COM and types something close to plain English: list the connections, open the error monitor, read the messages, build me an Excel with the likely fixes. Two minutes later there is a ranked spreadsheet - message class, count, severity, the transaction to go and fix each one - for a migration run with fourteen thousand posting errors that would have cost a consultant an afternoon. People are publishing these walkthroughs openly, with the setup steps attached.
Today most of these agents are deliberately careful: read-only, running under the person's own session and permissions, no postings. But read the honest engineering notes that come with them and the trajectory is clear. The primitives - navigate, read a field, parse a grid, discover a screen - already drive most reporting transactions. What is still missing (system-specific field IDs, grid pagination, multi-screen posting flows) are gaps in reliability, not in intent. The next version wants deeper screen discovery, and eventually write-back.
That is the point where the control question stops being optional - and, conveniently, where read-only today gives you a calm window to put the account, the policy and the evidence in place before write-back arrives.
Review the exceptions, not the log
The fix is not more review. It is less - aimed at what actually matters.
Instead of reading everything an account did and judging it after the fact, you define upfront what the account is allowed to do. The system then surfaces only the activity that falls outside that line. Review stops being line-by-line archaeology and becomes exception handling: five things to look at, not five thousand.
Monitored accounts and a living policy
smartGRC watches privileged, service and AI accounts against a policy - a white list and a black list of transactions, scoped to an account or a set of accounts. When something falls outside the policy, the process runs itself:
White list
Transactions explicitly allowed for the account. Whitelisted activity passes silently - no review noise, no alert fatigue.
Off-list activity
Anything not on the white list (and anything on the black list) raises an exception the moment it happens.
Owner is notified
The responsible owner gets the exception in real time - not weeks later from a raw export.
Justify or whitelist
The owner explains what happened, or adds the transaction as a new, versioned rule. Every exception becomes documented history or a tighter policy.
The workflow above translates directly to how smartGRC handles a live SAP session. The diagram below shows what happens on every transaction the AI agent runs - from the initial call, through the policy check, to the three ways an off-list action can be resolved. The dashed green loop back to the policy is the key detail: each decision the owner makes teaches the boundary, so tomorrow's review is smaller than today's.
Every exception ends as documented history or a tighter policy. The rule set gets more accurate every time it is used.
Read left to right: the AI agent calls a transaction, smartGRC checks it against the policy in flight, and either lets it pass silently or raises an exception the moment it sees it. That exception lands on the owner - not next week, not in a monthly report. From there, three outcomes: whitelist (the transaction was legitimate and joins the rules for next time), justify (a one-off, explained and documented for the audit trail), or block (the account cannot run this again until someone signs off). Same interface, same evidence, whichever way the owner decides.
That fourth step is the one that compounds. The boundary you enforce is never a stale document - it is a rule set that gets more accurate every time it is used. And it runs in two modes that cover the whole picture:
What passes, what gets flagged
Take a service account used by an AI agent to explore and report on SAP data. The same account, the same "read-only" label - and three very different verdicts, decided by the policy, not by a reviewer's memory:
The whitelisted reads never reach a human. The exceptions land on the owner the same day - justify, or add as a rule. The black-list entries are stopped outright. The reviewer sees a handful of items, not the thousand that were fine.
Easy to miss, expensive to explain
Each of these looks unremarkable in a raw log, sitting between hundreds of harmless reads. That is exactly why they need to surface on their own.
What happens. An agent reads RFC destinations while "just exploring the system."
Why it matters. RFCDES can hold stored connection credentials. Bulk-reading it is a material finding for an auditor even when nothing is written - and in a raw log it looks identical to the harmless metadata reads around it. Nobody catches it until someone goes looking, by which point it is an incident, not a note.
What happens. A service account posts 500 documents in two minutes - part of a "process it in another system and write it back" pipeline.
Why it matters. Volume and velocity are the AI-specific signal. A human cannot post 500 records in two minutes, so the pattern itself is the red flag - and write-back is where a read-only story quietly becomes a maker of financial transactions. Caught in real time, it is a question to the owner; caught at audit, it is a reconciliation problem.
What happens. A "read-only" agent needs SAP GUI Scripting switched from reading the screen to actively driving it.
Why it matters. "Read the GUI" and "operate the GUI" are different control states. Flipping to active scripting is an ITGC change that opens macro-level control of any transaction the user can reach. An agent that quietly requires it has crossed from read to control - and that boundary is one an auditor will ask you to prove you enforced.
A boundary the system enforces - with an owner, a real-time exception, and a full trail for the auditor - is. That is the difference between having an AI usage policy and being able to prove it holds.
Monitor an AI agent the way smartGRC does it
Whitelist and blacklist per account. Exceptions to the owner in real time. A trail the auditor accepts. See the workflow in the smartGRC live demo.
Related reading
Intelligent SoD Reporting
How AI turns SAP access risk into audit-grade evidence. From 4 000 flags to a defensible shortlist.
Firefighter AI vs Human 6:0
Six months of production SAP S/4HANA firefighter data. Six control signals classical review misses.
30 AI Agents for SAP
The full catalog - Decision Co-pilot, Anomaly Detection, Firefighter Review, and 27 more.