Skip to content

An AI agent inventory for risk and audit reviews

Model risk, internal audit, security and AI governance reviews ask the same questions about every agent: what it is, what model it uses, what it can read and change, whose authority it acts with, who changed it and when, and whether what is running is what was approved. Marshal answers them from the agents' own definitions, across platforms, with a record of where each answer came from.

Marshal supplies evidence. It doesn't make an organization compliant with any regulation or framework, and its records are only as complete as the definitions it is given.

The questions, and where the answers come from

Question Command Field
Which agents exist, on which platforms? marshal ls agent, platform
What model does each use? marshal ls --provider anthropic, marshal read model.requested, model.provider
What can it change? marshal read, marshal deps tools[].scope, permissions.grants
Whose authority does it act with? marshal ls --identity on_behalf_of_user permissions.identity, principal
Who may use it? marshal read permissions.access
What changed, and how risky was it? marshal diff, marshal log ranked changes per version
Is what runs what was shipped? marshal status --check drift and freshness per environment
Which agents does a system's outage or breach affect? marshal deps "<system>*" dependents of a tool, knowledge source or grant

Provenance: what is known, and how

Every value is one of:

  • declared: the artifact states it, with the file and line;
  • derived: a rule computed it, and the rule is the basis, for example a tool's scope from the HTTP method or IAM action verb;
  • attested: a person wrote it in a Marshal file, for agents no reader covers, such as ones on an in-house platform;
  • unknown: the artifact doesn't say, with the reason.

Marshal never guesses. An agent whose identity can't be determined is unknown, not assumed safe, and its completeness score shows how much of the record is known. Low completeness is itself a finding.

History

Each version is identified by a hash of its definition. Every event records when it happened, the environment and the channel: ci for a push from a pipeline, with its repository, workflow and commit; scheduled for an export; manual for a local import such as this one:

$ marshal log cfn/hr-resources/HRAgent
2026-10-27 15:11:04Z  shipped   prod          v1  manual
2026-10-27 15:11:04Z  proposed  prod          v2  manual

The ingest API accepts pushes only from pipelines whose OIDC token it verifies, from repositories on its allowlist, so a record of a shipped event can be traced to the pipeline that shipped it. See Audit trail.

Exporting the evidence

marshal ls --output json and the web view's read-only JSON API (/v0/agents, /v0/agent, /v0/deps) give the inventory to a GRC tool or a spreadsheet. marshal read --hash-only records instructions as a hash, for ledgers that must not hold prompt text.

For the reviewers of Marshal itself, the security review covers what is stored, authentication, network posture, supply chain, retention and the audit trail.