Droit comptable français · septembre 2026

Génération augmentée par la recherche pour le droit comptable français : construction d'un corpus daté, d'un harness à outils et d'un banc de mesure

Résumé. Nous étudions à quelles conditions un grand modèle de langage (LLM) produit une réponse fiable en droit comptable français — juste et vérifiable. Nous construisons un corpus de 113 105 textes réglementaires datés, un agent muni de huit outils (le harness) et un banc de 567 questions à citations vérifiées, complété de 763 questions d'annales et de 214 questions sur pièces comptables. Quarante-neuf modifications du dispositif sont mesurées contre un critère fixé avant la mesure ; sept sont retenues. Treize modèles sont ensuite comparés sur un dispositif constant, puis deux d'entre eux sous quatre montages. La note varie de 6,4 à 18,3 sur vingt selon le modèle ; elle croît avec le tarif au token, pas avec le coût mesuré par question. Avec le harness, 98 à 100 % des citations se retrouvent dans le corpus quel que soit le modèle, contre 57 à 75 % sans lui (66 à 78 % une fois relues une à une les citations non rattachées), pour une note égale à celle d'une recherche web.

113 105 textes réglementaires567 + 763 + 214 questions49 leviers mesurés13 modèles notés en aveugle

1Introduction

Les grands modèles de langage (large language models, LLM) répondent aux questions de comptabilité, de fiscalité et d'audit avec une aisance qui ne renseigne pas sur la confiance qu'on peut leur accorder. Dans ce domaine, une réponse dépend d'un texte, d'une version de ce texte et d'une date ; une réponse plausible mais mal fondée est un risque professionnel. La question que nous posons est la suivante : comment s'assurer qu'un LLM donne une réponse fiable en droit comptable français, et à quel coût ?

Nous définissons une réponse fiable par deux propriétés mesurables. Elle est juste lorsqu'elle établit les éléments qu'un barème rédigé avant toute réponse attend. Elle est vérifiable lorsque chaque texte qu'elle cite existe, dans la version en vigueur à la date des faits, et peut être ouvert par un lecteur. L'abstention, quand le texte ne permet pas de répondre, est une troisième propriété attendue ; elle n'est pas mesurée ici (§ 6).

Nous posons deux hypothèses, une par décision : ce qu'on construit autour du modèle, et le modèle qu'on choisit.

  • H1 — « Le harness rend vérifiable sans coûter de justesse ». Un harness appuyé sur un corpus comptable daté rend les citations du modèle vérifiables, sans perdre de justesse face à une recherche web.
  • H2 — « Plus c'est cher, mieux c'est ». La justesse varie selon le modèle, et les modèles les plus chers répondent le plus juste.

Ces deux hypothèses sont formulées après les mesures qui les tranchent (§ 4.3, § 4.4) : leur lecture est exploratoire. Seuls les leviers de § 4.2 sont jugés contre un critère fixé avant la mesure (§ 3.2) ; ils répondent à une autre question, ce qui fait la qualité de la recherche.

Les contributions sont : un corpus daté et structuré du droit comptable, fiscal et d'audit français (§ 2.1) ; un agent à outils dont la sortie impose des citations résolubles (§ 2.2) ; un banc de mesure à trois sources de questions et une chaîne de correction calibrée (§ 2.3, § 3.4) ; et les mesures de la section 4.

2Matériel

2.1Le corpus

Le corpus rassemble 113 105 textes réglementaires, découpés à l'article et datés, issus de sept familles de sources publiques (tableau 1). Chaque article existe en autant d'enregistrements qu'il a eu de périodes de vigueur ; une date de référence fixe la version interrogée. Les enregistrements portent une nature parmi quatre : comptable, fiscale, audit, IFRS.

Tableau 1 — Composition du corpus
FamilleSourceNatureEnregistrements
Plan comptable général, règlements et commentaires ANCanc.gouv.frcomptable1 660
Règlement ANC 2020-01, comptes consolidésanc.gouv.frcomptable298
Doctrine fiscale, toutes versions depuis 2020BOFiPfiscale56 590
Normes d'exercice professionnelJORF, DILAaudit2 185
Code de commerce, CGI et annexes, LPF, textes de 1945 et 2012LEGI, DILAcomptable, fiscale, audit46 864
IFRS adoptées par l'Union européenneEUR-Lexifrs5 508

