Référence de SDK d’agent Cortex Code – Python¶
Cette rubrique fournit la référence d’API complète pour le SDK d’Agent Cortex Code pour Python, y compris l’ensemble des fonctions, classes et types.
Installation¶
Requiert Python 3.10 ou une version ultérieure. Dépendances : anyio, mcp, typing_extensions. Importer le paquet en tant que cortex_code_agent_sdk. Le SDK attend la CLI Cortex Code à installer séparément. Si ce n’est pas sur votre PATH, définir CORTEX_CODE_CLI_PATH=/path/to/cortex ou transmettre cli_path dans CortexCodeAgentOptions.
Fonctions¶
query()¶
La fonction principale pour interagir avec Cortex Code. Renvoie un itérateur asynchrone qui produit les messages au fur et à mesure qu’ils arrivent.
Paramètres
Paramètre |
Type |
Description |
|---|---|---|
|
|
Chaîne d’invite utilisateur, ou itérable asynchrone de dicts de messages pour l’entrée de streaming |
|
|
Options de configuration. La valeur par défaut est |
|
|
Transport personnalisé. La valeur par défaut est un transport CLI de sous-processus |
Renvoie
Un itérateur asynchrone produisant des objets Message (AssistantMessage, ResultMessage, UserMessage, SystemMessage, StreamEvent).
Exemple
CortexCodeSDKClient¶
Pour les conversations interactives à plusieurs tours. Prend en charge le protocole de gestionnaire de contexte asynchrone.
Méthodes¶
Méthode |
Description |
|---|---|
|
Connectez-vous au processus CLI et gardez la session ouverte pour les tours ultérieurs. |
|
Envoyer une invite à l’agent |
|
Traiter tous les messages de l’agent |
|
Traiter les messages jusqu’à |
|
Envoyer un signal d’interruption |
|
Modifier le mode d’autorisation pour les tours ultérieurs dans la conversation |
|
Modifier le modèle pendant la conversation |
|
Arrêter une tâche de sous-agent en cours d’exécution |
|
Se déconnecter du processus CLI |
Options¶
Configuration transmise à query() ou CortexCodeSDKClient.
Option |
Type |
Par défaut |
Description |
|---|---|---|---|
|
|
|
Répertoire de travail pour la session |
|
|
|
Modèle à utiliser. Utilisez |
|
|
|
Nom de la connexion Snowflake à partir des paramètres de la connexion CLI , généralement |
|
|
|
Nom du profil (chargements à partir de |
|
|
|
|
|
|
|
Indicateur de sécurité requis lors de l’utilisation de |
|
|
|
Outils pour approuver automatiquement sans invite |
|
|
|
Outils pour toujours refuser |
|
|
|
Limiter le nombre de tours d’agents par requête |
|
|
|
Niveau d’effort du modèle : |
|
|
|
Invite système personnalisée. Transmettez une chaîne pour un remplacement complet, ou |
|
|
|
Poursuivre la session la plus récente au lieu d’en démarrer une nouvelle |
|
|
|
ID de session pour reprendre une conversation précédente. |
|
|
|
Lors de la reprise, passer à un nouvel ID de session au lieu de poursuivre la session précédente |
|
|
|
Répertoires supplémentaires à ajouter au contexte de l’agent |
|
|
|
Variables d’environnement à transmettre au processus CLI |
|
|
|
Configurations de plug-in. Prend actuellement en charge les plug-ins locaux : |
|
|
|
Un :py:classe : |
|
|
|
Configurations de serveur MCP externes. Transmettez un dict qui mappe les noms de serveurs vers les configs stio, HTTP, ouSSE. Le transport SDK actuel prend en charge uniquement la configuration MCP basée sur dict. |
|
|
|
Gestionnaires d’événements de hook (voir Hooks) |
|
|
|
Rappel de l’autorisation de l’outil personnalisé (voir Autorisations de l’outil) |
|
|
|
Inclure des événements de streaming au niveau des jetons ( |
|
|
|
Format de sortie structuré. Exemple : |
|
|
|
Désactiver les serveurs MCP |
|
|
|
ID de session explicite à utiliser |
|
|
|
Définition des sources à charger : |
|
|
|
Chemin vers le binaire CLI. S’il est omis, le SDK contrôle d’abord |
|
|
|
Indicateurs de CLI supplémentaires en tant que paires clé-valeur. Utilisez la valeur |
|
|
|
Rappel invoqué avec chaque ligne de sortie stderr CLI |
Types de message¶
AssistantMessage¶
Émis lorsque l’agent produit une réponse. Contient un ou plusieurs blocs de contenu.
AssistantMessageError est l’un ou l’autre des états suivants : "authentication_failed", "billing_error", "rate_limit", "invalid_request", "server_error", "unknown".
ResultMessage¶
Émis lorsque l’agent termine un tour. Contrôlez la réussite ou l’échec de subtype et is_error.
UserMessage¶
Renvoyé lorsqu’un message utilisateur est traité.
SystemMessage¶
Événements du système tels que l’initialisation des sessions et les mises à jour des tâches.
Le SDK fournit également des sous-classes spécialisées pour les messages système liés aux tâches :
Sous-classe |
Description |
|---|---|
|
Émis lors du démarrage d’une tâche de sous-agent. Champs : |
|
Émis pendant l’exécution d’une tâche. Champs : |
|
Émis lorsqu’une tâche se termine, échoue ou est arrêtée. Champs : |
Ces sous-classes étendent SystemMessage, afin que les contrôles isinstance(msg, SystemMessage) existants continuent de correspondre.
StreamEvent¶
Mises à jour partielles des messages pendant le streaming au niveau du jeton. Nécessite include_partial_messages=True.
StreamEvent est émis pour les blocs de texte partiels et les blocs de réflexion. Les appels complets des outils arrivent toujours comme blocs de contenu AssistantMessage et les résultats des outils arrivent toujours sous la forme de blocs de contenu UserMessage.
Blocs de contenu¶
Type |
Champs |
|---|---|
|
|
|
|
|
|
|
|
Hooks¶
Les hooks vous permettent d’intercepter les événements du cycle de vie à des fins de journalisation, de validation ou de comportement personnalisé.
Configuration des hooks¶
Les hooks sont configurés via l’option hooks sur CortexCodeAgentOptions. Chaque événement de hook correspond à une liste d’objets HookMatcher.
Signature de rappel du hook¶
entrée : Entrée de hook à typage fort (voir tableau ci-dessous)
tool_use_id: Identificateur d’utilisation de l’outil facultatif
contexte :
HookContextavec un champsignal(réservé pour la prise en charge future du signal d’annulation)
Événements de hooks¶
Événement |
Input Type |
Description |
|---|---|---|
|
|
Avant l’exécution d’un outil. Champs : |
|
|
Une fois qu’un outil est terminé. Champs : |
|
|
Lorsque l’utilisateur soumet une invite. Champs : |
|
|
Lorsque l’agent s’arrête. Champs : |
|
|
Lorsqu’un sous-agent se termine. Champs : |
|
|
Sur les événements de notification. Champs : |
|
|
Lorsqu’un outil demande une autorisation. Champs : |
|
|
Avant le compactage du contexte. Champs : |
Toutes les entrées de hook incluent des champs de base :session_id, transcript_path, cwd, et permission_mode en option.
Sortie du hook¶
Les rappels de hook renvoient un objet de sortie synchrone :
Note
Le SDK Python utilise continue_ (avec un trait de soulignement de fin) pour éviter le conflit de mots-clés Python. La valeur est automatiquement convertie en continue lorsqu’il est envoyé à CLI.
Autorisations de l’outil¶
Le rappel can_use_tool vous permet de contrôler par programme les autorisations des outils.
Pour de nombreux contrôles d’autorisation d’outils ordinaires, l’entrée du rappel contient des champs tels que {"action": ..., "resource": ...}. Le résultat d’autorisation/de refus et le message de refus facultatif sont utilisés pour ces contrôles. updated_input est utilisé pour les pseudo-outils routés via le SDK tels que AskUserQuestion et ExitPlanMode, qui contiennent des champs spécifiques à l’outil.
Types
Configuration du serveur MCP¶
L’option mcp_servers accepte un dict mappant les noms des serveurs vers les configurations de serveur MCP externes.
Type de configuration |
Description |
|---|---|
|
Processus externes via stio. Champs : |
|
Événements envoyés par le serveur Champs : |
|
Transport HTTP. Champs : |
Exemple
Traitement des erreurs¶
Types d’erreur¶
Exception |
Description |
|---|---|
|
Exception de base pour toutes les erreurs SDK |
|
Binaire CLI introuvable sur PATH |
|
Impossible de se connecter à ou de communiquer avec CLI |
|
Le processus CLI s’est terminé de manière inattendue |
|
Impossible d’analyser JSON depuis la sortie CLI |
Avis juridiques¶
Lorsque votre configuration de Cortex Code utilise un modèle fourni conformément aux Conditions de répercussion relatives aux modèles et aux services, votre utilisation de ce modèle est en outre soumise aux conditions de ce modèle sur cette page.
La classification des données d’entrées et de sorties est présentée dans la table suivante.
Classification des données d’entrée |
Classification des données de sortie |
Désignation |
|---|---|---|
Usage Data |
Données sur les clients |
Fonctionnalités AI couvertes [1] |
Pour plus d’informations, reportez-vous à Snowflake AI et ML.