Markdown Editor

AI Bill of Materials Template (CycloneDX ML-BOM, SPDX AI)

AI-BOM: scope, models, datasets, software, agents, tools, prompts, training config, lineage, risk and VEX annotations, CycloneDX 1.7 and SPDX 3.0.1 mapping

AI & Dữ liệuĐầy đủCycloneDX 1.7 (ECMA-424 2nd ed.) ML-BOM; SPDX 3.0.1 AI and Dataset profilesbom
Mở trong editorTải .md

Cách dùng: Use it when customers, security or regulators need to know exactly which models, datasets, tools and prompts an AI system is built from. Fill the scope and the model and dataset inventories first, then the format mapping that your BOM generator must follow. The main pitfall is a hand-written BOM that is not regenerated in the release pipeline and drifts from what actually ships.

Xem trước

AI Bill of Materials: [AI system or product name] [version]

An AI Bill of Materials (AI-BOM) is a machine-readable and human-readable inventory of everything an AI system is built from: models, datasets, software dependencies, agents, tools, prompts, training and evaluation configuration, lineage and known risks. This template describes the inventory and maps each field to CycloneDX 1.7 (standardised by Ecma International as ECMA-424, 2nd edition, December 2025) machine learning BOM (ML-BOM) objects and to the AI and Dataset profiles of SPDX 3.0.1. Replace every [bracketed] value and every row marked Example. Worked examples use a customer support assistant built on a fine-tuned language model with retrieval and tool access.

Document control

FieldValue
Document ID[AIBOM-SUP-001]
AI system and version[Name] [version]
Release artefact[Container image digest, package ID or deployment ID]
BOM serial number[urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx]
Machine-readable formatsExample: CycloneDX 1.7 JSON (primary); SPDX 3.0.1 JSON-LD (on request)
Version[0.1]
Status[Draft / In review / Approved / Superseded]
Owner[@ai-platform-owner]
Approvers / reviewers[@security-lead], [@legal-licensing], [@ml-lead]
Last updatedYYYY-MM-DD
Classification[Internal / Confidential / Shareable under NDA / Public]
Related documents[Model card], [Datasheets for datasets], [Software SBOM], [Supply chain security assessment], [AI Act technical documentation]

Approvals

RoleNameDecisionDate
AI platform owner[@name][Approved / Changes requested]YYYY-MM-DD
Security lead[@name][Decision]YYYY-MM-DD
Licensing or legal counsel[@name][Decision]YYYY-MM-DD
Data protection officer (if personal data in datasets)[@name][Decision]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]First draft
1.0YYYY-MM-DD[@name]Example: Baseline for release 2.3.0
1.1YYYY-MM-DD[@name]Example: Added retrieval index and embedding model after architecture change

Contents

1. Purpose and scope

1.1 Purpose

[State the purpose. Example: "This AI-BOM records every model, dataset, software component, tool and prompt that the Support Assistant 2.3 depends on, so that security, licensing and compliance teams can answer three questions quickly: what is inside, where did it come from, and is any part of it affected by a known vulnerability or restriction."]

1.2 Drivers

DriverWhat the BOM must support
Example: Supply chain securityFast lookup of affected releases when a model, library or dataset is reported as compromised
Example: Licence complianceProof that model weights and datasets are used within their licence terms
Example: Customer due diligenceA shareable subset for enterprise customers under NDA
Example: Regulatory documentationEvidence for technical documentation under the EU AI Act and the software bill of materials required by the Cyber Resilience Act
[Driver][Need]

1.3 Scope

In scopeOut of scope
Example: All models loaded at runtime, including third-party hosted models called through an APIModels used only by individual developers for experiments
Example: Datasets used to train, fine-tune, evaluate or index retrievalRaw production logs not used for training
Example: Runtime software of the inference service and agent runtimeCorporate IT tooling
Example: System prompts, tool definitions and agent configurationUser prompts at runtime
[Item][Item]

1.4 Depth and completeness

