Skip to content

Systems and records

AI agent governance: access scopes, approvals and audit logs

By SourceX Editorial · Reviewed by Noah Loul ·

Short answer

AI agent governance is the set of owners, rules and controls that decide which company systems an AI agent can reach, with what scopes, which actions need human approval, what is logged and for how long, and what is never in scope. Settle it per system before connecting: least-privilege scopes enforced by the system, approval for irreversible or external actions, identifier-level logs, and a written exclusion list.

Key takeaways

  • Govern an agent's access per system, in writing, before the first connection, using one control sheet with scope, approval trigger, log fields, retention and exclusions.
  • Enforce scopes in the downstream system and the agent runtime, not in the prompt; tool self-descriptions are hints, not controls.
  • Require human approval for money, external messages, deletions, access changes and data leaving the company, and keep the trigger list short enough that approvers still read it.
  • Log identifiers, approvals and results rather than full record contents, and check platform default retention against what your audits and contracts need.
  • Give every agent a named sponsor, review its access quarterly, and retire it like a departing employee.
  • Agent access is not a data license: a connection does not by itself grant a vendor training rights.

What is AI agent governance?#

AI agent governance is the set of owners, rules and technical controls that decide which company systems an AI agent may reach, under which identity and scopes, which of its actions need a person to approve them, what gets logged, how long those logs are kept, and what is never in scope. It applies whether the agent is a vendor copilot, an internal build or an assistant connected through MCP.

It is narrower than AI governance as a whole. The NIST AI Risk Management Framework treats Govern as a cross-cutting function covering policies, roles, inventories and third-party risk for every AI system. Agent governance is the part of that program that turns policy into permissions: the scopes on a token, the deny rules in an agent runtime, the approval step in front of a refund.

It is also different from data governance for a licensing decision, which decides who approves releasing a copy of records to an outside developer, and from governance tooling, which records where data lives and moves. Those questions are covered in separate guides linked at the end. This page is about the live access an agent has to your systems of record.

Why does an agent need different controls from a person or an app?#

An agent needs its own controls because it decides at run time which tools to call, and that decision can be steered by the content it reads. OWASP's guidance for LLM applications calls the resulting risk Excessive Agency and traces it to three root causes: excessive functionality, excessive permissions and excessive autonomy.

A person with CRM access will not obey an instruction hidden in a support ticket. An agent might, which is why OWASP's Top 10 for Agentic Applications, published in December 2025, lists agent goal hijack, tool misuse, and identity and privilege abuse as separate risks. A conventional integration also behaves predictably: it calls the same endpoints every night. An agent with the same credentials can combine them in ways nobody tested.

Two design rules follow. First, enforce authorization in the downstream system, not in the prompt; OWASP calls this complete mediation. Second, act in the context of the user the agent works for, with the minimum privileges needed, rather than through one shared high-privilege account. On the token side, the MCP specification requires servers to accept only tokens issued for them and forbids passing a client's token through to upstream APIs.

  1. 01Your work records
  2. 02Personal details removed
  3. 03You approve the release
  4. 04Licensed to AI developers
How it works with SourceX: Your work records → Personal details removed → You approve the release → Licensed to AI developers.Illustrative

The agent access control sheet: one row per system#

The access control sheet is one table, filled per system, that records the agent's default scope, what triggers a human approval, what the log captures and for how long, and what is excluded. Fill it before the first connection and attach it to the approval for that agent. The rows below are a starting template for common business systems; replace the examples with your own objects and fields.

