Erreurs

Les erreurs levées par le SDK et leurs classes de base. except agents.AgentsError intercepte toutes les erreurs levées par un appel stable, qu'elles proviennent du SDK ou de l'environnement d'exécution de l'agent. Les erreurs d'argument restent des ValueError ou des TypeError, et un appel annulé lève asyncio.CancelledError.

Réutiliser une clé idempotency_key= avec d'autres options lève SessionIdempotencyConflictError. Envoyer un message à la session d'un sous-agent lève agents.UnsupportedSessionProcedureError.

NomDéfinition
AgentsErrorLa classe de base des erreurs levées par le SDK.
SdkErrorUn appel refusé par le SDK, par exemple en raison d'une valeur d'argument incorrecte ou d'un environnement d'exécution local déjà fermé.
SessionNotFoundErrorUn appel désigne une session qui n'existe pas ou à laquelle vous n'avez pas accès en lecture.
TurnNotFoundErrorUne référence à un tour désigne un tour absent de sa session.
InvalidCursorErrorafter= ne correspond pas à une position dans la session lue.
ObservationLostLa lecture des événements de la session ou des callbacks en attente de ses sous-agents n'a pas pu reprendre après la perte de connexion, ou le flux d'événements s'est terminé.
OutcomeUnknownErrorLe SDK n'a pas pu confirmer à temps si la session avait démarré ou si la requête avait été appliquée.
SessionStartupTimeoutErrorLa session a été créée, mais elle n'était pas prête avant l'expiration du délai.
SessionBusyErrorLa session ne peut pas accepter le message pour le moment, et rien n'a été appliqué.
SessionConfigMismatchErrorL'agent qui reprend une session locale enregistrée n'est pas celui qui l'a démarrée.
SessionInUseErrorUn autre processus maintient cette session locale enregistrée ouverte, ce qui empêche le processus actuel de la reprendre.
SessionTerminatedErrorLa session est fermée ou terminée et n'accepte plus d'appels.
SessionIdempotencyConflictErrorUne clé d'idempotence a été réutilisée pour une requête différente, ou les requêtes ne peuvent pas être comparées.
LegacySessionErrorCette session a été créée par une ancienne version de la plateforme, et ce SDK ne peut pas l'ouvrir.
RemoteAgentDeploymentNotFoundErrorL'agent déployé associé à cette référence n'existe plus, par exemple à la suite d'un arrêt.
APIStatusErrorMistral a répondu à une requête HTTP avec un code de statut d'erreur.
AuthenticationErrorMistral a refusé la clé API : HTTP 401.
PermissionDeniedErrorLa clé API n'autorise pas cette action : HTTP 403.
RateLimitErrorTrop de requêtes : HTTP 429.
InternalServerErrorUne erreur s'est produite côté Mistral : HTTP 500 ou supérieur.
APIConnectionErrorUne requête HTTP n'a reçu aucune réponse : la connexion a échoué ou le réseau l'a interrompue.
APITimeoutErrorUne requête HTTP a dépassé le délai d'attente.
UnsupportedAgentFeatureErrorL'environnement d'exécution de l'agent ne prend pas en charge cette fonctionnalité du SDK Les agents.
UnsupportedSessionProcedureErrorL'environnement d'exécution de la session ne prend pas en charge cet appel, et rien n'a été envoyé.
ClientToolAnswerErrorUne réponse d'outil côté client a été exécutée, mais son envoi à la session a échoué.
MistralConnectorNotFoundErrorUn nom de connecteur ne correspond à aucun connecteur visible par l'utilisateur qui exécute la session.
AgentsError

AgentsError

class AgentsError(Exception)

La classe de base des erreurs levées par le SDK.

except agents.AgentsError intercepte les erreurs des appels de session ou de tour, pour les sessions locales et déployées, y compris une erreur HTTP (APIStatusError), une erreur de connexion (APIConnectionError) ou une erreur signalée par la session, comme SessionBusyError. Les erreurs d'argument restent des ValueError ou des TypeError, et un appel annulé lève asyncio.CancelledError.

SdkError

SdkError

class SdkError(AgentsError, ValueError)

Un appel refusé par le SDK, par exemple en raison d'une valeur d'argument incorrecte ou d'un environnement d'exécution local déjà fermé.