State how deep the inventory goes and what "complete" means for this release. Software dependencies follow the depth of the software SBOM (normally all transitive dependencies). For models, list every model that executes in the request path plus every model whose output was used to build an artefact that executes (for example a teacher model used for distillation, or a model used to label training data). For datasets, list every dataset that influenced weights, thresholds or a retrieval index.

InventoryCompleteness targetKnown gaps
ModelsExample: All runtime models and all direct ancestorsTraining data of the third-party base model is only partly disclosed by its supplier
DatasetsExample: All training, evaluation and retrieval datasetsNone
SoftwareExample: All transitive dependencies of the inference imageGPU driver version taken from the host, not the image
Agents, tools, promptsExample: All tools registered with the agent runtime[Gap]

2. System overview

[Describe the system in two or three sentences. Example: "Support Assistant answers customer questions in the help centre. A router model classifies intent, a fine-tuned chat model generates answers grounded in a retrieval index of help articles, and an agent runtime can call three tools: order lookup, refund request and ticket creation."]

ComponentBOM entries it introduces
Example: Intent routerMDL-002, DS-003
Example: Chat modelMDL-001, MDL-004 (base), DS-001, DS-002
Example: RetrievalMDL-003, DS-004
Example: Agent runtimeAGT-001, TOOL-001 to TOOL-003, PRM-001
Example: Output guardrailMDL-005, PRM-002
[Component][Entries]

3. Model inventory

3.1 Models

IDName and versionType and taskSupplier and provenanceLicenceHash (algorithm: value)LocationModel card
MDL-001 (Example)support-chat-ft 2026.09Generative language model; chatIn-house fine-tune of MDL-004Inherits MDL-004 licence termsSHA-256: [hex]Internal model registryMC-SUP-001
MDL-002 (Example)intent-router 1.4.0Encoder classifier; text classificationIn-house, trained from scratch on DS-003ProprietarySHA-256: [hex]Internal model registryMC-SUP-002
MDL-003 (Example)[embedding model] [version]Embedding model; sentence embeddingsThird party, downloaded from [hub] at revision [commit]Apache-2.0SHA-256: [hex]Mirrored artefact storeSupplier card [link]
MDL-004 (Example)[base model] [version]Generative language model; base for MDL-001Third party, [supplier][Supplier licence name and URL]SHA-256: [hex]Mirrored artefact storeSupplier card [link]
MDL-005 (Example)[moderation classifier] [snapshot]Hosted API model; content safetyThird party, called over APICommercial terms [contract ID]Not available (hosted); snapshot ID recordedProvider endpointSupplier documentation
[MDL-nnn][Name] [version][Type; task][Supplier; how obtained][SPDX licence ID or reference][alg: value][Location][Link]

3.2 Model attributes

Record the attributes that a consumer needs to judge fitness and risk. Keep detailed performance figures in the model card; record here only what identifies and characterises the model.

IDArchitecture familyLearning approachInputs / outputsParameter countQuantisation or formatAutonomySensitive personal data used
MDL-001 (Example)Transformer, decoder-onlySelf-supervised base, supervised fine-tuneText / text[n]Safetensors, bf16Acts through tools with human confirmation for refundsNo
MDL-002 (Example)Transformer, encoder-onlySupervisedText / label[n]ONNX, int8NoneNo
[MDL-nnn][Family][Approach][In / out][n][Format][Autonomy][Yes / No / Unknown]

3.3 Integrity and signing

[Describe how model artefacts are verified before load. Example: "Every model file is pulled from the internal registry by digest; the registry rejects artefacts without a valid signature from the release pipeline; the inference service verifies the SHA-256 digest at start-up and refuses to serve on mismatch. Formats that can execute code on load are not accepted."]

4. Dataset inventory

4.1 Datasets

