Existe, à extraire

Hermes

La passerelle sait signaler à un plugin chaque tour terminé avec une réponse (point d'accroche post_llm_call) : c'est la source recommandée, captée en temps réel. Ses enregistrements de requêtes (request_dump), eux, ne sont écrits qu'en cas d'erreur d'API, sauf si HERMES_DUMP_REQUESTS est activé, et doivent être envoyés sans leurs en-têtes.

Ce qui peut déjà être perdu

Ce que la passerelle est configurée pour conserver sur le poste ou le serveur qui l'exécute. À vérifier avant tout : les enregistrements de session peuvent être purgés par rotation.

Qui s'en charge : Vous, ou la personne qui administre la passerelle.

Ce que vous pouvez faire vous-même

  1. 1Pour un envoi automatique de chaque tour de conversation, suivre la recette Hermes du guide /journaux/agent.md : un plugin écrit chaque tour au format attendu, puis un envoi quotidien le transmet. Ne pas déposer tel quel le résultat de « hermes sessions export » : un objet par session, avec tous ses messages, n'est pas le format attendu.
  2. 2Pour les enregistrements de requêtes (request_dump) : repérer le dossier des journaux de la passerelle. Chaque enregistrement porte l'horodatage, l'identifiant de session, le modèle et le contenu échangé (invite, réponse, appels d'outils).
  3. 3Exporter en JSONL — un objet JSON par ligne : c'est la forme reconnue automatiquement à l'import.
  4. 4Ou envoyer ces enregistrements directement par l'API d'ingestion (voir /journaux/connecteur) : sans en-têtes, ils sont validés d'office dès lors qu'aucune ligne n'a échoué. N'envoyer que les nouveaux enregistrements.

À transmettre à votre prestataire

Copiez ce texte tel quel : il contient tout ce dont votre prestataire a besoin, y compris les pièges de format.

Installer le plugin de référence de Conforms dans la passerelle Hermes, selon la recette Hermes du guide /journaux/agent.md : il se branche sur le point d'accroche post_llm_call et écrit chaque tour terminé avec une réponse au format attendu (timestamp, agentId, sessionId, eventType, input, output, model) dans une file locale ; le script envoyer.mjs transmet ensuite cette file une fois par jour par l'API d'ingestion, avec la clé de l'organisation posée dans un fichier protégé, jamais recopiée ailleurs. À défaut, les enregistrements de requêtes (request_dump) peuvent être envoyés tels quels, un par ligne, mais seulement si HERMES_DUMP_REQUESTS est activé (sinon ils ne couvrent que les erreurs d'API) et après avoir RETIRÉ request.headers : ils portent l'en-tête d'autorisation du fournisseur (tout ou partie de sa clé), et l'API refuse tout enregistrement qui les contient.

Ce qui ressemble à la bonne réponse, et n'en est pas une

  • Les en-têtes de requête (request.headers)

    Ils portent l'en-tête d'autorisation du fournisseur, avec tout ou partie de sa clé. Ils ne servent à rien pour l'audit et ne doivent jamais quitter votre système — l'analyse ne les lit pas, même présents, mais un fichier propre est un fichier sans secret.

  • Le seul journal d'usage agrégé (compteurs de jetons, durées)

    Utile pour la facturation, mais il ne contient ni la question ni la réponse : il ne permet pas d'analyser la conformité du contenu.

Ce que vous verrez après le dépôt

Par la recette recommandée, chaque tour terminé avec une réponse devient une entrée, avec la demande, la réponse finale et le modèle (les relectures internes de Hermes sont ignorées ; une partie seulement des échecs d'appel au modèle passe par le plugin, classée en erreur d'après le texte de Hermes (classement indicatif), et seuls certains autres (erreur d'API après nouvelles tentatives, erreur client définitive) laissent un request_dump ; un tour simultané à un autre peut manquer) ; la correspondance des champs est à confirmer au premier envoi, et l'identifiant de session est conservé avec l'entrée. Par les enregistrements de requêtes, chaque requête devient une entrée : la session sert de fil, le contenu échangé et les appels d'outils sont analysés, le raisonnement chiffré reste ignoré faute d'être lisible.

Conforms est un outil d'aide à la conformité : il documente et vous oriente, il ne constitue pas un avis juridique. Un journal complet rend votre système auditable — ce qui n'est pas la même chose qu'être conforme.