SDK Agent Cortex Code

Le SDK Agent Cortex Code vous permet de créer des applications d’AI agentiques en utilisant Python et TypeScript. Vos agents peuvent lire des fichiers, exécuter des commandes, rechercher des bases de code, exécuter du code SQL et modifier du code, en utilisant les mêmes outils et la même boucle d’agent qui alimentent Cortex Code.

Le SDK comprend des outils intégrés pour les opérations sur les fichiers, les commandes shell et la modification de code, afin que votre agent puisse commencer à fonctionner immédiatement sans que vous ayez à mettre en œuvre l’exécution de l’outil.

import { query } from "cortex-code-agent-sdk";

for await (const message of query({
  prompt: "What does this codebase do? Give me a one-paragraph summary.",
  options: { cwd: process.cwd() },
})) {
  if (message.type === "assistant") {
    for (const block of message.content) {
      if (block.type === "text") process.stdout.write(block.text);
    }
  }
}

Prise en main

Conditions préalables

Exigence

Détails

CLI de Cortex Code

Installer avec curl -LsS https://ai.snowflake.com/static/cc-scripts/install.sh | sh

Connexion Snowflake

Configuré via les paramètres de connexion de la CLI Snowflake, généralement dans ~/.snowflake/connections.toml. Les configurations existantes dans ~/.snowflake/config.toml sont également pris en charge. Transmettez l’option connection ou définissez ensemble``default_connection_name`` dans le fichier TOML. Voir Configuration des connexions.

Node.js (TypeScript)

Version 18.0.0 (ou ultérieure)

Python (Python SDK)

Version 3.10 (ou ultérieure)

1. Installer Cortex Code CLI

Installez la CLI.

curl -LsS https://ai.snowflake.com/static/cc-scripts/install.sh | sh

2. Installer le SDK

Installez le SDK depuis npm ou PyPI :

npm install cortex-code-agent-sdk

3. Configurer la connexion Snowflake.

Le SDK s’authentifie via les paramètres de connexion de la CLI Snowflake. Ajoutez une connexion à ~/.snowflake/connections.toml ou utilisez une configuration existante dans ~/.snowflake/config.toml (voir Configuration des connexions) :

[my-connection]
account = "myorg-myaccount"
user = "myuser"
authenticator = "externalbrowser"

Le SDK utilise la connexion par défaut de la CLI, sauf si vous en spécifiez une explicitement via l’option connection.

Si la CLI Cortex Code n’est pas sur votre PATH, pointez le SDK vers celle-ci en définissant CORTEX_CODE_CLI_PATH=/path/to/cortex ou en transmettant cliPath (TypeScript) ou cli_path (Python) dans les options SDK.

4. Exécuter votre premier agent

L’exemple suivant crée un agent qui explore votre projet et résume ce qu’il fait :

import { query } from "cortex-code-agent-sdk";

for await (const message of query({
  prompt: "What does this codebase do? Give me a one-paragraph summary.",
  options: { cwd: process.cwd() },
})) {
  if (message.type === "assistant") {
    for (const block of message.content) {
      if (block.type === "text") process.stdout.write(block.text);
    }
  }
  if (message.type === "result") {
    console.log("\nDone:", message.subtype);
  }
}

Pour un tutoriel plus complet, voir Démarrage rapide.

Capacités

Outils intégrés

Votre agent peut lire des fichiers, exécuter des commandes, exécuter SQL et recherchent des bases de code sans configuration supplémentaire. Les outils disponibles peuvent varier selon l’environnement et les capacités d’exécution :

Outil

Description

Lire

Lire n’importe quel fichier dans le répertoire de travail

Écrire

Créer des nouveaux fichiers

Modifier

Apporter des modifications précises aux fichiers existants

Bash

Exécuter des commandes, des scripts et des opérations git sur le terminal

Glob

Trouver des fichiers par modèle (**/*.ts, src/**/*.py)

Grep

Rechercher dans le contenu d’un fichier à l’aide d’expressions régulières

SQL

Exécuter des requêtes SQL dans Snowflake

Sessions à plusieurs tours