IDName and versionPurposeSource and collectionLicence or termsPersonal data and legal basisSizeDatasheet
DS-001 (Example)support-dialogues 2026.08Fine-tuning MDL-001Resolved support chats, EU and UK customers, 2024 to 2026Proprietary, internal usePseudonymised; legitimate interest assessment LIA-07; opt-out honoured[n] dialoguesDSH-SUP-001
DS-002 (Example)support-eval-gold 3.0Evaluation of MDL-001Curated by support experts, double-labelledProprietarySynthetic and consented items only[n] itemsDSH-SUP-002
DS-003 (Example)intent-labels 1.4Training MDL-002Ticket subjects labelled by vendor [name]Proprietary; vendor contract [ID]Pseudonymised[n] itemsDSH-SUP-003
DS-004 (Example)help-articles index 2026-10-01Retrieval contentPublic help centre articlesOwn contentNone[n] chunksDSH-SUP-004
[DS-nnn][Name] [version][Purpose][Source][Licence][Basis][Size][Link]

4.2 Processing and quality

IDPreprocessingAnonymisation methodKnown bias or noiseUpdate mechanismAvailability
DS-001 (Example)Deduplication, language filter, removal of payment data by pattern and classifierNamed entity replacement; identifiers hashed with rotating saltUnder-represents non-English customersMonthly snapshot, frozen per training runInternal only
DS-004 (Example)HTML stripped, chunked at heading boundariesNot applicableArticles may lag product changes by up to one releaseNightly rebuildPublic source
[DS-nnn][Steps][Method][Bias][Mechanism][Availability]

4.3 Third-party and undisclosed training data

[Record what is known about the training data of third-party models. Example: "The supplier of MDL-004 publishes a summary of training content but not a dataset list. The summary is archived as evidence E-07. No claim is made in this BOM about the composition of that data beyond what the supplier states."]

5. Software dependencies

The full software inventory is the software SBOM [SBOM serial number], produced by the release build as described in the supply chain security assessment (security/supply-chain-security). This section highlights the components that matter most for AI behaviour and AI-specific attacks.

IDComponentVersionRolePackage URL or identifierLicenceNotes
SW-001 (Example)[Inference server][x.y.z]Serves MDL-001pkg:[type]/[name]@[version]Apache-2.0Pinned by digest
SW-002 (Example)[ML framework][x.y.z]Runtime for MDL-002pkg:[type]/[name]@[version][Licence]
SW-003 (Example)[Tokeniser library][x.y.z]Tokenisation for MDL-001pkg:[type]/[name]@[version][Licence]Must match training tokeniser
SW-004 (Example)[Vector database][x.y.z]Stores DS-004 embeddingspkg:[type]/[name]@[version][Licence]
SW-005 (Example)[GPU runtime][x.y]Accelerator runtime[Vendor identifier]ProprietaryHost-provided, see 1.4
[SW-nnn][Component][Version][Role][purl][Licence][Notes]

6. Agents, tools and prompts

6.1 Agents

IDAgentVersionModel usedTools allowedAutonomy levelSpecification
AGT-001 (Example)support-agent2.3.0MDL-001TOOL-001, TOOL-002, TOOL-003Refunds require customer confirmationAGENT-SPEC-SUP-001
[AGT-nnn][Agent][Version][Model][Tools][Level][Link]

6.2 Tools and servers

IDToolProviderInterfaceVersionPermissionsData accessed
TOOL-001 (Example)order_lookupIn-houseMCP server, revision 2026-07-281.2.0Read orders of the authenticated customerOrder history
TOOL-002 (Example)refund_requestIn-houseInternal REST API3.1.0Create refund up to [amount] after confirmationPayment reference
TOOL-003 (Example)create_ticketThird party help deskVendor API[API version]Create ticketConversation summary
[TOOL-nnn][Tool][Provider][Interface][Version][Permissions][Data]

6.3 Prompts and policies

IDArtefactVersionHashOwnerSpecification
PRM-001 (Example)System prompt, support agent14SHA-256: [hex][@prompt-owner]PROMPT-SPEC-SUP-001
PRM-002 (Example)Output guardrail policy6SHA-256: [hex][@safety-owner]Guardrails specification GRD-SUP-001
[PRM-nnn][Artefact][Version][Hash][@owner][Link]

7. Training and evaluation configuration