The agent access control sheet: one row per system
System (examples)Default agent scopeApproval triggerLog fields and retentionExcluded from scope
CRM (Salesforce, HubSpot)Read accounts, contacts, opportunities and activities the acting user can see; write only tasks and notesAny stage, amount or owner change; any bulk update; any email sent to a customerAgent ID, acting user, record IDs read or changed, before and after values on writes; keep for your incident review windowExported contact lists, marketing consent fields edited by the agent, partner-owned records
Service desk (Zendesk, Jira Service Management)Read tickets and macros; draft replies and internal notesSending a public reply, issuing a refund or credit, closing a ticket in bulkTicket IDs, draft ID, approver, sent or rejected, macro usedAttachments with ID documents or card images, tickets under legal hold
ERP and finance (NetSuite, QuickBooks)Read-only reports and transactions for named subsidiariesAny payment, journal entry, vendor bank detail change or credit memo, alwaysTransaction IDs, amounts, approver ID and time, result; keep with financial audit evidencePayroll, bank credentials, tax filings, other subsidiaries
Email and chat (Outlook, Gmail, Slack)Read the acting user's mailbox or named channels; create draftsEvery outbound message, forward or new channel inviteMessage IDs, recipients, draft or sent, approver; no message bodies by defaultExecutive, legal and HR mailboxes; private channels not named in the approval
File stores (SharePoint, Google Drive)Read named folders with existing sharing permissionsCreating external share links, moving or deleting filesFile IDs and paths, action, link type createdBoard, M&A, legal privileged and HR folders
HR and payroll (Workday, ADP)None by default; metadata only if a use case is approvedAny access at all, approved per use caseEvery query, with justification referenceCompensation, health, background check and performance records
Code and engineering (GitHub, Jira)Read repositories and issues in named projects; open pull requestsMerging, changing branch protection, editing secrets or CI settingsRepository, branch, PR ID, files changed, approverSecrets, production deploy keys, customer data fixtures
Field service (ServiceTitan)Read jobs, schedules and equipment history for named locationsDispatch changes, price changes, customer notificationsJob IDs, change made, approver, timeCustomer payment details, technician personal data beyond name

How should you set an agent's scopes?#

Set scopes by starting from nothing and adding the narrowest access each task needs, which is the NIST definition of least privilege applied to a process acting on a user's behalf. In practice that means five tiers, assigned per system and written into the control sheet.

Grant the tier through the system's own permission model, such as a dedicated integration user, a permission set or an OAuth scope, not through instructions to the agent. Under the MCP authorization model, a client should request only the scopes it needs, and a server can answer a call that needs more with an insufficient_scope error, so extra access is asked for at the moment it is needed rather than granted up front.

Then narrow again inside the agent runtime. Agent frameworks let you deny tools outright. In the Claude Agent SDK, a matching deny rule blocks a tool even in its most permissive mode, and a dontAsk mode turns every unplanned request into a denial, which suits a headless agent with a fixed tool list. Do not rely on a tool's self-description: the MCP specification treats annotations such as readOnlyHint as untrusted hints unless the server itself is trusted.

  • Tier 0, metadata only: object names, field lists, record counts and date ranges, no record contents. Use it for discovery and scoping.
  • Tier 1, read records: contents of named objects the acting user can already see.
  • Tier 2, draft: the agent writes to a draft, staging table or suggestion that a person publishes.
  • Tier 3, write with approval: the agent changes a system of record only after a named approver says yes.
  • Tier 4, never: listed in the exclusion column, enforced by a deny rule and by the system's own permissions.

Which agent actions should need human approval?#

Require approval for actions that are hard to reverse, that leave the company, or that change who can access what. The MCP specification says there should always be a human able to deny tool invocations and that clients should prompt for confirmation on sensitive operations; OWASP recommends human approval of high-impact actions, implemented in the downstream system or the tool itself.

Agent frameworks now make this a declared property of a tool. The OpenAI Agents SDK lets a tool set needs_approval, pauses the run until a person approves or rejects the call, and falls back to manual approval when a rule cannot safely read the arguments. That fail-closed behavior is the right default to ask any vendor about.

Keep the trigger list short. If every read needs a click, approvers stop reading. Approve categories of action, record each decision, and review the approval log monthly for anything approved too quickly or too often.

  • Money: payments, refunds, credits, price changes, vendor bank details.
  • External communication: emails, chat replies, social posts, notifications to customers or suppliers.
  • Deletion and bulk change: deletes, merges, mass updates above a set record count.
  • Access change: sharing links, role or permission edits, new connections, new scopes requested at run time.
  • Data leaving: exports, file downloads to a new location, any copy to a system outside the approved list.
  • First use: the first call to any tool the agent has not used under this approval.

What should an agent audit log record, and how long should you keep it?#

An agent audit log should let you reconstruct who acted, for whom, through which tool, on which records, with whose approval, and with what result, without storing a second copy of the records themselves. The MCP specification asks clients to log tool usage for audit; OWASP adds that logging limits damage even though it does not prevent it.