Sessions et tours

Sessions et tours

SessionNotFoundError

SessionNotFoundError

class SessionNotFoundError(AgentsError, LookupError)

Un appel désigne une session qui n'existe pas ou à laquelle vous n'avez pas accès en lecture.

Pour un agent déployé, aucune session ne porte cet identifiant, ou la clé API utilisée appartient à un espace de travail qui n'a pas accès à cette session en lecture. Pour une session locale, aucune session portant cet identifiant n'a été exécutée dans ce processus, ou un bloc agents.local_runtime() l'a libérée et la boucle d'événements ne la conserve plus en mémoire : chaque boucle conserve les 10 000 sessions les plus récentes. Dans les deux cas, scope="tree" de list_sessions lève également cette erreur si la racine est un sous-agent.

AttributTypeDescription
session_idstrL'identifiant indiqué dans l'appel.
TurnNotFoundError

TurnNotFoundError

class TurnNotFoundError(AgentsError, LookupError)

Une référence à un tour désigne un tour absent de sa session.

AttributTypeDescription
session_idstrL'identifiant de la session.
turn_idstrL'identifiant indiqué dans la référence.
InvalidCursorError

InvalidCursorError

class InvalidCursorError(SdkError)

after= ne correspond pas à une position dans la session lue.

Le curseur n'a pas été fourni par la session, ou il s'agit d'un curseur ou d'un enregistrement d'une autre session. Un enregistrement ou un curseur d'une autre session lève l'erreur avant toute lecture, y compris avec iter_events(). Un curseur que la session n'a jamais fourni lève l'erreur lorsque la session le lit : à la première itération de iter_events(), ou pendant l'exécution du tour pour result(). cursor est le curseur transmis, ou le cursor de l'enregistrement si un enregistrement est transmis. Un curseur enregistré par le SDK 1.0 est accepté ; l'erreur l'affiche avec l'identifiant de cette session.

Un programme qui stocke des curseurs peut intercepter cette erreur et reprendre la lecture sans curseur :

try:
    state = await turn.result(after=stored_cursor)
except agents.InvalidCursorError:
    state = await turn.result()
AttributTypeDescription
cursorstr | NoneLe curseur transmis, ou le cursor de l'enregistrement si un enregistrement est transmis.
ObservationLost

ObservationLost

class ObservationLost(AgentsError, RuntimeError)

La lecture des événements de la session ou des callbacks en attente de ses sous-agents n'a pas pu reprendre après la perte de connexion, ou le flux d'événements s'est terminé.

Rien n'a été arrêté : la session continue de s'exécuter. cursor est la position jusqu'à laquelle les événements ont été fournis, ou None si aucun ne l'a été ; reprenez la lecture après cette position pour ne manquer aucun événement.

AttributTypeDescription
session_idstrL'identifiant de la session.
cursorstr | NoneLa position jusqu'à laquelle les événements ont été fournis, ou None si aucun ne l'a été.
OutcomeUnknownError

OutcomeUnknownError

class OutcomeUnknownError(AgentsError, RuntimeError)

Le SDK n'a pas pu confirmer à temps si la session avait démarré ou si la requête avait été appliquée.

idempotency_key est la clé à utiliser pour réessayer, y compris si elle a été générée par le SDK, ou l'identifiant du callback pour une réponse à un callback. Sa valeur est None pour une opération sans clé, ainsi que pour un start_turn qui a trouvé un autre tour en cours sur un agent déployé avec un ancien SDK : cette clé serait de nouveau refusée. Réessayez avec idempotency_key=None pour que le SDK génère une nouvelle clé.

AttributTypeDescription
idempotency_keystr | NoneLa clé à utiliser pour réessayer, ou l'identifiant du callback pour une réponse à un callback. None si l'opération n'a pas de clé ou si une nouvelle tentative avec cette clé serait de nouveau refusée.
SessionStartupTimeoutError

SessionStartupTimeoutError

class SessionStartupTimeoutError(OutcomeUnknownError)

La session a été créée, mais elle n'était pas prête avant l'expiration du délai.

La session n'est pas annulée. Utilisez agent.session(session_id) (ou Agent.load_from(agent_name=...).session(session_id) depuis un autre environnement) pour vous y rattacher sans démarrer une autre session.

