Référence de SDK d’agent Cortex Code Agent – TypeScript¶
Cette rubrique fournit le référence d’API complète pour le SDK d’Agent Cortex Code pour TypeScript, y compris l’ensemble des fonctions, types et interfaces.
Installation¶
Nécessite Node.js 18 ou version supérieure. Le paquet est en ESM uniquement. Le SDK attend la CLI Cortex Code à installer séparément. Si ce n’est pas sur votre PATH, définissez CORTEX_CODE_CLI_PATH=/path/to/cortex ou transférez cliPath dans les options de session.
Fonctions¶
query()¶
La fonction principale pour interagir avec Cortex Code. Crée un générateur asynchrone qui diffuse les messages à mesure qu’ils arrivent.
Paramètres
Paramètre |
Type |
Description |
|---|---|---|
|
|
Une seule invite utilisateur ou un itérable asynchrone des messages utilisateur du SDK pour la saisie de flux |
|
|
Objet de configuration facultatif (voir Options) |
Returns
Un objet Query qui étend AsyncGenerator<CortexCodeEvent> avec des méthodes de contrôle supplémentaires.
Exemple
createCortexCodeSession()¶
Crée une session persistante pour les conversations à plusieurs tours.
Exemple
Objet de requête¶
Renvoyé par query(). Étend AsyncGenerator<CortexCodeEvent>
Méthode |
Description |
|---|---|
|
Envoyer SIGINT vers le processus sous-jacent |
|
Modifier le mode d’autorisation pour les tours suivants dans la requête active |
|
Modifier le modèle pour les tours suivants |
|
Renvoyer les métadonnées « initialize-handshake » à partir de la CLI |
|
Renvoyer les métadonnées de la commande Slash à partir de la réponse d’initialisation, lorsqu’elles sont annoncées par la CLI |
|
Renvoyer les métadonnées du modèle à partir de la réponse d’initialisation, lorsqu’elles sont annoncées par la CLI |
|
Renvoyer les métadonnées de l’agent personnalisé à partir de la réponse d’initialisation, lorsqu’elles sont annoncées par la CLI |
|
Renvoyer les métadonnées du compte à partir de la réponse d’initialisation, lorsqu’elles sont annoncées par la CLI |
|
Messages utilisateur du SDK supplémentaire de flux dans la requête active |
|
Annuler une tâche d’arrière-plan en cours d’exécution par ID |
|
Fermer la session et mettre fin au processus |
Interface CortexCodeSession¶
Renvoyé par createCortexCodeSession(). Prend en charge les conversations à plusieurs tours et met en œuvre AsyncDisposable pour une utilisation avec await using (Node.js 24+).
Propriété / Méthode |
Description |
|---|---|
|
PID du processus CLI sous-jacent |
|
Envoyer un texte brut ou un message utilisateur du SDK structuré |
|
Streamer les événements de l’agent |
|
Renvoyer les métadonnées « initialize-handshake » à partir de la CLI |
|
Envoyer un signal d’interruption |
|
Modifier le mode d’autorisation pour les tours suivants dans la session |
|
Modifier le modèle en cours de session |
|
Annuler une tâche d’arrière-plan en cours d’exécution par ID |
|
Terminer la session et terminer le processus |
|
Appelle |
Options¶
Configuration transmise à query() ou createCortexCodeSession().
Option |
Type |
Par défaut |
Description |
|---|---|---|---|
|
|
Répertoire de travail du processus actuel |
Répertoire de travail pour la session. S’il est omis, le SDK hérite du répertoire de travail du processus actuel. |
|
|
CLI par défaut |
Modèle à utiliser. Utilisez |
|
|
CLI par défaut |
Nom de la connexion Snowflake à partir des paramètres de la connexion CLI , généralement |
|
|
|
Nom du profil (chargements à partir de |
|
|
|
ID de session pour reprendre une conversation précédente. |
|
|
|
Poursuivre la conversation la plus récente. Reprend la dernière session sans avoir besoin d’un ID de session. |
|
|
|
Créez un fork de session reprise pour créer un ID de nouvelle session au lieu de continuer sur place. Utilisez avec |
|
|
|
ID de session explicite pour la conversation. S’il est omis, la CLI en génère un automatiquement. |
|
|
|
|
|
|
|
Indicateur de sécurité requis lors de l’utilisation de |
|
|
|
Outils pour approuver automatiquement sans invite |
|
|
|
Outils pour toujours refuser |
|
|
Gestionnaire d’autorisation personnalisé appelé avant chaque exécution d’outil. Voir Rappel de canUseTool. |
|
|
|
|
Nom de l’outil MCP utilisé pour les invites d’autorisation. Lorsque |
|
|
|
Nombre maximum de tours agentiques avant l’arrêt. Lorsqu’il est atteint, la session émet un résultat |
|
|
|
Niveau d’effort de réflexion pour le modèle. L’un des niveaux suivants : |
|
|
|
Répertoires de travail supplémentaires à mettre à la disposition de la session |
|
|
|
Répertoires du plugin à charger. Accepte les chemins sous forme de chaînes ou d’objets |
|
|
|
Variables d’environnement fusionnées dans l’environnement de processus généré. Définissez une clé sur |
|
|
|
Envoyez un signal d’interruption en appelant |
|
|
|
Invite système personnalisée. Transmettez une chaîne pour remplacer entièrement la valeur par défaut, ou un SystemPromptPreset pour l’étendre. |
|
|
|
Texte ajouté à l’invite système par défaut. Utilisez cette option pour ajouter des instructions sans remplacer l’invite intégrée. |
|
|
|
Rappels de hook pour intercepter l’exécution de l’outil et d’autres événements d’agent. Voir Hooks. |
|
|
|
Définition des sources à charger. Tableau de |
|
|
|
Inclure les événements de streaming au niveau du jeton |
|
|
|
Configurations de serveur MCP externes. Les clés sont des noms de serveur, les valeurs sont des configurations de serveur (par exemple, |
|
|
|
Désactiver les serveurs MCP |
|
|
|
Sortie structurée – valide la réponse finale par rapport au schéma JSON |
|
|
|
Chemin vers binaire CLI personnalisé. S’il est omis, le SDK contrôle d’abord |
|
|
|
Arguments CLI supplémentaires en tant que paires clé-valeur |
Rappel de canUseTool¶
Un gestionnaire d’autorisation personnalisé appelé avant chaque exécution d’outil. Renvoie un résultat d’autorisation ou de refus pour contrôler si l’appel de l’outil se poursuit.
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. updatedInput est utilisé pour les pseudo-outils routés via le SDK tels que AskUserQuestion et ExitPlanMode, qui contiennent des champs spécifiques à l’outil.
Exemple
SystemPromptPreset¶
Au lieu de remplacer entièrement l’invite système, utilisez un objet prédéfini pour étendre l’invite intégrée.
Exemple
Hooks¶
Les hooks vous permettent d’intercepter les événements de l’agent tels que l’exécution de l’outil. Chaque événement de hook correspond à un tableau de correspondances, et chaque correspondance contient un modèle facultatif et un ou plusieurs rappels.
Exemple
Types de message¶
Événements générés par query() et session.stream() :
SDKAssistantMessage¶
Émis lorsque l’agent produit une réponse. Contient un ou plusieurs blocs de contenu.
SDKResultMessage¶
Émis lorsque l’agent termine un tour. Contrôlez la réussite ou l’erreur de subtype.
SDKUserMessage¶
Renvoyé lorsqu’un message utilisateur est traité.
SDKSystemMessage¶
Événements du système tels que l’initialisation de la session.
Blocs de contenu¶
Type |
Champs |
|---|---|
|
|
|
|
|
|
|
|
Événements en streaming¶
Type |
Description |
|---|---|
|
Streaming partiel du texte/de la réflexion (nécessite |
|
|
|
|
SDKPartialAssistantMessage est émis pour les blocs de texte partiels et les blocs de réflexion. Les appels complets des outils arrivent toujours sous la forme de blocs``AssistantMessage``, et les résultats des outils arrivent toujours sous la forme de blocs UserMessage.
Sortie structurée¶
Forcez l’agent à renvoyer une réponse correspondant à un schéma JSON :
Pour plus d’informations, voir Sortie structurée.
Traitement des erreurs¶
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.