AI Agent Governance

How to Write an AI Agent Subprocessor Disclosure Statement

An AI agent subprocessor disclosure statement documents which foundation models, tools, and connectors an agent invokes at runtime, what data each one accesses, and how those relationships map to the agent's permission scopes. It should be built from tool-call logs and agent identity records rather than maintained as a static, manually assembled vendor list.

What an AI Agent Subprocessor Disclosure Statement Is

In the context of an AI agent, a subprocessor is any model provider, tool, connector, or downstream service that the agent calls on to complete a task and that, in doing so, processes data on the organization's behalf. A subprocessor disclosure statement is the record that names those parties and explains what each one is allowed to see and do.

A complete disclosure answers four questions: which foundation models the agent calls, which tools and connectors it invokes, what categories of data pass to each of those parties, and which permission scopes or roles authorize that access. Because agents can chain multiple calls together in a single task, these four elements need to be documented together rather than as separate, disconnected lists.

Model Invocations

Foundation model providers and versions the agent calls at runtime.

Tool and Connector Map

Third-party APIs, plugins, and data stores invoked, tied to named subprocessor entities.

Data Category Linkage

What categories of data flow to each subprocessor, derived from observed behavior.

Permission Scope Mapping

Which agent roles and scopes enable access to each subprocessor.

Why Static Subprocessor Lists Don't Fit Autonomous Agents

Traditional subprocessor disclosures were written for a fairly stable set of vendors: a company signed a contract with a payment processor or an email service, and that relationship was reviewed and updated on a fixed schedule, often once a year. That model assumes the list of subprocessors changes slowly and predictably.

An AI agent does not behave that way. The same agent can invoke a different combination of models and tools depending on the task it is given, the connectors that have been enabled for it, and the way it chains calls together to reach an outcome. A tool that was never used in January may be invoked routinely by March simply because a new connector was added to the agent's toolset. A disclosure written from a fixed, manually maintained list will drift out of date the moment the agent's behavior changes, even if no one updates the contract paperwork.

This is why the disclosure needs to be grounded in evidence of what the agent actually does, meaning the runtime logs of every model call, tool call, and permission grant, rather than in a document assembled from memory or from procurement records alone.

Why this matters

A subprocessor list that only reflects signed contracts can miss tools an agent has been granted access to but has not yet been observed calling, or it can continue to list a connector long after it was removed from the agent's toolset. Runtime logs close both gaps.

Aligning Disclosure Structure With Governance Frameworks

Most organizations already have a vendor risk management or third-party governance process that reviews subprocessors on a recurring basis. An agent subprocessor disclosure should plug into that existing process rather than replace it, but the underlying evidence needs to come from the agent's own runtime activity so the review is checking something accurate.

In practice, this means structuring the disclosure around the same four elements described above and keeping each one traceable back to a source of record:

  • Model invocations traced to the agent's call logs, including provider and version.
  • Tool and connector calls traced to the agent's identity and the specific API or connector endpoint used.
  • Data categories traced to what was actually observed in request and response payloads, not just what a connector is theoretically capable of accessing.
  • Permission scopes traced to the roles and grants that authorized each call in the first place.

When each line of the disclosure can be traced back to a log entry or a permission record, the document becomes something a governance or legal reviewer can verify rather than simply accept on trust.

Building and Maintaining the Disclosure

Producing an accurate disclosure statement is less a writing exercise than a data pipeline exercise. The steps below outline how to build one from runtime evidence and keep it current as the agent's toolset evolves.

  1. 1

    Instrument runtime logging

    Capture every model call and tool invocation the agent makes, including the endpoint or provider, timestamp, and calling identity.

  2. 2

    Resolve subprocessor identities

    Map each API endpoint and connector back to a named subprocessor entity rather than leaving it as a raw technical address.

  3. 3

    Link observed data categories

    Associate the categories of data actually present in each call's payload with the subprocessor that received them.

  4. 4

    Cross-reference permission scopes

    Connect each subprocessor relationship to the specific role or scope that authorized the agent to make that call.

  5. 5

    Publish and version the disclosure

    Timestamp each version of the disclosure and note what changed since the previous version was published.

  6. 6

    Refresh on toolset change

    Regenerate the disclosure whenever a new model, tool, or connector is added to or removed from the agent's toolset, rather than waiting for a fixed calendar review.

Disclosure Checklist

Before publishing or updating a subprocessor disclosure statement, confirm that each of the following is in place and grounded in runtime evidence.

  • Every model provider and version invoked by the agent has been identified from call logs.
  • Every tool and connector call has been mapped to a named subprocessor entity.
  • Data categories observed in each call have been linked to the subprocessor that received them.
  • Each subprocessor relationship has been cross-referenced with the permission scope or role that authorized it.
  • The disclosure has a version number and timestamp reflecting the runtime data it was generated from.
  • A process exists to refresh the disclosure when the agent's toolset changes, not only on a fixed schedule.

Ground Your Subprocessor Disclosures in Runtime Reality

A disclosure statement is only as reliable as the runtime data behind it. Explore how runtime governance, agent identity, and permission controls can support accurate, verifiable AI agent subprocessor documentation.

Explore Runtime Governance