AttributTypeDescription
session_idstrL'identifiant de la session créée, pour vous y rattacher avec agent.session(session_id).
timeout_secondsfloatLa durée pendant laquelle le SDK a attendu que la session soit prête.
SessionBusyError

SessionBusyError

class SessionBusyError(AgentsError, RuntimeError)

La session ne peut pas accepter le message pour le moment, et rien n'a été appliqué.

Cette erreur est levée après plusieurs tentatives de la requête pendant un certain temps. Réessayez la même requête plus tard.

AttributTypeDescription
retry_afterfloat | NoneLe délai d'attente en secondes avant une nouvelle tentative, s'il est indiqué par le serveur ; sinon None.
SessionConfigMismatchError

SessionConfigMismatchError

class SessionConfigMismatchError(AgentsError, RuntimeError)

L'agent qui reprend une session locale enregistrée n'est pas celui qui l'a démarrée.

Une session enregistrée ne peut reprendre qu'avec le même modèle, les mêmes instructions, les mêmes outils et les autres paramètres utilisés lors de son enregistrement. Reprenez-la avec cet agent ou démarrez une nouvelle session.

AttributTypeDescription
session_idstrL'identifiant de la session enregistrée.
SessionInUseError

SessionInUseError

class SessionInUseError(AgentsError, RuntimeError)

Un autre processus maintient cette session locale enregistrée ouverte, ce qui empêche le processus actuel de la reprendre.

Les sessions locales enregistrées (journal_factory= de agents.local_runtime()) verrouillent leur journal tant qu'un processus les maintient ouvertes. Réessayez lorsque l'autre processus a quitté son bloc agents.local_runtime() ou s'est terminé.

AttributTypeDescription
session_idstrL'identifiant de la session enregistrée.
SessionTerminatedError

SessionTerminatedError

class SessionTerminatedError(AgentsError, RuntimeError)

La session est fermée ou terminée et n'accepte plus d'appels.

SessionIdempotencyConflictError

SessionIdempotencyConflictError

class SessionIdempotencyConflictError(AgentsError, RuntimeError)

Une clé d'idempotence a été réutilisée pour une requête différente, ou les requêtes ne peuvent pas être comparées.

Les requêtes ne peuvent pas être comparées si la première est trop ancienne, ou si un appel local a été annulé après avoir appliqué le message, mais avant d'avoir enregistré la clé. Dans les deux cas, la première requête associée à la clé a été appliquée : n'envoyez donc pas ce message à nouveau avec une nouvelle clé. Cet appel n'a rien appliqué. Utilisez une nouvelle clé pour une nouvelle requête.

AttributTypeDescription
idempotency_keystrLa clé réutilisée.
LegacySessionError

LegacySessionError

class LegacySessionError(UnsupportedAgentFeatureError)

Cette session a été créée par une ancienne version de la plateforme, et ce SDK ne peut pas l'ouvrir.

Toute session démarrée par agents.Agent peut être ouverte. Ce SDK ne peut ni lire ni suivre une session plus ancienne, ni lui envoyer de messages : démarrez une nouvelle session.

AttributTypeDescription
session_idstrL'identifiant de la session.
featurestrToujours "legacy task protocol", la valeur qui identifie une session créée par une ancienne version de la plateforme.
reasonstrLa raison pour laquelle ce SDK ne peut pas ouvrir la session.
RemoteAgentDeploymentNotFoundError

RemoteAgentDeploymentNotFoundError

class RemoteAgentDeploymentNotFoundError(AgentsError, RuntimeError)

L'agent déployé associé à cette référence n'existe plus, par exemple à la suite d'un arrêt.

Erreurs HTTP

Erreurs HTTP

APIStatusError

APIStatusError

class APIStatusError(AgentsError, httpx.HTTPStatusError)

Mistral a répondu à une requête HTTP avec un code de statut d'erreur.

AttributTypeDescription
responsehttpx.ResponseLa réponse HTTP, avec son code de statut, ses en-têtes et son corps.
status_codeintLe code de statut HTTP de la réponse.
AuthenticationError

AuthenticationError

class AuthenticationError(APIStatusError)

Mistral a refusé la clé API : HTTP 401.

