Marshal — an agent ledger¶
Marshal keeps one versioned record of every AI agent in an organization, whatever platform it was built on. It reads the agent definitions teams already produce: Databricks bundles, Copilot Studio agents, Bedrock templates, Agentforce metadata, agent code and the open standards. For each agent it records what model it asks for, what tools and data it can reach, and who it acts as. Every value says where it came from, and nothing is guessed.
Try the live demo Get started GitHub

What it does¶
- Inventory of every agent across platforms, with versions, deployments, and each record's completeness.
- Risk-ranked review: pull requests that change an agent get a comment that lists permission escalations, new write tools and removed guardrails first.
- Drift and freshness: compares what is live with what was shipped, and shows how recently each record was confirmed and by which channel.
- Dependencies: "who uses this tool, this knowledge source, this permission?" Entities match exactly, so this works within each platform today; matching the same API across platforms is the next milestone.
- Translation between formats, with a fidelity report computed by reading the result back.
- Portability scores for moving an agent to another platform, from a community-maintained capability matrix.
- No shared secrets: pipelines push records authenticated by their CI provider's OIDC token. Marshal never connects to agent platforms.

How it runs¶
Pipelines you already run record each agent: a pull request records the proposed definition and gets a comment ranking its changes, a deploy records what was shipped, and an optional scheduled export records what is live in a web designer. See the GitHub Action, Jenkins and Azure DevOps and Deployment.
Try it in a minute¶
$ uvx --from 'marshal-ledger[server]' marshal demo
$ uvx --from 'marshal-ledger[server]' marshal web --db demo.sqlite
Or install it with pip install 'marshal-ledger[server]'. marshal demo downloads 28 public agent definitions from GitHub, each pinned to a commit, and records them with a short history: a proposed change, and a Copilot Studio agent that drifted after an edit in its web designer.

Formats¶
| Source | Read | Write | Writer tested by |
|---|---|---|---|
| Databricks Asset Bundles (Genie spaces, agent apps) | ✓ | ||
| AWS CloudFormation and CDK (Bedrock Agents, AgentCore) | ✓ | Bedrock Agents | cfn-lint |
| Microsoft Copilot Studio (agent workspaces, solutions) | ✓ | ✓ | published schema, partly |
| Salesforce Agentforce (Agent Script, legacy metadata) | ✓ | Agent Script | round trip |
| Google ADK Agent Config | ✓ | ✓ | published schema; loads in ADK |
| Vertex AI Agent Engine (saved API responses) | inventory | ||
| Python agent code (OpenAI Agents SDK, LangChain/LangGraph, Google ADK, CrewAI, direct model API calls) | ✓ | ||
| ADL, Open Agent Spec, AGNTCY OASF | ✓ | ✓ | round trip; published schema for ADL and Agent Spec |
| Marshal file: a hand-written definition for agents no reader covers | ✓ | ✓ | round trip |
Readers are tested against real, public definitions, pinned to a commit. No writer's output has yet been imported into a hosted platform; see how each format is verified.
Where to next¶
- Guides: inventory Copilot Studio agents, review agent changes in pull requests, track agents in code, detect drift, convert an ADK agent to Agent Spec, and an agent inventory for audit.
- How Marshal compares with platform admin tools, observability, AI gateways, registries and governance platforms.
- Getting started: read your own agents and record their history.
- Design: the problem, the architecture, and the security and network posture.
- GitHub Action, Jenkins and Azure DevOps: record agents from CI and comment on pull requests.
- Deployment and the security review: run the ingest API and web view for a whole organization.