Vous pouvez maintenir le contexte sur plusieurs échanges. L’agent conserve les connaissances relatives aux fichiers lus, aux analyses effectuées et à l’historique des conversations :

import { createCortexCodeSession } from "cortex-code-agent-sdk";

const session = await createCortexCodeSession({ cwd: process.cwd() });

await session.send("Read the authentication module");
for await (const event of session.stream()) {
  if (event.type === "result") break;
}

// Second turn - "it" refers to the auth module from context
await session.send("Now find all places that call it");
for await (const event of session.stream()) {
  if (event.type === "result") break;
}

await session.close();

Vous pouvez également poursuivre une session précédente ou la dupliquer dans une nouvelle :

// Continue the most recent conversation
const session = await createCortexCodeSession({
  cwd: process.cwd(),
  continue: true,
});

// Or fork a resumed session into a new session ID
const forked = await createCortexCodeSession({
  cwd: process.cwd(),
  resume: "previous-session-id",
  forkSession: true,
});

Serveurs MCP

Vous pouvez vous connecter à des systèmes externes via le protocole MCP (Model Context Protocol) :

from cortex_code_agent_sdk import CortexCodeAgentOptions

options = CortexCodeAgentOptions(
    mcp_servers={
        "my-tools": {
            "command": "node",
            "args": ["my-mcp-server.js"],
        },
    },
)

Hooks

Vous pouvez exécuter du code personnalisé à des moments clés du cycle de vie de l’agent. Les événements de hook disponibles incluent PreToolUse, PostToolUse, Stop, UserPromptSubmit et plus. Les hooks sont pris en charge dans les SDKs Python et TypeScript. Voir la:doc:Référence du SDK Python </user-guide/cortex-code-agent-sdk/python-reference> ou la référence du SDK TypeScript pour plus de détails.

Sortie structurée

Vous pouvez forcer l’agent à renvoyer une réponse correspondant à un schéma JSON :

const result = query({
  prompt: "Analyze this codebase",
  options: {
    cwd: ".",
    outputFormat: {
      type: "json_schema",
      schema: {
        type: "object",
        properties: {
          languages: { type: "array", items: { type: "string" } },
          summary: { type: "string" },
        },
        required: ["languages", "summary"],
      },
    },
  },
});

Pour plus d’informations, voir Sortie structurée.

Contrôle des versions

Vous pouvez contrôler le comportement de l’agent via les options de session :

Option

Description

maxTurns / max_turns

Limiter le nombre de rotations agentiques avant que l’agent ne s’arrête

effort

Définir l’effort de réflexion du modèle ("minimal", "low", "medium", "high", "max")

abortController / abort_event

Interrompre l’agent en cours d’exécution au milieu d’un tour. La session reste active pour d’autres invites.

env

Transmettre des variables d’environnement au processus de l’agent

additionalDirectories / add_dirs

Ajouter des répertoires supplémentaires auxquels l’agent peut accéder au-delà du répertoire cwd

plugins

Charger des répertoires de plugins pour des extensions personnalisées

systemPrompt / system_prompt

Remplacer ou ajouter à l’invite système par défaut

settingSources / setting_sources

Contrôler les fichiers de paramètres chargés ("user", "project", "local")

Modèles pris en charge

Définir le modèle à l’aide de l’option model. Snowflake recommande "auto" pour la sélection automatique du modèle disponible avec la plus haute qualité.

Modèle

Identificateur

Auto (recommandé)

auto

Claude Opus 4.6

claude-opus-4-6

Claude Sonnet 4.6

claude-sonnet-4-6

Claude Opus 4.5

claude-opus-4-5

Claude Sonnet 4.5

claude-sonnet-4-5

Claude Sonnet 4.0

claude-4-sonnet

OpenAI GPT 5.2

openai-gpt-5.2

Inférence interrégionale

La disponibilité des modèles varie selon la région. Un administrateur de compte peut activer l’inférence interrégionale pour accéder à des modèles non disponibles localement :

ALTER ACCOUNT SET CORTEX_ENABLED_CROSS_REGION = 'AWS_US';

Pour plus d’informations, voir Inférence interrégionale.

Prochaines étapes