PermissionDeniedError

PermissionDeniedError

class PermissionDeniedError(APIStatusError)

La clé API n'autorise pas cette action : HTTP 403.

RateLimitError

RateLimitError

class RateLimitError(APIStatusError)

Trop de requêtes : HTTP 429. La même requête peut réussir plus tard.

retry_after est le délai d'attente en secondes indiqué par le serveur, ou None si aucun délai n'est indiqué, par exemple pour une limite de sessions simultanées. Lors du démarrage d'une session, le SDK attend déjà l'expiration d'un Retry-After qui se termine dans les 30 secondes suivant le début du démarrage avant de lever cette erreur.

AttributTypeDescription
retry_afterfloat | NoneLe délai d'attente en secondes avant une nouvelle tentative, s'il est indiqué par le serveur ; sinon None.
InternalServerError

InternalServerError

class InternalServerError(APIStatusError)

Une erreur s'est produite côté Mistral : HTTP 500 ou supérieur.

APIConnectionError

APIConnectionError

class APIConnectionError(AgentsError, httpx.TransportError)

Une requête HTTP n'a reçu aucune réponse : la connexion a échoué ou le réseau l'a interrompue.

Il s'agit également d'une instance de la classe d'erreur httpx concernée, par exemple httpx.ConnectError. Ce n'est pas une instance de la classe intégrée ConnectionError.

APITimeoutError

APITimeoutError

class APITimeoutError(APIConnectionError, httpx.TimeoutException)

Une requête HTTP a dépassé le délai d'attente. Ce n'est pas une instance de la classe intégrée TimeoutError.

Fonctionnalités non prises en charge

Fonctionnalités non prises en charge

UnsupportedAgentFeatureError

UnsupportedAgentFeatureError

class UnsupportedAgentFeatureError(SdkError, RuntimeError)

L'environnement d'exécution de l'agent ne prend pas en charge cette fonctionnalité du SDK Les agents.

AttributTypeDescription
featurestrLa fonctionnalité non prise en charge.
reasonstrLa raison pour laquelle elle n'est pas prise en charge.
UnsupportedSessionProcedureError

UnsupportedSessionProcedureError

class UnsupportedSessionProcedureError(AgentsError, RuntimeError)

L'environnement d'exécution de la session ne prend pas en charge cet appel, et rien n'a été envoyé.

AttributTypeDescription
methodstrL'appel non pris en charge.
backendstrUn nom interne de l'environnement d'exécution de la session, destiné aux logs.
reasonstrLa raison pour laquelle l'appel n'est pas pris en charge.
Outils et connecteurs

Outils et connecteurs

ClientToolAnswerError

ClientToolAnswerError

class ClientToolAnswerError(AgentsError, RuntimeError)

Une réponse d'outil côté client a été exécutée, mais son envoi à la session a échoué.

callback_id, session_id et turn_id identifient l'appel : un appel de sous-agent utilise la session et le tour du sous-agent. L'erreur d'envoi est la __cause__. Le tour continue de s'exécuter, et l'appel échoue à l'expiration du délai de son callback : le modèle reçoit une erreur d'outil. Pour suivre le tour, utilisez agent.session(session_id).turn(turn_id).

AttributTypeDescription
callback_idstrL'identifiant de l'appel d'outil côté client.
session_idstrL'identifiant de la session dans laquelle l'appel a lieu : celle du sous-agent pour un appel de sous-agent.
turn_idstrL'identifiant du tour dans lequel l'appel a lieu.
MistralConnectorNotFoundError

MistralConnectorNotFoundError

class MistralConnectorNotFoundError(AgentsError, LookupError)

Un nom de connecteur qui ne correspond à aucun connecteur visible par l'utilisateur qui exécute la session.

Aucun nom dans connectors= ne déclenche cette erreur : la session démarre sans ce connecteur et envoie un agents.Notice, dont details["connector"] contient le nom et details["reason"] indique les correspondances proches. connector_name est le nom, et close_matches contient les noms des connecteurs visibles dont le nom est proche.

AttributTypeDescription
connector_namestrLe nom du connecteur tel qu'il a été saisi.
close_matchesSequence[str]Les noms des connecteurs visibles dont le nom est proche, le cas échéant.