IDModel producedCode commitData inputsKey hyperparametersCompute and energyEvaluationRun record
TRN-001 (Example)MDL-001[repo]@[commit]DS-001 snapshot 2026-08-31LoRA rank [r], learning rate [lr], epochs [n][n] GPU hours; [n] kWh estimatedDS-002, report EVR-SUP-014Experiment [ID]
TRN-002 (Example)MDL-002[repo]@[commit]DS-003 1.4Batch [n], epochs [n][n] GPU hoursHold-out split of DS-003Experiment [ID]
[TRN-nnn][Model][Commit][Data][Parameters][Compute][Evaluation][Link]

Evaluation results that support release decisions are kept in the evaluation plan and model validation report. The BOM records only which evaluation datasets and harness versions were used, so that a consumer can tell whether two releases were evaluated on the same basis.

IDEvaluation harnessVersionDatasetsMetrics recorded
EVL-001 (Example)[Harness name][x.y.z]DS-002Answer correctness, groundedness, refusal rate
[EVL-nnn][Harness][Version][Datasets][Metrics]

8. Model lineage

ChildRelationshipParent or inputEvidence
MDL-001 (Example)Fine-tuned fromMDL-004TRN-001 run record
MDL-001 (Example)Trained onDS-001TRN-001 data manifest
MDL-001 (Example)Tested onDS-002EVR-SUP-014
MDL-002 (Example)Trained onDS-003TRN-002 data manifest
DS-004 (Example)Generated byMDL-003 (embeddings)Index build log
[Child][Relationship][Parent][Evidence]

9. Vulnerability and risk annotations

9.1 Vulnerabilities and advisories

IDAffectsSourceDescriptionStatusJustification or actionDate
VUL-001 (Example)SW-003[CVE-YYYY-NNNNN]Unsafe deserialisation in tokeniser loaderNot affectedLoader path not used; tokeniser shipped as plain JSONYYYY-MM-DD
VUL-002 (Example)MDL-003Supplier advisory [ID]Revision [commit] withdrawn after report of tampered weightsFixedPinned to clean revision; digest re-verifiedYYYY-MM-DD
[VUL-nnn][Entry][Source][Description][Not affected / Affected / Fixed / Under investigation][Justification]YYYY-MM-DD

9.2 AI risk annotations

IDAffectsRiskRatingControlReference
RSK-001 (Example)DS-001Personal data memorisation in fine-tuned weightsMediumPseudonymisation, memorisation tests before releaseRed team report RT-2026-004
RSK-002 (Example)MDL-004Upstream licence restricts some usesLowUse case reviewed against licence; record LIC-11Licence review LIC-11
RSK-003 (Example)TOOL-002Excessive agency through refund toolHighConfirmation step, amount limit, rate limitAgent specification AGENT-SPEC-SUP-001
[RSK-nnn][Entry][Risk][Low / Medium / High / Serious][Control][Link]

10. Distribution format mapping

10.1 Format choice

FormatVersionSerialisationUse
CycloneDX1.7 (ECMA-424, 2nd edition)JSON, schema bom-1.7.schema.jsonExample: Primary format; attached to every release
SPDX3.0.1 with Core, Software, AI and Dataset profilesJSON-LDExample: Produced on customer request

SPDX 3.1 was published as a release candidate in January 2026; do not adopt it for distribution until a final release is announced at spdx.dev, and record the decision in the revision history when you do.

10.2 Field mapping

