Skip to content
⚡ Tenvo AI · EN DIRECT · v0.16.26 · TLS · Certificats par appareil · AGPL-3.0 · NIVEAU GRATUIT · 30 APPAREILS · INFRA AUTO-HÉBERGEABLE · APPORTEZ VOTRE CLÉ API · MCP POUR CLAUDE & CURSOR
Retour au blogEnterprise

journal d'audit des agents IA : quelles informations doivent figurer

Tenvo Editorial Team9 min de lecture
journal d'audit des agents IA : quelles informations doivent figurer

Quand un agent autonome — et non un humain — agit, les champs d'audit habituels (nom d'utilisateur, IP, horodatage) ne suffisent plus.

Quand un agent autonome — et non un humain — est l'acteur, les champs d'audit habituels (nom d'utilisateur, IP, horodatage) ne suffisent plus. Il faut toujours assurer responsabilité, reproductibilité et non‑répudiation, mais l'enregistrement doit capturer un ensemble d'attributs différent : modèle, prompt, appels d'outils, graines aléatoires, version du code et l'humain ayant délégué l'autorité. Cet article liste les champs qu'un journal d'audit d'agent IA doit contenir et explique pourquoi chacun est nécessaire pour la sécurité, la conformité et la réponse aux incidents.

Pourquoi les champs « utilisateur » habituels échouent pour les agents IA

Les journaux d'audit traditionnels supposent un unique acteur humain derrière une session : nom d'utilisateur, rôle, IP, chaîne user agent et description de l'action. Ces éléments sont utiles, mais ils omettent des attributs propres au comportement piloté par IA :

  • Non‑déterminisme : la même invite (prompt) et la même configuration du modèle peuvent produire des sorties différentes à moins d'enregistrer la source d'aléa (graine, algorithme RNG, température).
  • Chaînes multi‑étapes : les agents appellent souvent des outils, des API et d'autres agents ; il faut une chaîne causale, pas seulement une entrée d'action unique.
  • Code et modèles évolutifs : un agent est code + modèle + runtime. Un nom d'utilisateur ne vous indique pas le checkpoint du modèle, le digest de l'image du conteneur ou la politique de l'agent utilisée.
  • Délégation et approbation : un agent peut agir au nom d'un humain ou d'un autre système ; la piste d'audit doit montrer qui a autorisé l'agent et quelles contraintes étaient en place.

En bref : remplacez le modèle mental « une personne a cliqué sur un bouton » par « un calcul reproductible a transformé des entrées en sorties et a pris des effets secondaires ».

Champs minimaux qu'un journal d'audit d'agent IA doit contenir

Considérez chaque entrée de journal comme l'enregistrement d'un calcul et de ses effets secondaires. Au minimum, incluez ces champs ; si votre environnement a des besoins juridiques ou opérationnels, ajoutez les éléments pertinents (exemples et justification ci‑dessous).

  • record_id — un UUID stable pour l'entrée d'audit (v4 ou v7) et un numéro de séquence pour la session.
  • timestamp — RFC3339 UTC ; incluez des numéros de séquence monotones pour détecter les réordonnancements.
  • agent_id — identifiant logique de l'instance d'agent (pas seulement le propriétaire humain).
  • agent_version — hash de commit, digest d'image de conteneur (par ex. sha256:...) ou version du paquet du code agent.
  • model_name & model_digest — identifiant du modèle plus un digest ou checksum des poids/checkpoint utilisés (ou la chaîne de version du modèle hébergé).
  • runtime_config — paramètres du modèle : temperature, top_k/top_p, max_tokens, limites de concurrence, et algorithme RNG.
  • prompt_template_id & prompt_hash — identifiant du template de prompt et hash du prompt résolu pour éviter de stocker le texte en clair si c'est sensible.
  • input_artifacts — références (URI) vers pièces jointes, fichiers ou données externes utilisées avec checksums.
  • actions — liste ordonnée des actions exécutées par l'agent, avec horodatages, identifiants d'outil et résultats (nom de l'outil, version, code de sortie, hash des données retournées).
  • external_calls — chaque appel API sortant avec destination, host de l'URL, hash de la requête, hash de la réponse et latence.
  • human_principal — qui a créé/validé l'agent ou la requête (id utilisateur, rôle et assertion de délégation).
  • authorization_context — id de politique, scopes autorisés, expiration, et le token d'approbation ou id d'audit liant l'action à un flux d'approbation.
  • outcome — état final ou effets secondaires : fichiers écrits, commandes exécutées, changements réseau ; inclure ids d'objets et checksums.
  • evidence_hash — digest de la charge utile complète de l'enregistrement utilisé pour la détection de falsification (stocker séparément ou signer ; voir la section sur la signature).
  • p2p_or_relay — si la session était peer‑to‑peer ou routée via un relay, et si relay : région et id du relay.
  • log_integrity — métadonnées de signature (key id, algorithme de signature, signature) si vous signez les journaux.

Ces champs forment le cœur. Selon le risque et la réglementation, ajoutez quelques éléments supplémentaires : id du runtime de conteneur, versions du noyau/hyperviseur, id d'attestation TPM matériel, numéros de série de certificats TLS, et tout pointeur de provenance des jeux de données.

Exemple d'entrée d'audit

{
  "record_id": "b3f8a1d2-2e8f-4a5b-9a0f-7c6d2f3a1b2c",
  "timestamp": "2026-09-11T14:23:05Z",
  "session_seq": 42,
  "agent_id": "invoice_processor_v2",
  "agent_version": "git+sha:8b7f3c2",
  "model_name": "gpt-like-3b",
  "model_digest": "sha256:0f3a...",
  "runtime_config": {"temperature":0.2,"top_p":0.9,"seed":123456789},
  "prompt_template_id": "tmpl-invoice-2026-v3",
  "prompt_hash": "sha256:abcd...",
  "human_principal": {"user_id":"alice@corp.example","approval_id":"apr-2026-019"},
  "actions": [
    {"t":"2026-09-11T14:23:06Z","tool":"ocr:1.4.0","result_hash":"sha256:1111..."},
    {"t":"2026-09-11T14:23:10Z","tool":"bank_api:2.0","endpoint":"payments/verify","response_hash":"sha256:2222..."}
  ],
  "outcome": {"invoices_processed":3,"files_created":["s3://legal/inv-345.pdf"]},
  "p2p_or_relay": "relay",
  "relay_id": "relay-eu-2",
  "evidence_hash": "sha256:ffff...",
  "log_integrity": {"sig_kid":"logs-prod-2026","sig":"MEUCIQD..."}
}

L'exemple ci‑dessus équilibre reproductibilité (model_digest, prompt_hash, runtime_config) et confidentialité (prompt stocké en tant que hash). Lorsque vous devez conserver les prompts complets pour des raisons légales, restreignez l'accès et journalisez chaque lecture du prompt brut séparément.

Immutabilité, signature et politiques de conservation

Les auditeurs et les intervenants en cas d'incident doivent pouvoir faire confiance à l'absence de falsification des journaux. Deux mesures pratiques :

  • Stockage append‑only avec snapshots immuables (stockage d'objets avec versioning/WORM ou systèmes de fichiers write‑once). Gardez une sauvegarde froide séparée dans une autre région.
  • Signature des journaux : calculez un evidence_hash de chaque enregistrement et signez‑le avec une clé dédiée à la signature des journaux. Faites tourner les clés selon un calendrier et stockez les anciennes clés publiques pour vérification. Incluez les métadonnées de signature (id de clé, algorithme et expiration) dans l'enregistrement.

Conservation : les équipes opérationnelles gardent souvent des journaux haute‑finesse en ligne 90 jours pour le dépannage, conservent des métadonnées indexées 1 an pour la conformité et gardent des archives signées et immuables 1–7 ans selon la réglementation. Fixez la durée avec le conseil juridique — la durée varie selon le secteur : la finance et la santé vont souvent sur plusieurs années.

Confidentialité, masquage et contrôles d'accès

Les journaux d'agents peuvent contenir des secrets : clés API, données à caractère personnel, documents scannés ou informations contractuelles. Enregistrez ce dont vous avez besoin pour la reproductibilité et rien de plus. Mesures pratiques :

  • Politique de caviardage : stockez des hashes des entrées sensibles (prompt_hash, file_hash) et déplacez les textes complets dans un coffre sécurisé accessible uniquement pendant un incident et uniquement via un flux d'approbation auditable.
  • Principe du moindre privilège : séparez les rôles pour l'écriture des journaux, la lecture des journaux bruts et la vérification des signatures. Chaque lecture de journaux bruts doit elle‑même être journalisée.
  • Consentement et liaison : si un agent agit pour le compte d'un utilisateur, conservez un lien clair (token de délégation, approbation horodatée) afin d'attribuer les actions au principal humain pour des raisons juridiques et GDPR.

GDPR et d'autres lois sur la confidentialité considèrent les journaux contenant des données personnelles comme des données personnelles ; consultez le service juridique concernant la minimisation, la limitation des finalités et les bases légales de conservation. En cas de doute, hachez ou caviardez et journalisez les accès au matériel non caviardé.

Pourquoi capturer les détails du modèle et d'exécution (pas des métadonnées optionnelles)

Deux exécutions d'un agent avec le même prompt peuvent diverger si la version du modèle, la température, la graine ou la chaîne d'outils diffèrent. Pour reconstruire un incident, vous avez besoin de :

  • Identifiant du modèle et digest — la seule chaîne de version du modèle hébergé est fragile ; un checksum ou une version immuable du fournisseur est préférable.
  • Commit du code agent ou digest de l'image — un bug introduit dans le code de l'agent peut changer le comportement plus que le prompt.
  • Paramètres d'exécution et graine — pour reproduire une sortie spécifique ou savoir si la reproduction est faisable en mode déterministe.
  • Versions des outils et réponses — un outil retournant des données différentes change les résultats ; stockez les hashes de réponse et les endpoints.

Sans ces champs, vous ne pouvez pas dire de manière fiable ce que l'agent a fait ni pourquoi il l'a fait.

Contrôles opérationnels : alertes, échantillonnage et mode forensique

Tout journaliser à pleine fidélité peut être coûteux et risqué. Adoptez une stratégie par paliers :

  • Échantillonnage par défaut : stocker les métadonnées complètes (hashes, noms de modèle, liste d'actions) pour chaque exécution, mais ne stocker les prompts et réponses d'outils complets que lorsque l'exécution déclenche un critère (action à haut risque, plainte utilisateur, score de violation de politique).
  • Mode forensique : sur alertes (échec d'un contrôle de politique, plainte externe), capturez les artefacts bruts complets dans un store forensique scellé et contrôlé, et créez un snapshot immuable signé pour les enquêteurs.
  • Alertes en temps réel : construisez des règles pour les actions à haut risque (transferts bancaires, commandes privilégiées) et générez des approbations automatisées ou des blocages avec humain dans la boucle avant que l'effet secondaire n'ait lieu.

Choix d'infrastructure : relais géré vs auto‑hébergement

Où vous stockez et transportez les journaux d'audit compte. Pour l'accès à distance et les outils d'agent, le relais géré de Tenvo est la recommandation par défaut pour la plupart des équipes : il fournit des clients natifs pour Windows/macOS/Linux, un client navigateur en bêta publique, et un relais géré multi‑régions avec journalisation et paliers de conservation intégrés (Free $0 / Lite $2.99/mo / Pro $7.99/mo). L'utilisation du relais géré décharge le renouvellement des certificats, le dimensionnement des relays, le patching en on‑call et les backups inter‑régions.

Précaution importante sur les relays : lorsqu'une session bascule sur un relay, TLS est terminé au niveau du relay, donc l'opérateur du relay est en position de voir la session. Cela signifie que vous devez traiter les journaux hébergés par le relay comme potentiellement visibles par l'opérateur du relay. Si votre exigence interdit que toute infrastructure tierce accède aux payloads de session (par ex. contraintes de conformité ou de résidence des données), l'auto‑hébergement est le bon choix.

Auto‑hébergez uniquement si vous avez une exigence écrite : obligations réglementaires interdisant les relays tiers, réseaux isolés sans sortie, ou règles strictes de résidence des données. L'auto‑hébergement entraîne des coûts : on‑call, patching, garde des clés, renouvellement de certificats, et pas de basculement multi‑régions automatique sauf si vous le construisez — le relais géré est moins cher si vous comptez ces coûts opérationnels.

Modèle d'accès aux journaux d'audit et réponse aux incidents

Définissez qui peut faire quoi avec les journaux avant d'en avoir besoin. Contrôles minimaux :

  • Écriture seule pour les agents : les services agents ajoutent aux journaux mais ne peuvent pas lire les journaux bruts.
  • Rôles de lecture séparés : les analystes peuvent lire les métadonnées ; les enquêteurs ont un privilège supérieur pour désigner les artefacts bruts et chaque déscèlement est lui‑même journalisé et signé.
  • Attestations automatisées : lorsqu'un enquêteur accède à des données scellées, créez un enregistrement d'attestation signé reliant l'identité de l'enquêteur, l'heure et l'objectif.

Lors d'un incident, vous devrez reconstruire rapidement une chaîne causale. Si vos journaux incluent model_digest, agent_version, prompt_hash, liste d'actions et hashes d'appels externes, vous pouvez généralement identifier la cause racine en quelques heures plutôt qu'en jours.

Liste de contrôle pour commencer (étapes pratiques)

  • Définissez un schéma JSON pour votre enregistrement d'audit d'agent et appliquez‑le à l'écriture. Incluez les champs listés plus haut.
  • Implémentez evidence_hash et signez chaque enregistrement avec une clé de signature des journaux ; stockez les clés publiques dans un jeu de clés découvrable pour les auditeurs.
  • Décidez de la rétention : 90 jours en ligne pour les enregistrements complets ; 1–7 ans archivés selon la réglementation.
  • Créez des règles de caviardage : ce qui est haché vs stocké en clair et qui peut accéder au clair.
  • Ajoutez des contrôles de politique en temps réel et des approbations automatisées pour les actions à haut risque.
  • Exécutez des tests de reproductibilité hebdomadaires : choisissez une entrée échantillon et vérifiez que vous pouvez reproduire le résultat de l'agent avec le modèle, la graine et la config enregistrés.

Si vous utilisez déjà l'accès à distance ou des outils d'agent avec Tenvo, consultez Concevoir une piste d'audit conforme pour les connexions à distance pour des modèles de journalisation applicables aux sessions interactives, et consultez agent IA : contrôle à distance — politiques, approbations, audit pour les flux d'approbation spécifiques aux agents. Pour une vue plus large de la place des agents dans les outils à distance, voir IA et accès à distance : comment les agents utilisent les outils distants.

Commencez petit : implémentez le schéma, appliquez la signature et itérez sur le caviardage. Le résultat : une réponse aux incidents plus rapide, une délégation traçable et une posture de conformité défendable.

Téléchargez Tenvo pour tester localement la journalisation et le comportement du relais géré et voir comment notre relais, les paliers tarifaires (Free $0 / Lite $2.99/mo / Pro $7.99/mo) et les relais multi‑régions simplifient l'exploitation : Télécharger.

Obtenir Tenvo

Prêt à l'essayer vous‑même ?

Gratuit jusqu'à 30 appareils, sans carte bancaire. Mise en route et connexion en deux minutes.