Watch the default payload. OpenAI's Agents SDK tracing is on by default and records the inputs and outputs of model calls and function calls unless trace_include_sensitive_data is turned off. That is useful while testing and risky in production, because the trace store becomes a new archive of customer and employee data with its own access and retention questions.

Set retention per log type, and check the platform default before you assume one. In Microsoft Purview, for example, Audit (Standard) records are kept for 180 days by default, Premium records for Exchange, SharePoint, OneDrive and Microsoft Entra ID one year for suitably licensed users, and records of non-user entities such as service principals a fixed one year. If your incident review, financial audit or contract terms need longer, configure it. Counsel should confirm periods set by law or contract.

  • Agent identity and version, plus the human sponsor.
  • Acting user or service context, and the scopes on the token used.
  • Tool or MCP server called, and the action.
  • Record identifiers read or changed, not full record bodies.
  • Parameters, redacted or hashed where they contain personal data.
  • Approval ID, approver and decision time for gated actions.
  • Result: success, error, denied by policy, rejected by approver.
  • Session or trace ID linking every step of one task.

What should stay out of an agent's reach?#

Some records should stay out of an agent's reach regardless of how useful they would be, either because the risk of a wrong action is too high or because your obligations to others do not allow it. Put them in the exclusion column, enforce them with deny rules and system permissions, and review the list whenever a new system is connected.

Exclusions protect against two different failures. One is the agent doing something harmful with access it should not have. The other is the agent's vendor receiving data your contracts or privacy notices do not permit you to share with that vendor. Access permissions answer the first; your contracts, notices and counsel answer the second.

  • Credentials, API keys, secrets and bank login details anywhere they are stored.
  • Payment card data and full bank account numbers.
  • Health, disability, background check and other sensitive employee records.
  • Compensation and payroll detail.
  • Legally privileged files, litigation folders and anything under a legal hold, for writes at minimum.
  • Board, M&A and investor materials.
  • Customer data whose contract forbids processing by new subprocessors or AI vendors.
  • Systems belonging to clients, partners or acquired entities not covered by the approval.

Who owns agent governance, and how often is access reviewed?#

Give every agent a named human sponsor who is accountable for its purpose, its access and its retirement, separate from the engineer who configures it. Microsoft Entra ID Governance, whose agent governance features Microsoft labels as preview, builds this into agent identities: sponsors are accountable for lifecycle decisions and access reviews, access package assignments can expire unless the sponsor extends them, and sponsorship passes to the sponsor's manager when the sponsor leaves.

The NIST AI RMF asks for the same structure in tool-neutral terms: an inventory of AI systems (GOVERN 1.6), defined human roles for overseeing them (GOVERN 3.2), and policies for third-party AI risk (GOVERN 6.1). For agents, the inventory row is the control sheet.

Review access on a fixed cycle, quarterly for most agents and at every change of vendor, model, MCP server or use case. Remove scopes nobody used in the period. Retire an agent the way you would offboard an employee: revoke tokens, delete its integration user, and keep its logs for the retention period.

Who owns agent governance, and how often is access reviewed?
RoleOwnsSigns off onReview cadence
Agent sponsor (business owner)Purpose, use case and continued needInitial approval, extensions, retirementQuarterly access review
System owner (CRM, ERP, service desk)Scopes and exclusions for that systemEach row of the control sheet for the systemAt every scope change
Security or ITIdentity, tokens, deny rules, log pipelineConnection of new MCP servers and vendorsMonthly log and approval spot check
Privacy or legal counselExclusions driven by law, notices and contractsVendor terms and log retention periodsAt vendor change or new data category
Named approversGated actions in daily workIndividual approvalsMonthly review of approval patterns

How does agent access relate to licensing your data?#

Giving an agent access to your systems is not the same as licensing your data. An agent reads records live, for your own work, under your permissions. Licensing delivers a defined, prepared copy to an outside developer under a contract that limits its use. A connection or OAuth approval does not by itself grant a vendor rights to train on what the agent reads; whether a vendor may retain or reuse that data depends on its terms, which counsel should review.

The governance work overlaps in useful ways. The control sheet is also an inventory of which systems hold which records, and clean audit logs show what has already been shared and with whom. Both help when a licensing question comes up later.

SourceX is the enterprise data transaction layer for AI: it runs rights review, contracting, data preparation, delivery and payment for businesses licensing operational data to AI developers. The company approves exactly what is released, once per deal, and sees what would leave before anything is shared. That is a separate decision from any agent connection, made through a contract rather than a token.

