SYS_IQ_1 — Appeler un agent via agent_call
Mode opératoire pour un workflow appelant (et embryon de catalogue : le bloc « Règles, critères et seuils » porte les
source_ref). [CORPUS]
Objet (la tâche)
Invoquer un agent IA depuis n'importe quel workflow métier, en respectant le contrat d'entrée/sortie de agent_call, et obtenir une production normalisée (succès ou échec) avec télémétrie automatique. [CORPUS]
Prérequis / matériel / sécurité
- L'agent visé existe dans le manifeste
/config/agents.json(cléCODE-NNprésente,dossierrésolu). Sinonprepare_agent_call/get_agent_configthrow « agent introuvable ». [CORPUS] - Le credential
openrouter_prod(type natifopenRouterApi) est valide sur main et worker (mode queue). [CORPUS] - L'agent Routeur
SYS-01n'est pas appelable (garde explicite) — c'est un placeholder, pas un agent productif. [CORPUS] - Aucune donnée sensible à protéger côté SYS (pas de donnée client manipulée ici) ; la confidentialité se joue dans le contenu du
user_messagefourni par l'appelant. [STANDARD]
Étapes d'exécution
- Construire l'INPUT :
{ agent_key:"CODE-NN", dossier_id?:"YYMMDD-NN-…", task_type?:"<vocab v0>", runtime_inputs:{ user_message:"…" } }. [CORPUS] - Appeler
agent_callen nœud Execute Workflow (jamais en boucle serrée sans nécessité). [CORPUS] - Récupérer la sortie et tester
success:success:true→ exploitercontent(objet JSON si l'agent a unoutput_schema, sinon string) etusage/cost_usd/latency_mssi besoin. [CORPUS]success:false→ traiter l'échec côté appelant (errorrempli,content:null) ; la notifllm_errora déjà été émise paragent_call. [CORPUS]
- Ne jamais recalculer le coût :
cost_usdest natif OpenRouter, fourni dansusage. [CORPUS] - Renseigner
task_typeetdossier_iddès que possible : ce sont les axes analytiques des dashboards de coût. [CORPUS]
Règles, critères et seuils (embryon de catalogue)
- R1 — Tout appel LLM passe obligatoirement par
agent_call; aucun workflow d'agent ne hardcode un modèle, un endpoint ou une clé. (source_ref: ADR-029 ; 07 §B2 conventions communes) [CORPUS] - R2 —
agent_keyest requis ; un appel sansagent_keyest rejeté à l'étapeValidate input. (source_ref: 07 §B2.11) [CORPUS] - R3 — Le plafond
response_format: json_schema strict:truen'est envoyé que sioutput_schema && native_output_schema_supported; sinon seul le plancher (schéma dans le prompt) s'applique. (source_ref: ADR-028 ; 07 §B2.11) [CORPUS] - R4 — Si schéma actif et modèle non capable → warning Mattermost (
notify_system, eventllm_error, severitywarning) émis parprepare_agent_call, sans bloquer (plancher seul). (source_ref: ADR-028 ; 07 §B2.3) [CORPUS] - R5 —
usage.cost= coût natif, jamais recalculé, aucune grille tarifaire maintenue. (source_ref: ADR-029) [CORPUS] - R6 —
reasoning_tokensest lu depuisusage.completion_tokens_details.reasoning_tokens, jamais par soustractiontotal − in − out. (source_ref: P-6g0-1 ; 07 §B1bis) [CORPUS] - R7 —
task_typev0 (vocabulaire libre, contrôlé plus tard) :parsing | extraction | classification | synthese | redaction | analyse | routage | qa. (source_ref: 09 §1.4 ; 07 §B1bis) [CORPUS] - R8 — Pour un usage conversationnel, utiliser le wrapper mémoire au-dessus de
agent_call(pattern C), jamais le nœud agent natif n8n (il court-circuitelog_llm_call). (source_ref: ADR-039) [CORPUS] - R9 — Relance d'une production insuffisante = nouvelle tentative à modèle supérieur (
model_override), sans régresser le statut ; chaque tentative est tracée. (source_ref: M1 « Tentative » ; UC-A11) [CORPUS]
Points de contrôle / cas particuliers
type_agent = agent_tools: non câblé (Lot 11) →agent_callthrow « non câblé ». [CORPUS]- Multimodal (
binary_inputs) : relais prévu, assemblage = Lot 11. [CORPUS] - Soft-error D2 : un HTTP 200 avec
body.errorouchoicesvide est traité comme un échec (routé vers la branchellm_error). [CORPUS] - Sortie non-JSON alors qu'un schéma était attendu : parsing best-effort ; garde « parse raté » (severity warning) = fast-follow D3 non encore câblé. [CORPUS]
Sortie / enregistrement produit
- L'objet de sortie
agent_call(succès/échec) consommé par l'appelant. [CORPUS] - 1 ligne en
telemetrie.appels_llm(cf.SYS_FQ_2). [CORPUS]
Agent responsable
agent_call (orchestrateur) — appelé par le workflow métier ; supervision humaine = gérant (stack). [CORPUS]