Revue humaine

Faire relire les résultats sensibles avant usage : déclencheurs, file de revue avec SLA, décisions tracées et traitement par webhook.

Certains résultats doivent être relus avant d'être utilisés : un bénéficiaire effectif introuvable, un risque élevé, un outil à effet de bord à confirmer. FORGE met alors le run au statut needs_review et l'ajoute à la file de revue. Le run attend la décision sans consommer de budget.

Ce qui déclenche une revue

  • Un outil obligatoire (required_tool_calls) n'a pas été appelé.
  • Un champ requis du schéma de sortie est absent.
  • Un outil à effet de bord est appelé alors que la politique est confirm.
  • Une règle de revue de l'agent (review_rules) est remplie. Opérateurs : missing, not_empty, eq, lt, gt, contains.
review_rules:
  - field: beneficiaires_effectifs
    op: missing
    reason: Bénéficiaires effectifs introuvables
  - field: risque
    op: eq
    value: eleve
    reason: Risque élevé, validation conformité requise
  - field: procedures_collectives
    op: not_empty
    reason: Procédure collective en cours

La file de revue

La file (Revue dans l'app) liste les runs en attente avec la raison de la revue. Chaque revue a un SLA, 24 heures par défaut, réglable pour votre organisation : la file est triée par échéance, le temps restant est affiché et les revues en retard sont signalées. Le rôle reviewer donne accès à la file sans permettre de lancer des runs.

Décider

Décision`status`Effet
ApprouverapprovedLe run passe en completed et l'événement run.completed est émis.
RejeterrejectedLe run passe en failed avec le code review_rejected ; l'événement run.failed est émis.
RenvoyerreturnedL'agent reprend avec votre consigne, obligatoire dans note.

Chaque décision est tracée avec son auteur, sa date et sa note. Elle est ajoutée au rapport du run, apparaît dans le fil Live et dans le journal d'audit.

Traiter les revues hors de FORGE

Si vos analystes travaillent dans un autre outil, abonnez un webhook à run.needs_review : la charge utile contient run_id, agent_id et reasons. Retrouvez ensuite la revue dans GET /v1/reviews et envoyez la décision.

# Revues ouvertes, triées par échéance
curl "https://api.forge.example/v1/reviews?status=open" \
  -H "Authorization: Bearer $FORGE_API_KEY"

# Renvoyer le run à l'agent avec une consigne
curl -X POST https://api.forge.example/v1/reviews/<review_id>/decide \
  -H "Authorization: Bearer $FORGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "status": "returned", "note": "Reconstitue la chaîne de détention à partir des actes déposés au RNE (rne.documents)" }'
Pendant un run, les appels d'outils en mode confirm s'approuvent ou se refusent directement dans le Live (actions approve et reject), sans passer par la file.