Inventory fieldCycloneDX 1.7SPDX 3.0.1
Model artefactcomponents[] with type machine-learning-modelai_AIPackage (subclass of software_Package)
Datasetcomponents[] with type data, details in data[] (componentData, type dataset)dataset_DatasetPackage
Name, version, suppliername, version, suppliername, software_packageVersion, suppliedBy
Hashhashes[] (alg, content)verifiedUsing with Hash (algorithm, hashValue)
Licencelicenses[]hasDeclaredLicense and hasConcludedLicense relationships
Package URLpurlsoftware_packageUrl
Learning approachmodelCard.modelParameters.approach.typeai_typeOfModel, ai_informationAboutTraining
Task, architecturemodelCard.modelParameters.task, architectureFamily, modelArchitectureai_domain, ai_typeOfModel
Inputs and outputsmodelCard.modelParameters.inputs[], outputs[] (format)ai_informationAboutApplication
Training datasetsmodelCard.modelParameters.datasets[] (inline componentData or ref)trainedOn relationship
Evaluation datasetsmodelCard.modelParameters.datasets[] with a reference to the evaluation datasettestedOn relationship
Performance metricsmodelCard.quantitativeAnalysis.performanceMetrics[] (type, value, slice, confidenceInterval)ai_metric, ai_metricDecisionThreshold
Limitations and ethicsmodelCard.considerations (technicalLimitations, ethicalConsiderations, fairnessAssessments)ai_limitation, ai_safetyRiskAssessment
Energy usemodelCard.considerations.environmentalConsiderationsai_energyConsumption
Hyperparametersformulation[] or properties[]ai_hyperparameter
Autonomyproperties[] (no dedicated field)ai_autonomyType
Sensitive personal datadata[].sensitiveData (dataset), properties[] (model)ai_useSensitivePersonalInformation, dataset_hasSensitivePersonalInformation
Dataset collection and processingdata[].description, data[].governancedataset_dataCollectionProcess, dataset_dataPreprocessing, dataset_anonymizationMethodUsed
Dataset bias and noisedata[].description or properties[]dataset_knownBias, dataset_datasetNoise
Dataset size and availabilityproperties[]dataset_datasetSize, dataset_datasetAvailability
Data classificationdata[].classificationdataset_confidentialityLevel
Lineage (base model)pedigree.ancestors[], dependencies[]ancestorOf / descendantOf relationships
Runtime dependencydependencies[] (ref, dependsOn)dependsOn relationship
Tools and agentscomponents[] or services[] with properties[]software_Package or Element with usesTool relationship
Model card linkexternalReferences[] with type model-cardexternalRef
Vulnerabilitiesvulnerabilities[] with analysis (VEX state and justification)Security profile vulnerability and VEX assessment relationships

10.3 Properties used for gaps

When neither format has a dedicated field, use name-value properties with a registered namespace so consumers can parse them.

Property nameMeaningExample value
[org]:ai:autonomy (Example)Autonomy level of an agentconfirm-before-act
[org]:ai:prompt-version (Example)Version of the system prompt bound to an agent14
[org]:ai:mcp-revision (Example)MCP specification revision of a tool server2026-07-28
[Name][Meaning][Value]

11. Example machine-readable excerpt

The excerpt shows one model, one dataset and the dependency between them in CycloneDX 1.7 JSON. Values are examples.

