Repository navigation
refactor(agents): sorties structurées pour le Report Enricher et le Compliance Tagger - #4
Merged
Merged
Conversation
…ompliance Tagger Même changement que pour le Severity Scorer (#3) : le format JSON est garanti par l'API (output_config.format) au lieu de « Return ONLY the JSON object », et le retrait des balises Markdown à la regex disparaît. Un arrêt autre que end_turn lève une erreur explicite ; les deux agents basculent alors sur leurs règles, comme pour toute erreur de l'API. - Report Enricher : environment était un dictionnaire libre, forme que les sorties structurées refusent. Il arrive en liste de paires (key, value), reconstruite en dictionnaire. - Compliance Tagger : un schéma par secteur, valeurs fermées imposées (classe IEC 62304, niveau DORA) ; psd2_article accepte null via anyOf. EnrichmentResult et ComplianceResult ne changent pas. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Suite de #3 : les deux derniers agents qui appellent le modèle passent aux sorties structurées.
Ce qui change
Comme pour le Severity Scorer dans #3 :
output_config.format) ;max_tokensourefusallève uneRuntimeErrorexplicite ; les deux agents basculent alors sur leurs règles, comme pour toute autre erreur de l'API.environmentétait un dictionnaire libre, forme que les sorties structurées refusent (additionalPropertiesdoit valoirfalse). Il arrive en liste de paireskey/value, reconstruite en dictionnaire. Le prompt précise de ne rien renvoyer pour ce que le rapport ne mentionne pas.A/B/C, niveau DORA).psd2_articlepeut valoirnullgrâce àanyOf(types acceptés d'après la documentation Anthropic, consultée le 28.09.2026).EnrichmentResult,ComplianceResultet le reste du pipeline ne changent pas. Les consignes de contenu des prompts (longueurs, format Given/When/Then, sens de chaque champ) restent.Vérifié
python -m pytest→ 144 passedruff check src/ tests/(0.15.20, version épinglée en CI) → OKmypy src/: 33 erreurs, le même nombre que surmain(le job est non bloquant). Mes lignes n'en ajoutent pas.psd2_article: nullet medtech en classe C → bien lus ;rule-based-fallbackpar la méthode publiquetag();environmentsont bien reconstruites en dictionnaire, et un arrêtmax_tokenslève l'erreur attendue.Non vérifié : un vrai appel à l'API, faute de clé sur la machine.