Construction de l'index. Le texte de chaque enregistrement est normalisé (minuscules, accents, élisions, racinisation française) puis découpé en segments de 220 mots avec un recouvrement de 40 mots ; l'index livré compte 186 478 segments, mémoires comprises — les énoncés d'examen passés et, depuis le 11 septembre 2026, les 134 segments de la mémoire des pièces (§ 4.2.1). Deux structures sont construites sur ces segments : une table de recherche plein texte (FTS5, notation BM25), une par nature, pour la recherche lexicale ; et une table de vecteurs (sqlite-vec) où chaque segment est représenté par son embedding, calculé par le modèle multilingue intfloat/multilingual-e5-small, pour la recherche dense par similarité cosinus. L'index enregistre le modèle d'embedding, sa dimension, la taille et le recouvrement des segments, de sorte qu'une recherche refuse un encodeur qui ne serait pas celui de la construction.

Traitement d'une requête (figure 1). Six étapes, dans cet ordre : (1) un routeur de référence — si la question nomme un article du PCG par son numéro, cet article est épinglé en tête ; (2) la réécriture — un LLM ajoute à la question les termes réglementaires qu'elle implique, sans la remplacer (mode extend, § 4.2.2) ; (3) deux canaux — la recherche lexicale BM25 sur les segments normalisés et la recherche dense sur les vecteurs, chacune renvoyant ses 50 meilleurs segments ; (4) la fusion des deux listes par rang réciproque (reciprocal rank fusion), puis l'agrégation des segments vers leurs enregistrements en retenant le meilleur score ; (5) la séparation des natures — lorsque la nature de la question est déclarée, le canal dense est filtré sur ses enregistrements et le canal lexical interroge la table de cette nature (§ 4.2.1) ; (6) le reranking — les meilleurs candidats sont relus par un cross-encoder, BAAI/bge-reranker-v2-m3, qui lit la question et le candidat conjointement et produit l'ordre final. Le profil de service reclasse 25 candidats ; le profil de mesure du retrieval en reclasse 50.

Figure 1 — Le traitement d'une requête
La questionavec sa nature, déclarée par l'appelantet sa date, si elle en dit une1Le routeur de référencela question nomme-t-elle un article,« art. 214-1 du PCG » ? il est épinglé en tête2La réécritureun LLM ajoute les termes réglementairesque la question implique (mode extend) ;la question d'origine est conservée5La séparation des natureschaque canal ne cherche que dans la nature déclarée (comptable, fiscale, audit, IFRS)3Le canal lexicalBM25 sur les segments normalisés(FTS5, une table par nature)→ ses 50 meilleurs segments3Le canal densesimilarité cosinus des embeddings(multilingual-e5-small, sqlite-vec)→ ses 50 meilleurs segmentsdeux listes de 50 segments4La fusionrang réciproque (RRF) des deux listes,puis agrégation des segmentsvers leurs enregistrements, meilleur score retenules meilleurs candidats6Le rerankercross-encoder : lit la question et chaquecandidat ensemble, produit l'ordre final ;25 candidats en service, 50 en mesureDix enregistrements classésidentifiant, titre, extrait, score,dans la version en vigueur à la date
De la question aux dix enregistrements classés, de haut en bas. Le corpus interrogé : 113 105 enregistrements en quatre natures, 186 478 segments de 220 mots, une version par période de vigueur.

Dates. Chaque enregistrement porte une fenêtre de vigueur. Une date de référence — celle de la session, ou celle lue dans la question (§ 4.2.2) — restreint la recherche aux versions en vigueur ce jour-là, et l'outil in_force_on renvoie, pour un identifiant et une date, la version applicable.

2.2Le harness

