VESICA
IQSYS_IQ_3Brouillon

SYS_IQ_3 — Résolution du modèle d'un agent & surveillance d'expiration

Instruction· Direction des Systèmes d'Information (DSI) — Système & Infrastructure IA· émetteur VESICA SYS_PRO_3

SYS_IQ_3 — Résolution du modèle d'un agent & surveillance d'expiration

Mode opératoire + embryon de catalogue : les règles de résolution et les seuils portent leur source_ref. C'est le référentiel de routage des modèles. [CORPUS]

Objet (la tâche)

Déterminer, pour un agent donné, quel modèle sera utilisé et avec quelle capacité de sortie structurée ; et alerter avant qu'un modèle utilisé n'expire. [CORPUS]

Prérequis / matériel / sécurité

  • /config/agents.json à jour (sinon régénérer via sync_agents_manifest Webhook). [CORPUS]
  • /config/Agent_Model_Open_Router/ peuplé (catalogue + 3 vues) par sync_model_capabilities. [CORPUS]
  • /vault/_CONFIG/profils.json présent (profils leger/standard/avance → modèles). [CORPUS]
  • Aucune donnée sensible (configuration technique). [STANDARD]

Étapes d'exécution

  1. Lire le dossier de l'agent dans agents.json via agent_key. [CORPUS]
  2. Charger config_agent.json (mode/model/temp/max_tokens), prompt_system.md, output_schema.json (continueOnFail). [CORPUS]
  3. Résoudre le modèle selon le mode (cf. règles ci-dessous). [CORPUS]
  4. Évaluer la capacité : supports_structured_outputs = (model ∈ view_native_output_schema) (= JOIN sur la vue). [CORPUS]
  5. Activer le schéma ssi output_schema.properties non vide (sinon pas de plancher ni plafond). [CORPUS]
  6. (Sonde quotidienne) Croiser les model_resolved utilisés × view_expiration.json → si jours_restants ≤ 7 → alerter. [CORPUS]

Règles, critères et seuils (embryon de catalogue — routage des modèles)

  • M1 — mode=modelmodel_resolved = config_agent.model (modèle explicite). (source_ref: 07 §B2.3ter / §B2.3bis) [CORPUS]
  • M2 — mode=profilmodel_resolved = profils.json[profil].model (profils leger/standard/avance). (source_ref: 07 §B2.3bis ; profils.json) [CORPUS]
  • M3 — mode=dynamicmodel_resolved = anthropic/claude-sonnet-4.6 (défaut v0, hardcodé jusqu'à câblage dynamic réel — Lot 12). (source_ref: 07 §B2.3bis ; Lot 3) [CORPUS]
  • M4 — Agent coquille (pas de mode) → model_resolved = null (agent non résolu, non appelable en production). (source_ref: 07 §B2.3bis) [CORPUS]
  • M5 — Capacité sortie structurée : model ∈ view_native_output_schema.supported[] → plafond response_format autorisé ; sinon plancher seul + warning. (source_ref: ADR-028) [CORPUS]
  • M6 — Seuil d'alerte expiration = 7 jours : un modèle utilisé (présent comme model_resolved) dont jours_restants ≤ 7 déclenche model_expiring. (source_ref: 07 §B2.10) [CORPUS]
  • M7 — jours_restants = ceil((expiration_date 23:59:59 − now) / 1 jour) ; états spéciaux EXPIRÉ / AUJOURD'HUI / J-n. (source_ref: 07 §B2.10) [CORPUS]
  • M8 — Un modèle hors catalogue reste loggable (jamais de FK stricte sur model en télémétrie) ; mais un model_resolved hors catalogue devrait lever une alerte typo (fast-follow non câblé). (source_ref: ADR-029 ; 04 Lot 6f fast-follow) [CORPUS]
  • M9 — Exclusions du manifeste : 00 - TEMPLATE AGENT, SYS-01 (Routeur), hors-pattern. (source_ref: 07 §B2.3bis) [CORPUS]

Points de contrôle / cas particuliers

  • Coquille appelée : si un agent model_resolved:null est appelé, l'appel échouera proprement en aval (modèle null) ; ne pas compter sur SYS pour « deviner » un modèle. [CORPUS]
  • Typo de modèle (opus-4-6 au lieu de anthropic/claude-opus-4.6) : non détectée à ce jour → fast-follow (suggestion de correspondance). [CORPUS]
  • Vue d'expiration vide : sonde → NoOp no-throw (testé). [CORPUS]

Sortie / enregistrement produit

  • Output get_agent_config (« ligne » résolue) consommé par prepare_agent_call. [CORPUS]
  • /config/agents.json régénéré (cf. SYS_FQ_3). [CORPUS]
  • Notif model_expiring (le cas échéant). [CORPUS]

Agent responsable

get_agent_config (résolution à l'appel) ; sync_agents_manifest (manifeste) ; notify_expiring_models (sonde). [CORPUS]