> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zelinqa.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Lire une décision

> Comprendre action, warnings, degraded_reasons et stop_reason après un appel /next.

Après `POST /v1/sessions/{session_id}/next`, examinez **`action` avant de décider quoi afficher**. Une alerte n'arrête pas automatiquement la conversation.

| Champ | Sens | Réaction conseillée |
| - | - | - |
| `action: "ask"` | Au moins une question candidate est disponible ; `decision_id` est présent et `stop_reason` vaut `null`. | Afficher une candidate et conserver la décision pour le tour suivant. |
| `action: "stop"` | Aucune question identifiable ne subsiste ; `candidates` est vide. | Terminer ou transférer la conversation. |
| `warnings` | Signaux métier sur la sélection ; **ce ne sont pas des erreurs HTTP**. | Ajuster la conduite de la conversation selon le signal. |
| `degraded: true` / `degraded_reasons` | La compréhension de ce tour a utilisé un repli. La réponse `/next` reste exploitable. | Journaliser les raisons, éviter de présenter comme certaine une information non confirmée. |
| `stop_reason` | Cause d'un arrêt dur ; `null` lorsque `action` vaut `ask`. | Ne pas confondre avec `warnings`. |

## Avertissements possibles

| Valeur de `warnings` | Ce que cela signifie |
| - | - |
| `max_turns_reached` | La limite **souple** de tours est atteinte ou dépassée ; l'API peut encore proposer une question. |
| `objective_achieved` | Les conditions de réussite de l'objectif sont satisfaites ; votre application décide de terminer ou non. |
| `eligibility_exhausted_fallback` | Le moteur a utilisé une question de repli valide, car le bassin normalement éligible était épuisé. |
| `constraints_relaxed` | Une préférence de sélection `prefer` a été élargie ; les exclusions strictes restent appliquées. |

## Repli et arrêt

`degraded_reasons` peut signaler `semantic_service_unavailable` (analyse sémantique indisponible), `unresolved_previous_turn` (question précédente non résolue) ou `missing_user_text` (réponse absente dans un tour où elle était attendue). `summary_only_context` reste une valeur possible du schéma, mais un résumé seul via `add_context` est désormais un usage normal, non signalé comme dégradé. La seule valeur actuelle de `stop_reason` est `no_question_available` : aucune question compatible avec les exclusions strictes n'est disponible. La limite de tours et l'objectif atteint produisent des **warnings**, pas un arrêt dur.

<Note>
  Exemple : `action: "ask"` avec `warnings: ["max_turns_reached"]` signifie qu'une question est disponible malgré la limite. C'est votre application qui décide de la poser ou d'arrêter.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.