Nous appelons harness le dispositif construit autour du modèle (figure 2). Il comprend : huit outils que le modèle appelle lui-même (tool calling) — search (requête, nature, date → dix enregistrements classés, avec identifiant, titre, extrait et score), browse (un chemin ou une nature → la table des matières, sur un à trois niveaux), fetch (un identifiant → le texte de l'enregistrement, de sa section ou de son unité de rattachement), resolve (une citation en texte libre → l'identifiant de l'enregistrement, ou une liste de candidats si la citation est ambiguë), refs (un identifiant → les textes qu'il cite ou qui le citent), in_force_on (un identifiant, une date → la version en vigueur), session et set_date (lire et changer la date de référence) ; chaque outil répond par un statut typé (ok, not_found, ambiguous, invalid avec le paramètre fautif et les valeurs acceptées), de sorte qu'un appel mal formé soit lisible par le modèle et corrigeable au tour suivant ; un fichier de contexte de 52 192 caractères transmis dans le premier message, composé d'une carte du domaine (tournures courantes mises en correspondance avec le vocabulaire réglementaire, 81 % du fichier), d'une procédure de décision, d'une règle de date et d'un format de réponse ; une boucle qui autorise six tool calls, après quoi le modèle est sommé de conclure avec ce qu'il a lu ; et un format de sortie imposé — reponse, citations (identifiants d'enregistrements), abstention, manque.

Figure 2 — Le harness
La questioncelle d'un praticien, ou une pièceet la décision à prendreavec la date des faits, si diteLe modèleLe fichier de contextemots courants → termes du règlementprocédure de décision, règle de dateformat de réponse imposéLa bouclelire la question et le contexteappeler un outil, lire, recommencerau sixième appel : conclurerendre l'objet de réponseLes huit outilssearchrequête, nature, date → dix textesbrowsechemin ou nature → le sommairefetchidentifiant → l'article ou sa sectionresolve« art. 214-1 du PCG » → identifiantrefsidentifiant → ses renvois, deux sensin_force_onid, date → version en vigueursessiondate et profil de la sessionset_datechanger la date de référenceappelrésultatLe corpus113 105 textes en quatre natures, datésindex lexical, index sémantiqueune version par période de vigueurlitLa réponse, au format imposéreponse : le textecitations : identifiants des textes lusabstention : vrai ou fauxmanque : ce qui n'a pas été trouvéLe jugevoit la question, le barème, l'objet ;jamais le nom du modèle ni la cibleLe résolveurouvre chaque identifiant cité :existe-t-il, à cette date ?
Flux d'une question : le modèle reçoit la question et le fichier de contexte, appelle des outils, rend l'objet de réponse. Le juge (§ 3.4) ne voit que cet objet ; le résolveur (§ 3.1) vérifie chaque identifiant cité.

2.3Le banc de questions

Trois sources de questions servent trois usages distincts (tableau 2).

Chaque ligne s'ouvre : liste des questions du split, filtrable.

Tableau 2 — Les splits du banc. Un split gelé n'est jamais utilisé pour choisir un levier ; il sert à confirmer, en une exécution.
SplitQuestionsOrigineStatut
dev426questions de praticien, écrites à la mainlibre
test29idemgelé
validation28idemgelé
abstention30sans réponse dans le corpusgénération seulement
dec2026_e120DEC, épreuve 1, mai 2026gelé
dscg2025_conso12DSCG UE4, dossier 1, consolidation, 2025gelé
dscg2025_ifrs5DSCG UE4, dossier 2, IFRS, 2025gelé
dscg2025_fusion7DSCG UE4, dossier 3, fusion, 2025gelé
dscg2025_audit10DSCG UE4, dossier 4, audit, 2025gelé
exam_train679annales DEC, DSCG, DCG 2019–2026matériel
exam_test84annales DEC, DSCG, DCG 2019–2026sélection
terrain_dev11620 pièces comptableslibre
terrain9815 pièces comptablesgelé

Questions de praticien. 567 questions écrites par lots. Pour chaque question, le texte de référence est choisi en lisant l'enregistrement dans la base, jamais en interrogeant le moteur, afin que le banc ne doive pas ses réponses au système mesuré ; chaque lot est gelé avec un extrait du texte cité. Trois catégories : référence directe (la question nomme l'article ; 93 dans dev), règle (vocabulaire professionnel sans numéro ; 210), vocabulaire courant (formulation d'un non-spécialiste ; 123). Répartition de dev par nature : comptable 175, fiscale 119, audit 78, IFRS 54 ; 48 questions nomment une date.

Annales. 763 questions extraites des sujets du DEC (épreuve 1, 2019–2026), du DSCG (UE1, UE4, 2021–2025) et du DCG (UE4, UE9, UE10, 2020–2026), reliées au texte qu'elles visent avec un degré de confiance (sûr 528, probable 203, douteux 32). Les 32 rattachements douteux ont été relus contre les corrigés officiels : 10 confirmés, 8 sur lesquels le corrigé est muet, 8 confirmés hors corpus, 6 corrigés. Le découpage par session sépare le matériel (sessions anciennes) de la sélection (dernière session de chaque épreuve).

Pièces. Vingt pièces comptables (factures, bail avec dépôt de garantie, note de frais, abonnement, véhicule, prime d'assurance à cheval sur deux exercices, avoir) et, pour chaque décision nécessaire à leur comptabilisation, une question accompagnée de la pièce.

Barèmes. Pour 102 questions de dev, deux ou trois critères ont été rédigés et gelés le 27 août 2026, avant qu'aucun modèle ne réponde. Les mesures de génération (§ 4.2.4, § 4.3, § 4.4) portent sur les 50 premières de ces 102 questions dans l'ordre du fichier (référence directe 7, règle 23, vocabulaire courant 20).

3Méthode

3.1Métriques

  • recall@10 — part des questions dont au moins un texte attendu figure parmi les dix premiers résultats. Pour un agent, le classement est reconstitué à partir des textes cités puis des textes ouverts.
  • Note — part des critères du barème acquis par la réponse, présentée sur vingt.
  • Vérifiabilité — part des références citées par la réponse que le résolveur du corpus retrouve : un identifiant d'enregistrement est ouvert par fetch, une référence en texte libre (« art. 214-1 du PCG ») est passée à resolve. Une référence ambiguë, introuvable, ou hors corpus (Code civil, Code du travail) compte comme non résolue, de même qu'un numéro de compte (« compte 691 ») : il désigne un compte, pas le texte qui fonde la réponse.
  • Texte attendu cité — part des réponses dont au moins une citation, une fois résolue, est l'un des textes attendus de la question, quelle que soit sa date de version ou la façon dont elle est écrite. Définie après les campagnes, elle décrit et ne sert à adopter aucun levier.
  • Abstention — critère du barème sur les questions qui l'exigent, jugé sur le texte de la réponse et non sur le champ abstention de l'objet de sortie, que les modèles emploient aussi pour une réponse donnée sous réserve.
  • Coût — tokens consommés, tarif catalogue du provider au 10 septembre 2026 converti au taux BCE du jour (1 USD = 0,86088 EUR), et, lorsqu'il est disponible, montant facturé.

3.2Critère d'adoption

Deux bras sont comparés par bootstrap apparié sur les questions. Pour chaque question, on note l'écart de score entre les deux bras. On tire 10 000 fois, avec remise (seed 42), autant de questions que le banc en compte, et l'on calcule l'écart moyen du tirage. La probabilité d'amélioration (p) est la part des tirages où cet écart moyen est positif ; l'intervalle à 95 % est donné par les 2,5e et 97,5e centiles de ces tirages. Une modification est adoptée si p atteint 0,95 et si aucune nature ni aucune catégorie ne recule de plus de 0,05. Le critère est fixé avant la mesure ; une métrique n'est jamais substituée à une autre après coup.

3.3Protocole

Une seule variable change entre deux bras. Les splits gelés ne servent jamais à choisir. Un modèle réécrivant une question, générant un document ou corrigeant une copie ne voit ni la citation attendue, ni le corpus, ni les résultats de recherche. Chaque contrôle d'intégrité a été vu échouer au moins une fois avant d'être utilisé. Les campagnes enregistrent la date de référence, la somme de contrôle du corpus et de la configuration, et, pour chaque appel, le provider qui l'a servi.

3.4Notation des réponses rédigées

Le juge reçoit la question, le barème et la copie — jamais la citation attendue ni le nom du modèle — et décide pour chaque critère s'il est acquis, avec une justification. La chaîne de calibration est la suivante : trente copies notées à la main ; un juge automatique (LLM-as-judge) (modèle appelé par API) calibré sur ces trente notes, accord kappa 0,985 ; un second juge, moins coûteux, calibré sur le premier sur 102 copies identiques, kappa 0,970, accord exact 0,951, biais −0,010. Les copies sont anonymisées, mélangées et réparties en lots avant correction ; le fichier qui relie une copie à son bras n'est lu qu'après.

3.5Exécution

Les treize modèles de § 4.3 sont appelés par un provider d'accès unique, un même point d'entrée et une même clé, seul l'identifiant du modèle changeant. Les réglages de boucle sont ceux du service : six tool calls avant réponse forcée, 2 000 caractères par résultat d'outil, 4 000 tokens de sortie par tour.

Note. Les mesures de retrieval (§ 4.1, § 4.2.1 à § 4.2.3) utilisent la chaîne complète, reranker compris ; les mesures d'agent (§ 4.2.4, § 4.3, § 4.4) utilisent la configuration servie, sans reranker (§ 4.2.3). Le recall@10 d'un bras d'agent est reconstitué à partir des textes cités puis ouverts et ne se compare pas à celui de § 4.1.

4Résultats

Chaque expérience est présentée avec son cadre : la variable, ce qui est fixé, le split et son effectif, la métrique, le résultat et sa lecture contre le critère de § 3.2.

4.1Référence du retrieval

Cadre. Dispositif livré, split dev (n = 426), recall@10.

Tableau 3 — recall@10 de référence sur dev
Sous-ensemblenrecall@10
ensemble4260,869
nature comptable / fiscale / audit / ifrs175 / 119 / 78 / 540,874 / 0,815 / 0,925 / 0,889
catégorie référence directe / règle / vocabulaire courant93 / 210 / 1230,968 / 0,929 / 0,692
questions datées480,917

Lecture. La catégorie vocabulaire courant est de 24 à 28 points sous les deux autres : la difficulté du retrieval sur ce domaine est la traduction d'une formulation courante vers le vocabulaire réglementaire.

4.2Leviers

Un levier est une modification d'un composant du dispositif, mesurée seule, tout le reste étant fixé, contre la configuration de sa campagne. Quarante-neuf leviers ont été mesurés ; ils agissent sur quatre choses — le corpus et son index, la question posée au moteur, le classement des candidats, l'agent et son contexte — et sont présentés ci-dessous par thème, les adoptés en tête de chaque tableau. Une ligne se survole ou se clique : elle dit ce qu'est le levier, où il a été mesuré et pourquoi il est retenu ou non. Les leviers rejetés restent exposés dans le code à leur valeur neutre, de sorte que le rejet puisse être re-mesuré.

Figure 3 — Leviers adoptés et rejetés, par ce sur quoi ils agissent
Sept leviers retenus sur quarante-neuf ; les plus grands gains viennent de la question posée au moteur.

4.2.1Le corpus et son index

Ce thème regroupe ce qui est indexé et comment : le découpage des textes en segments, le modèle d'embedding, les paramètres de la recherche lexicale, la séparation des quatre natures, et ce que l'index se souvient — les énoncés d'examen passés et les décisions prises sur d'autres pièces, indexés comme segments supplémentaires des textes qu'ils visent. Deux choses portent : chercher dans la nature déclarée plutôt que dans l'index entier, et se souvenir des cas réels. Ni la taille des segments, ni l'encodeur, ni des cas fictifs générés par un modèle ne déplacent le recall.

Tableau 4 — Le corpus et son index : 17 leviers, 3 adoptés. Survoler ou cliquer une ligne pour le détail.
LevierAgit suravant → aprèsdeltap

4.2.2La question posée au moteur

Ce thème regroupe ce qui est fait de la question avant la recherche : la réécrire dans le vocabulaire réglementaire, en lire la date, la découper quand c'est un énoncé long, deviner sa nature, épingler un texte qu'elle cite, et les constantes de la fusion des deux canaux. Trois leviers portent, et ce sont les plus grands de toute l'étude : dire au moteur les mots que le droit emploie, lui dire quel jour on est, et découper un énoncé d'examen. Deviner la nature à la place de l'appelant ne porte pas.

Tableau 5 — La question posée au moteur : 14 leviers, 3 adoptés. Survoler ou cliquer une ligne pour le détail.
LevierAgit suravant → aprèsdeltap

4.2.3Le classement

Après la fusion des deux canaux, un second modèle — un cross-encoder — relit la question et chaque candidat ensemble et réordonne les cinquante premiers. C'est le seul levier de ce thème qui porte ; sa largeur, la longueur du texte qu'il lit et deux rerankers alternatifs ne changent rien. Le cross-encoder adopté n'est pas disponible chez le provider qui fournit l'infrastructure de production (plateforme sans serveur, sans GPU) : l'agent servi cherche sans lui, sur l'ordre de la fusion, et les mesures d'agent de § 4.2.4 à § 4.4 sont faites dans cette configuration.

Tableau 6 — Le classement : 8 leviers, 1 adopté. Survoler ou cliquer une ligne pour le détail.
LevierAgit suravant → aprèsdeltap

4.2.4L'agent et son contexte

L'agent reçoit, en plus de la question, un fichier de contexte : le plan comptable résumé, une carte du domaine de 208 entrées (une formulation courante → le terme réglementaire), les conventions de citation. On a essayé de le réduire, d'en servir un extrait choisi pour chaque question, de l'ouvrir sur les pièces et la fiscalité, et d'allonger le budget d'appels d'outils. La métrique est ici la note sur vingt (juge de § 3.4), sauf les deux lignes sur les pièces mesurées en recall@10. Ni sa taille, ni un extrait choisi par question, ni son ordre ne changent la note ; un extrait nuit. Les quatre variantes du fichier sont lisibles ci-dessous.

Tableau 7 — L'agent et son contexte : 10 leviers, 0 adopté. Survoler ou cliquer une ligne pour le détail.
LevierAgit suravant → aprèsdeltap

Les quatre fichiers de contexte comparés. Cliquer une variante : sa taille, ses sections, et son texte intégral.

4.3Comparaison de treize modèles à dispositif constant

Cadre. Variable : le modèle. Fixés : le harness complet, les 50 questions à barème de § 2.3, la boucle et la configuration de retrieval sans reranker de § 3.5, le juge. 49 questions notées (une exclue, un modèle ayant produit un tool call malformé cinq fois de suite). Métriques : note, recall@10, tool calls, latence médiane, tokens, tarif catalogue par mille questions. Deux modèles éligibles n'ont pu être mesurés : l'un sans provider gérant les tool calls, l'autre limité en débit par le seul provider qui les gère ; la famille Llama est absente pour ces raisons.

Figure 4 — Note sur vingt et tarif catalogue pour mille questions (n = 49)
Échelle des prix logarithmique.
modèlenote /20texte attendu lutexte attendu citéétapeslatence p50tokens entrée / question$ / 1000 q
GPT-5.6 Luna18,389 %86 %3,720 s77 28416
Qwen3.8 27B17,990 %90 %4,150 s83 77839
Claude Sonnet 517,387 %86 %2,728 s111 565233
DeepSeek V4.1 Flash16,987 %82 %5,523 s76 15612
Gemma 4 31B16,378 %76 %2,831 s85 3718
GLM 5.3 Flash16,182 %78 %3,623 s87 76714
Claude Haiku 4.515,887 %71 %4,726 s102 901109
Qwen3.6 35B-A3B15,682 %73 %3,624 s100 7016
Qwen3.5 122B-A10B13,979 %69 %3,924 s109 72031
gpt-oss 120B11,660 %59 %1,427 s57 3232
Mistral Small 411,559 %57 %4,426 s113 52218
Ministral 3B8,640 %37 %6,117 s113 11311
Ministral 8B6,445 %24 %16,526 s245 60737

Texte attendu lu : part des questions où le modèle a ouvert ou cité l'un des textes attendus avant de répondre (le recall@10 de l'agent, § 3.1). Texte attendu cité : part des réponses dont les citations finales contiennent l'un de ces textes. L'écart entre les deux colonnes, ce sont les textes attendus que le modèle a lus mais n'a pas cités.

Résultat. Les notes s'étendent de 6,4 à 18,3 sur vingt. Contre le bras de référence (Qwen3.8-27B, 17,9), une seule comparaison appariée est nominalement favorable (GPT-5.6 Luna, +0,020, p = 0,72) et ne franchit pas le critère ; toutes les autres sont défavorables avec p ≤ 0,24. Deux comportements extrêmes apparaissent dans les tool calls (figure 5) : un modèle en effectue 16,5 par question en moyenne et consomme 2,5 fois les tokens des autres pour la note la plus basse ; un autre s'arrête après 1,4 appel avec un recall de 0,60. La part des réponses citant l'un des textes attendus va de 24 % (Ministral 8B) à 90 % (Qwen3.8-27B). Prix. Le rang de la note suit le tarif catalogue au token (corrélation de Spearman 0,62 sur le prix de sortie, p = 0,011), pas le coût mesuré par question (0,23, p = 0,23) ; cette analyse est exploratoire (§ 5).

Figure 5 — Tool calls par question et note (n = 49)
Bande : entre 2,5 et 5,5 appels, où se situent les onze modèles restants.

Répétabilité. Le bras GPT-5.6 Luna a été rejoué à l'identique quelques heures plus tard (§ 4.4) et noté par un autre juge de la même chaîne : 0,915 puis 0,847 (−0,071). Cet écart est la marge de répétition sur 49 questions ; les écarts inférieurs sont lus comme des égalités. Infrastructures. Chaque réponse enregistre le provider qui l'a servie ; un modèle a été servi par six providers différents au cours de ses cinquante questions, à des précisions de calcul potentiellement différentes.

4.4Les meilleurs modèles avec et sans le harness

Cette expérience mesure l'utilité de ce qui a été construit. Les deux meilleurs modèles de § 4.3 sont mis dans quatre montages, et l'on regarde ce que le harness apporte contre l'alternative la plus simple, une recherche web. Cadre. Variable : le montage — modèle seul (sans outils ni contexte, même format de réponse demandé) ; modèle avec recherche web (outil serveur du provider) ; modèle avec le harness ; harness et recherche web. Deux modèles (GPT-5.6 Luna ; Qwen3.8-27B), puis deux modèles bon marché (ci-dessous). Mêmes 50 questions, note et vérifiabilité (§ 3.1). Les montages sans harness citent en texte libre ; leurs citations sont résolues par le même résolveur.

Figure 6 — Note sur vingt contre part des réponses qui citent le texte attendu, par montage
Une couleur par modèle, une forme par montage : ● seul, ▲ web, ■ harness, ✳ harness + web ; le trait relie les montages d'un même modèle dans cet ordre. La part des citations qui s'ouvrent dans le corpus figure dans le tableau qui suit.

Chaque montage bat le modèle seul sur les deux modèles (p ≥ 0,963). Le web et le harness sont à égalité sur la note (Luna : 17,6 contre 16,9 ; Qwen : 18,8 contre 17,9 ; écarts sous la marge de répétition) et le cumul des deux n'ajoute rien. La vérifiabilité les sépare : avec le harness, 99 à 100 % des citations s'ouvrent ; sans lui, 57 à 75 % — et l'accès au web, qui fait citer davantage (139 → 171 références pour Luna), ne relève pas cette part (69 % et 62 %). Le dispositif construit fait ce pour quoi il est construit : il rend chaque citation vérifiable sans coûter de justesse.

Tableau — Les quatre montages, par modèle. « Texte attendu cité » : part des réponses citant l'un des textes attendus (§ 3.1).
modèlemontagenote /20citations qui s'ouvrenttexte attendu cité
GPT-5.6 Lunaseul15,175 %44 %
GPT-5.6 Lunaweb17,669 %76 %
GPT-5.6 Lunaharness16,9100 %78 %
GPT-5.6 Lunaharness + web17,599 %78 %
Qwen3.8 27Bseul10,057 %8 %
Qwen3.8 27Bweb18,862 %57 %
Qwen3.8 27Bharness17,9100 %90 %
Qwen3.8 27Bharness + web18,2100 %84 %
Qwen3.6 35B-A3Bseul9,840 %12 %
Qwen3.6 35B-A3Bweb15,556 %48 %
Qwen3.6 35B-A3Bharness15,6100 %73 %
Qwen3.6 35B-A3Bharness + web15,6100 %76 %
Gemma 4 31Bseul9,672 %12 %
Gemma 4 31Bweb10,468 %14 %
Gemma 4 31Bharness16,3100 %76 %
Gemma 4 31Bharness + web15,0100 %68 %

Le harness fait citer le texte attendu au moins aussi souvent que la recherche web : 78 % des réponses contre 76 % pour Luna, 90 % contre 57 % pour Qwen ; sans outils, le modèle seul le cite dans 44 % et 8 % des réponses.

Deux modèles bon marché. La même expérience a été refaite sur deux modèles choisis par une règle fixée avant la mesure — les deux modèles de § 4.3 les moins chers par question parmi ceux qui notent au moins 15/20 avec le harness — avec son critère : le harness doit gagner au moins 0,15 sur la note contre le modèle seul (p ≥ 0,95) et faire citer le texte attendu plus souvent que la recherche web. Seuls, Qwen3.6-35B-A3B et Gemma 4 31B notent 9,8 et 9,6 sur vingt et citent le texte attendu dans 12 % des réponses ; avec le harness, 15,6 et 16,3, et 73 % et 76 % (+0,30 et +0,35 sur la note, p = 1,0). La recherche web porte Qwen3.6 à 15,5 mais ne lui fait citer le texte attendu que dans 48 % des réponses, et n'aide presque pas Gemma (10,4 ; 14 %). Les deux critères sont remplis pour les deux modèles, qui coûtent avec le harness 5 et 7 € pour mille questions, contre 14 € pour Luna.

5Discussion

H1 — « Le harness rend vérifiable sans coûter de justesse » : un harness appuyé sur un corpus comptable daté rend les citations vérifiables, sans perdre de justesse face à une recherche web. Confirmée, dans les limites de ce que mesure la vérifiabilité. Justesse : chaque montage bat le modèle seul (p ≥ 0,963), mais le harness et la recherche web sont à égalité (Luna 16,9 contre 17,6 ; Qwen 17,9 contre 18,8 ; écarts sous la marge de répétition) et leur cumul n'ajoute rien (§ 4.4). Vérifiabilité : avec le harness, 98 à 100 % des citations se retrouvent dans le corpus ; sans lui, 57 à 75 %. Une partie de cet écart tient au résolveur, qui lit du texte libre alors que le harness cite des identifiants : relues une à une sans voir la question ni la réponse, les citations non rattachées des montages sans harness désignent encore un texte du corpus pour 1 à 14 % des citations. Corrigé de cet effet, l'écart demeure : 66 à 78 % des citations sans harness désignent un texte du corpus, contre 98 à 100 % avec. Le reste se partage entre des numéros de compte du plan comptable cités comme des textes (11 à 18 %) et, pour 11 à 16 %, des articles du PCG cités sous leur numérotation antérieure à 2025, des textes hors périmètre (Code civil, Code du travail, pages de l'AMF) et des références introuvables, que ce tri ne sépare pas de façon fiable. Le harness fait aussi citer le texte attendu au moins aussi souvent que la recherche web (78 % des réponses contre 76 % pour Luna, 90 % contre 57 % pour Qwen ; mesure descriptive). Enfin, une citation qui se retrouve dans le corpus n'est pas encore une citation qui étaye la réponse : ce contrôle n'a pas été mesuré (§ 6).

H2 — « Plus c'est cher, mieux c'est » : la justesse varie selon le modèle, et les modèles les plus chers répondent le plus juste. La première moitié est confirmée : à harness constant, la note va de 6,4 à 18,3 sur vingt (§ 4.3). La seconde dépend du prix regardé. Le rang de la note suit le tarif catalogue au token — corrélation de Spearman 0,62 sur le prix de sortie (p = 0,011), 0,46 sur le prix d'entrée (p = 0,058), test par permutation unilatéral sur treize modèles — mais pas le coût mesuré par question (0,23, p = 0,23), parce qu'un modèle faible consomme des tokens en boucle : le moins bien noté fait 16,5 appels par question. L'écart vient surtout des modèles qui ne mènent pas la boucle d'outils ; les sept meilleurs (15,8 à 18,3) tiennent en moins de deux marges de répétition, et le mieux noté coûte quatorze fois moins par question que le plus cher (Claude Sonnet 5, 17,3). Deux modèles à 5 et 7 € pour mille questions, sous 10/20 seuls, atteignent 15,6 et 16,3 avec le harness (§ 4.4). Treize modèles et trois axes de prix examinés après la mesure : la tendance est indicative, pas établie.

Ce qui fait la qualité de la recherche. Hors hypothèses, les leviers de § 4.2 disent quelles pièces du harness comptent. Le retrieval plafonne à 0,87 sur les questions de praticien après la réécriture et le reranker (§ 4.2.2, § 4.2.3). Sur les énoncés d'examen et sur les pièces, le seul levier documentaire qui porte est la mémoire des cas réels (§ 4.2.1 : +0,167 sur des pièces jamais vues, confirmé une fois sur le split gelé, +0,054) ; la génération de cas fictifs ne porte pas. Le fichier de contexte complet ne fait pas mieux que le minimal au critère fixé (+0,022 sur 77 questions, p = 0,78), un extrait de la carte choisi par question dégrade la note, et le budget d'appels ne change la note que sur onze questions sur 49 (§ 4.2.4).

6Limites

  • Les comparaisons de modèles portent sur 49 questions notées ; les montages sur 50. À cette taille, la même mesure répétée bouge de 0,07 sur la note : deux modèles à moins de 0,07 l'un de l'autre sont indiscernables.
  • Sur l'endpoint gratuit, 25 des 102 questions de la réplication du contexte n'ont pas reçu de réponse (connexions coupées). Les comparaisons portent sur les 77 questions répondues par tous les bras ; ce sont les plus courtes à traiter, donc les plus faciles.
  • Les questions de praticien sont notées contre un barème de praticien, écrit avant toute réponse.
  • Le montage avec recherche web est daté par construction : une page change.
  • Les tarifs évoluent ; les tokens consommés sont publiés avec eux.
  • Un même modèle est servi par plusieurs providers selon l'appel, parfois à des précisions différentes ; chaque réponse porte le nom de celui qui l'a servie.
  • La vérifiabilité mesurée est la résolution dans le corpus. Elle ne dit pas si le texte cité étaye la réponse. Le tri des citations non rattachées est fait par un modèle lisant le corpus, sans calibration contre une relecture humaine.
  • Dix-sept réponses n'ont pas respecté le format de sortie mais contenaient l'objet de réponse : leurs citations comptent pour « texte attendu cité », pas pour la vérifiabilité de § 4.4, calculée sur les citations enregistrées au moment de la campagne.
  • L'abstention n'est pas mesurée dans ces expériences : aucune des 50 questions notées n'en appelle une.
  • Les deux hypothèses et l'analyse du prix sont formulées après les mesures ; treize modèles et trois axes de prix ne suffisent pas à établir une tendance.
  • Les 32 rattachements douteux des annales ont été relus, avec un taux de désaccord de 0,19 ; le reste des rattachements n'a pas été relu.

7Conclusion

Rendre vérifiable la réponse d'un LLM en droit comptable français est une affaire de dispositif : un corpus daté, des outils que le modèle appelle, un format de réponse qui n'admet que des identifiants ouverts. Ce dispositif ne coûte pas de justesse face à une recherche web. La justesse dépend du modèle : les modèles les plus chers au token tendent à mieux répondre, mais le coût réel d'une question ne suit pas, et un modèle bon marché égale le plus cher. Reste à mesurer si les citations qui se résolvent étayent bien la réponse.

AAnnexe — les copies

Pour chaque question de § 4.2.4 à § 4.4 : l'énoncé, ce qu'une bonne réponse établit, le barème, puis chaque copie avec ses critères acquis ou non, la justification du juge, les textes ouverts avant de répondre et, pour chaque citation, sa résolution, quelle que soit la façon dont elle est écrite (« art. 214-13 du PCG » ou un identifiant) : en vert, l'un des textes attendus ; en jaune, un texte qui existe dans le corpus mais n'est pas celui attendu, ce qui ne le rend pas faux pour autant ; en rouge, un texte absent du corpus, avec la raison relevée en relisant une à une les citations que le résolveur ne rattache pas (§ 5) — numéro de compte, ancienne numérotation du PCG, texte hors corpus, référence introuvable.

Toutes les figures de cette page sont recalculées depuis les artefacts de mesure qui l'accompagnent ; les données de l'explorateur sont embarquées dans la page. Les textes réglementaires cités sont ceux des sources publiques (anc.gouv.fr, bofip.impots.gouv.fr, DILA, EUR-Lex), aux dates indiquées.