SYS_PRO_3 — Gestion des modèles et du manifeste agents
Manuel LÉGER. Processus implémenté (Lots 6d / 6e / 6f). Source du quoi :
07_Reference_Systeme.md§B2.9 (sync_model_capabilities), §B2.3bis (sync_agents_manifest), §B2.10 (notify_expiring_models), §B2.3ter (get_agent_config). Source du pourquoi : ADR-028, ADR-031, ADR-032, ADR-033. [CORPUS]
Objet et finalité
Maintenir à jour, sans intervention manuelle, (a) le catalogue de capacité des modèles OpenRouter (pricing, fenêtre de contexte, support structured_outputs, dates d'expiration) et (b) le manifeste des agents (agents.json : quelle clé CODE-NN → quel dossier, quel modèle résolu) ; puis (c) alerter avant l'expiration d'un modèle réellement utilisé. [CORPUS]
Finalité : que prepare_agent_call/get_agent_config puissent résoudre le modèle et sa capacité d'un agent à chaque appel (cf. SYS_PRO_1), et que le gérant soit prévenu avant qu'un modèle utilisé ne disparaisse (continuité de service). [CORPUS]
Pilote
- Direction pilote : SYS — Système.
- Acteurs : 4 sub-workflows (
sync_model_capabilities,sync_agents_manifest,notify_expiring_models,get_agent_config). Déclenchement automatique (CRON/Webhook) + résolution à la volée. Supervision : gérant. [CORPUS]
Déclencheurs (entrées)
sync_model_capabilities: Schedule hebdo (lundi 03:00) → 1 appel API OpenRouter. [CORPUS]sync_agents_manifest: Schedule hebdo (filet) + Webhook GET bookmarkable (régén à la demande) + Manual (debug). [CORPUS]notify_expiring_models: Schedule quotidien (06:00). [CORPUS]get_agent_config: Execute Workflow à chaque appel d'agent (input{ agent_key }). [CORPUS]
Sorties et livrables
/config/Agent_Model_Open_Router/:model_catalog.json+ 3 vues (view_native_output_schema.json,view_pricing.json,view_expiration.json) — format JSON (ADR-032). [CORPUS]/config/agents.json: manifeste (base_path+directions+agents{ CODE-NN: {dossier, mode, model_resolved} }), host souverain (pas Drive — ADR-031) + miroir Drive décoratif. [CORPUS]- Notification Mattermost
model_expiring(event dédié,system-errors, severitywarning) si un modèle utilisé expire ≤ 7 j ; sinon no-op. [CORPUS] - À la volée : la « ligne » de config résolue d'un agent (output de
get_agent_config). [CORPUS]
Acteurs
| Acteur | Rôle | Déclencheur |
|---|---|---|
sync_model_capabilities | génère catalogue + 3 vues depuis l'API OpenRouter | Schedule hebdo [CORPUS] |
sync_agents_manifest | scanne /vault/*/*/config_agent.json → agents.json | Schedule + Webhook + Manual [CORPUS] |
notify_expiring_models | croise agents.json × view_expiration.json → alerte | Schedule quotidien [CORPUS] |
get_agent_config | DAL résolution config/modèle/capacité par agent_key | Execute Workflow [CORPUS] |
| OpenRouter API | source des capacités/pricing/expirations | externe [CORPUS] |
Logigramme (étapes macro)
(hebdo 03:00) sync_model_capabilities → API OpenRouter → model_catalog.json + 3 vues
(hebdo/Webhook) sync_agents_manifest → glob config_agent.json → agents.json (clé CODE-NN dérivée du CHEMIN)
│ │
└──────────────┬────────────────────┘
▼
(quotidien 06:00) notify_expiring_models : agents.json (model_resolved utilisés)
× view_expiration.json (jours_restants ≤ 7) → notif model_expiring | no-op
▼
(à l'appel) get_agent_config { agent_key }
→ lit agents.json (dossier) + config_agent.json/prompt_system.md/output_schema.json
→ résout model_resolved (mode → model | profil→profils.json | dynamic→sonnet)
→ JOIN view_native_output_schema → supports_structured_outputs
→ renvoie la « ligne » résolue à prepare_agent_call
Détails : 07 §B2.9 / §B2.3bis / §B2.10 / §B2.3ter. [CORPUS]
Procédures et instructions rattachées
SYS_PQ_3— Procédure de gestion des modèles (cadence, fichiers, droits, renvois).SYS_IQ_3— Instruction : résolution du modèle d'un agent (modes + seuils + expiration) — embryon de catalogue.SYS_FQ_3— Formulaire : manifesteagents.json(structure).
Interfaces amont/aval (handoffs)
- Amont : OpenRouter (capacités/pricing) ; arborescence Drive des agents (
config_agent.jsonpar agent) maintenue par DEX/ADV/… à la création d'agents. [CORPUS] - Aval :
SYS_PRO_1(résolution à chaque appel) ;SYS_PRO_4(la notifmodel_expiringpasse parnotify_system). [CORPUS] - Fichier, deux consommateurs :
agents.jsonsert le chemin (prepare_agent_call) et le registre modèles (notify_expiring_models) — le scan ne tourne qu'une fois. [CORPUS]
Indicateurs (KPI)
| KPI | Définition | Source |
|---|---|---|
| Fraîcheur du catalogue modèles | âge de _generated_at du model_catalog.json | fichier [STANDARD] |
| Cohérence manifeste ↔ Drive | nb agents résolus vs nb dossiers agents | sync_agents_manifest [CORPUS] |
| Modèles utilisés expirant ≤ 7 j | compteur de la sonde quotidienne | notify_expiring_models [CORPUS] |
| Modèles résolus invalides (hors catalogue) | check typo (fast-follow non câblé) | — [CORPUS] |
Enregistrements
- Fichiers
/config/Agent_Model_Open_Router/*.json+/config/agents.json(régénérés, versionnés implicitement par horodatage interne). [CORPUS] - Historique d'exécutions n8n. [CORPUS]
Cas d'usage rattachés (UC-* du Recueil + nouveaux)
- UC-SYS-03 (nouveau) — Être alerté avant l'expiration d'un modèle utilisé (continuité de service). [CORPUS]
- UC-SYS-04 (nouveau) — Régénérer le manifeste agents après création/renommage d'un agent (Webhook bookmarkable). [CORPUS]
- UC-SYS-05 (nouveau) — Résoudre dynamiquement le modèle + la capacité d'un agent à l'appel (cœur de la DAL). [CORPUS]
- (Lien indirect : UC-A11/
model_overrides'appuie sur la capacité de choisir un modèle supérieur, dont la capacité est connue via le catalogue.) [CORPUS]
Roadmap (PQ/IQ/FQ restant à développer)
- Fast-follow check typo/catalogue : valider que chaque
model_resolved/ modèle deprofils.jsonexiste dansmodel_catalog.json; sinon notifsystem-errorsavec suggestion de correspondance (ex.opus-4-6→anthropic/claude-opus-4.6). À brancher danssync_agents_manifest. → futurSYS_IQ_3_2. [CORPUS] SYS_FQ_3_2— Formulaire des 4 vues modèles (view_pricing,view_native_output_schema,view_expiration, catalogue) si une revue structurée s'avère utile. [CORPUS]- Cutover Postgres :
agents.json→ tableconfig.agents; les 4 vues → vues matérialisées (ADR-033 /09). [CORPUS] - Intégration Mac Mini Ollama dans le routing (P2, backlog) : étend la résolution de modèle au-delà d'OpenRouter. [CORPUS]