{
  "bomFormat": "CycloneDX",
  "specVersion": "1.7",
  "serialNumber": "urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79",
  "version": 1,
  "metadata": {
    "timestamp": "2026-10-01T09:00:00Z",
    "component": {
      "type": "application",
      "bom-ref": "app-support",
      "name": "support-assistant",
      "version": "2.3.0"
    }
  },
  "components": [
    {
      "type": "machine-learning-model",
      "bom-ref": "MDL-002",
      "name": "intent-router",
      "version": "1.4.0",
      "hashes": [{ "alg": "SHA-256", "content": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08" }],
      "licenses": [{ "license": { "name": "Proprietary" } }],
      "modelCard": {
        "modelParameters": {
          "approach": { "type": "supervised" },
          "task": "text-classification",
          "architectureFamily": "transformer",
          "modelArchitecture": "encoder-only",
          "datasets": [{ "ref": "DS-003" }],
          "inputs": [{ "format": "string" }],
          "outputs": [{ "format": "string" }]
        },
        "quantitativeAnalysis": {
          "performanceMetrics": [{ "type": "macro-F1", "value": "0.91", "slice": "all-languages" }]
        },
        "considerations": {
          "technicalLimitations": ["Lower accuracy for messages shorter than three words"]
        }
      }
    },
    {
      "type": "data",
      "bom-ref": "DS-003",
      "name": "intent-labels",
      "version": "1.4",
      "data": [
        {
          "type": "dataset",
          "name": "intent-labels",
          "classification": "confidential",
          "description": "Ticket subjects labelled by an external vendor; pseudonymised",
          "governance": { "owners": [{ "organization": { "name": "[Organisation]" } }] }
        }
      ]
    }
  ],
  "dependencies": [
    { "ref": "app-support", "dependsOn": ["MDL-002"] },
    { "ref": "MDL-002", "dependsOn": ["DS-003"] },
    { "ref": "DS-003", "dependsOn": [] }
  ]
}

12. Generation and update process

12.1 Generation

StepOwnerToolingOutput
1. Collect software SBOM from buildCI pipelineExample: SBOM generator from the lockfile and image layersSoftware SBOM
2. Export model and dataset metadataML platformExample: Registry export job reading model and dataset registriesModel and dataset fragments
3. Export agent, tool and prompt registryAgent platformExample: Configuration export with hashesAgent fragment
4. Merge and resolve referencesCI pipelineExample: BOM merge toolCombined AI-BOM
5. ValidateCI pipelineSchema validation against CycloneDX 1.7 and SPDX 3.0.1Validation report
6. Sign and attachRelease pipelineExample: Signed attestation bound to the release digestSigned AI-BOM
7. PublishRelease managerArtefact store and trust portalPublished AI-BOM

12.2 Update triggers

Regenerate the AI-BOM and increase its version on any of the following events, and record the change in the revision history:

  • a model, dataset, prompt, tool or agent configuration changes version;
  • a dependency is added, removed or upgraded in the software SBOM;
  • a vulnerability or risk annotation changes status;
  • a supplier publishes new information about a third-party model or dataset (for example a revised training content summary or licence);
  • a dataset is withdrawn or a data subject request changes its content.

12.3 Quality checks

CheckRuleAction on failure
Example: Every model has a hash or a hosted snapshot ID100%Block release
Example: Every model has at least one training or provenance record100% for in-house modelsBlock release
Example: Every dataset has a licence or terms entry100%Block release
Example: Every tool has a version and permission scope100%Block release
Example: Unknown values carry a reason100%Warn and assign owner
[Check][Rule][Action]

13. Consumers and sharing policy

ConsumerViewChannelConditions
Example: Internal security and incident responseFullArtefact storeRole-based access
Example: Enterprise customersRedacted: models, licences, dataset categories, vulnerabilitiesTrust portalNDA; on request
Example: Market surveillance or notified bodyFull, on reasoned requestSecure transferLogged release
Example: PublicSummary: model names and suppliers, licencesWebsiteNone
[Consumer][View][Channel][Conditions]
ElementFullRedactedSummary
Model names, versions, suppliersYesYesYes
HashesYesYesNo
Dataset names and sourcesYesCategories onlyNo
System prompts and guardrail policyHash onlyNoNo
Tool permissionsYesScope summaryNo
Vulnerability annotationsYesYesFixed items only

Retention: keep each published AI-BOM for as long as the release it describes is supported, plus [n] years, and at least as long as any technical documentation that references it.

14. Glossary and references

TermMeaning in this document
AI-BOMInventory of the models, data, software and configuration an AI system depends on
ML-BOMCycloneDX term for a BOM that describes machine learning models and datasets
LineageThe chain of models and datasets from which a model was derived
VEXVulnerability Exploitability eXchange: a statement of whether a product is affected by a vulnerability
Hosted modelA model run by a third party and reached through an API, whose weights are not available
ProfileIn SPDX 3, a set of classes and properties for one domain, such as AI or Dataset

References:

Standard and licence note

Based on the CycloneDX 1.7 specification (OWASP CycloneDX, standardised as ECMA-424, 2nd edition, December 2025) and the SPDX 3.0.1 specification (Linux Foundation SPDX project), including its AI and Dataset profiles. Field and property names are cited for interoperability; all explanatory text is original and no specification text is reproduced. Both specifications evolve: check the current versions at cyclonedx.org and spdx.dev before changing a BOM generator. Template licence: MIT.

Template liên quan