What Agent BOM captures
Drako parses your source code to extract:- Agents — every agent definition, including class-based and constructor-based agents.
- Tools — every
@tool-decorated function andTool()constructor, with permission classification (filesystem, network, code execution). - Models — every LLM model reference (
gpt-4o,claude-sonnet-*,gemini-*, etc.) found in string literals. - MCP servers — servers defined in
mcp.jsonor referenced viamcp://URIs. - Prompts — system prompts and instruction strings. Content is hashed, not exposed in output.
- Permissions — inferred from tool body analysis:
filesystem,network,code_execution,database. - Framework — detected framework name and version.
- Vendors — inferred from model names and SDK imports.
Running the BOM
Output formats
Use cases
Compliance documentation
Compliance documentation
The Agent BOM satisfies the EU AI Act Art. 11 requirement for technical documentation. A JSON or Markdown BOM gives auditors a point-in-time inventory of your AI system’s components — what agents exist, what tools they have access to, what models they use, and what permissions they require.
Security review
Security review
Use the permissions section of the BOM to scope a security review. A project where the BOM shows
code_execution and filesystem permissions warrants a deeper review than one limited to network read-only access.The BOM also surfaces vendor concentration — if the same vendor appears for models, framework, and infrastructure, that’s a risk the BOM makes visible.Change tracking
Change tracking
Commit the BOM to your repository and diff it on each pull request to see exactly what changed in your agent system’s inventory:New tools, new models, or new permissions appearing in a PR are immediately visible in the diff.
The BOM is also generated as part of every
drako scan run — it appears at the top of the scan output as the Agent BOM summary line. The drako bom command is for standalone inventory extraction without the governance scan.