Frequently asked questions

What is the difference between AI governance and AI agent governance?

AI governance covers every AI system a company uses or builds: policies, roles, risk assessment and third-party oversight. AI agent governance is the operational part for agents that act in your systems, and it sets their identities, scopes, approval steps, logs and exclusions. A company can have an AI policy and still have no control over what a connected agent can change in its CRM.

Should an AI agent use its own identity or the user's?

Use the identity of the user the agent works for when it acts on that user's behalf, with the narrowest scopes needed, so it can never see more than that person can. Give an autonomous background agent its own dedicated identity with its own permissions and a human sponsor. Avoid one shared high-privilege service account for all agent work, because it defeats both least privilege and the audit trail.

Does connecting an agent through MCP make it secure by default?

No. Authorization is optional in the MCP specification, and when it is used it relies on OAuth scopes and audience-bound tokens that you still have to configure narrowly. The specification recommends a human able to deny tool calls and audit logging of tool use, but the client and server you choose decide whether those happen. Treat each MCP server as a new integration that needs a row in your control sheet.

How long should AI agent audit logs be kept?

Long enough to cover your incident investigation window, financial audit evidence and any period set by contract or law, and no longer than needed, because the logs themselves can hold personal data. Check your platform's default first: some audit services keep standard records for 180 days unless you configure longer. Counsel should confirm any period set by regulation.

Do agent approvals slow everything down?

They do if every read needs a click. Gate categories of action that are hard to reverse or leave the company, such as payments, outbound messages, deletions, access changes and exports, and let reads within approved scopes run. Review approval patterns monthly so routine approvals can become narrower standing rules.

Sources

  • The NIST AI Risk Management Framework treats Govern as a cross-cutting function and includes subcategories for inventorying AI systems (GOVERN 1.6), defining human roles for oversight of AI systems (GOVERN 3.2) and managing third-party AI risks (GOVERN 6.1). Source
  • OWASP LLM06:2025 Excessive Agency names excessive functionality, permissions and autonomy as root causes and recommends minimal extensions and permissions, running in the user's context, human approval of high-impact actions, authorization enforced in downstream systems, and logging. Source
  • OWASP published the Top 10 for Agentic Applications in December 2025; its risks include agent goal hijack (ASI01), tool misuse (ASI02) and identity and privilege abuse (ASI03). Source
  • In the MCP 2026-07-28 specification, authorization is optional; when used, MCP servers act as OAuth 2.1 resource servers, clients should request only the scopes they need, servers can signal missing scope with insufficient_scope, and tokens must be audience-bound to the server. Source
  • MCP servers must reject tokens not issued for them and must not pass a client's token through to upstream APIs. Source
  • The MCP tools specification says there should always be a human in the loop able to deny tool invocations, that clients should confirm sensitive operations and log tool usage for audit, and that tool annotations such as readOnlyHint are untrusted hints unless the server is trusted. Source
  • NIST defines least privilege as restricting the access of users, or processes acting on their behalf, to the minimum necessary to accomplish assigned tasks. Source
  • The Claude Agent SDK evaluates hooks, deny rules, ask rules, the permission mode, allow rules and then a runtime callback; a matching deny rule blocks a tool even in bypassPermissions mode, and dontAsk mode turns every prompt into a denial. Source
  • The OpenAI Agents SDK lets a tool declare needs_approval, pauses the run until a person approves or rejects the call, and requires manual approval when an approval rule cannot safely inspect the arguments. Source
  • OpenAI Agents SDK tracing is on by default and, by default, records the inputs and outputs of model generations and function calls unless trace_include_sensitive_data is set to false. Source
  • Microsoft Entra ID Governance (agent governance is labelled preview) assigns each agent identity a human sponsor accountable for its purpose, lifecycle and access reviews; access package assignments can expire, and sponsorship moves to the sponsor's manager when the sponsor leaves. Source
  • Microsoft Purview keeps Audit (Standard) records for 180 days by default; its default Audit (Premium) policy keeps Exchange, SharePoint, OneDrive and Microsoft Entra ID records for one year for suitably licensed users (180 days otherwise); records of non-user entities such as service principals are kept for a fixed one year. Source

Related resources

See if your company qualifies

A short company assessment. No data uploads are needed.

See if your company qualifies