Skip to main content
MeshAI can record whether an application reports that it disclosed an AI interaction or marked AI-generated content. The evidence is attached to OpenTelemetry spans, evaluated by governance policies, and retained with the span audit trail.
These signals prove what MeshAI received in telemetry. They do not prove that a disclosure was visible to a person, that a content mark is valid, or that an application complies with Article 50. Treat missing attributes as missing evidence, not proof of non-compliance.

Record disclosure evidence

Add the following attributes to the span that represents the generated output: The names use MeshAI’s provisional reverse-domain namespace while the relevant OpenTelemetry semantic conventions are not standardized.
Python
Send the attributes on the output span rather than on an unrelated parent span. MeshAI evaluates the evidence on the span where it appears.

Enable evidence checks

Create policies from these built-in templates:
  • article-50-ai-disclosure-evidence
  • article-50-content-marking-evidence
The checks are observe-only. They record evaluation results for governance review but do not block proxy traffic. This avoids treating an absent telemetry attribute as proof that a user-facing control was absent.

Record the served model

For an auditable GPAI model inventory, emit the standard gen_ai.response.model attribute when the provider returns the model identifier it actually served. MeshAI stores that value separately from the requested model.
Python
Inventory rows have one of two attribution sources:
  • response: the emitter supplied gen_ai.response.model.
  • request_fallback: MeshAI only knows the requested or directly reported model. This does not confirm the exact version served by the provider.
See the Compliance API to query or export the inventory.

Generate an evidence pack

Professional and higher plans can generate an Article 50 recorded-evidence pack from the dashboard or API. In the dashboard, open Governance → Compliance, choose a 24-hour, 7-day, or 30-day window, then click Generate evidence pack. The dashboard does not request the report until you click Generate. It presents recorded gaps first, followed by the disclosure and content-marking track summaries and a compact model inventory. Any retention clamp, request-fallback attribution, or truncation warning remains visible. Click Download JSON to create a dated JSON file in your browser from the generated report. The download does not make a separate export request. For automation, call GET /api/v1/compliance/article-50/evidence-pack with the governance:read scope. See the Compliance API for date-range behavior and response semantics.
The report’s applicability is not_determined and its coverage is unquantified. A passing track means MeshAI recorded passing evaluations without recorded failures in the effective window. It does not prove that the obligation applies, that every output was observed, or that the user-facing control worked.
The evidence pack reports an explicit status for each track:
  • check_not_configured: no enabled check or evaluation was recorded
  • no_recorded_evidence: no passing evidence was recorded
  • gaps_recorded: one or more evaluated interactions recorded a failure
  • evidence_recorded: passing evidence was recorded with no recorded failures
An interaction can appear in both pass and fail counts if multiple policies disagree about the same span. Start with the gaps array and the track statements rather than treating counts as a compliance score. Requested dates are clamped to retained telemetry. The report preserves both requested and effective dates and sets retention_clamped when they differ.

Evidence boundary

Keep supporting application evidence alongside MeshAI’s telemetry, including screenshots or UX tests for disclosures and verifier output for content credentials. MeshAI provides the received telemetry, policy evaluation, timestamps, and attribution needed to join those records into an audit package. Hash-chain heads and checkpoint receipts in the pack cover policy evaluations and audit events only. They do not provide integrity coverage for token usage records or the model inventory.