SDK do Cortex Code Agent

O SDK do Cortex Code Agent permite que você crie aplicativos de AI agêntica usando Python e TypeScript. Seus agentes podem ler arquivos, executar comandos, pesquisar bases de código, executar SQL e editar código usando as mesmas ferramentas e o loop do agente que o Cortex Code usa.

O SDK inclui ferramentas internas para operações de arquivo, comandos shell e edição de código, para que seu agente possa começar a trabalhar imediatamente sem você implementar a execução de ferramenta.

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);
    }
  }
}

Introdução

Pré-requisitos

Requisito

Detalhes

CLI do Cortex Code

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

Conexão com o Snowflake

Definida nas configurações de conexão da Snowflake CLI, normalmente em ~/.snowflake/connections.toml. Configurações existentes em ~/.snowflake/config.toml também são permitidas. Passe a opção connection ou defina default_connection_name no arquivo TOML. Consulte Configurando as conexões.

Node.js (TypeScript)

Versão 18.0.0 ou mais recente

Python (SDK Python)

Versão 3.10 ou mais recente

1. Instale a Cortex Code CLI

Instalar a CLI:

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

2. Instale o SDK

Instalar o SDK do npm ou PyPI:

npm install cortex-code-agent-sdk

3. Configure a conexão com o Snowflake

O SDK faz a autenticação usando as configurações de conexão na SnowflakeCLI. Adicione uma conexão a ~/.snowflake/connections.toml ou use uma configuração existente em ~/.snowflake/config.toml (consulte Configurando as conexões):

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

O SDK usa a conexão padrão da CLI, a menos que você especifique uma explicitamente por meio da opção connection.

Se a Cortex CodeCLI não está em seu PATH, aponte o SDK para ele definindo CORTEX_CODE_CLI_PATH=/path/to/cortex ou passando cliPath (TypeScript) ou cli_path (Python) nas opções do SDK.

4. Execute seu primeiro agente

O exemplo a seguir cria um agente que explora seu projeto e resume o que ele faz:

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);
  }
}

Para obter um tutorial mais completo, consulte o Guia de início rápido.

Recursos

Ferramentas internas

Seu agente pode ler arquivos, executar comandos, executar SQL e pesquisar bases de código sem configuração adicional. As ferramentas disponíveis podem variar de acordo com os recursos do ambiente e do tempo de execução:

Ferramenta

Descrição

Read

Ler qualquer arquivo no diretório de trabalho

Write

Criar novos arquivos

Edit

Fazer edições precisas em arquivos existentes

Bash

Executar comandos de terminal, scripts e operações git

Glob

Localizar arquivos por padrão (**/*.ts, src/**/*.py)

Grep

Pesquisar conteúdo de arquivos com regex

SQL

Executar consultas SQL no Snowflake

Sessões multiturno

Você pode manter o contexto entre várias trocas. O agente retém o conhecimento dos arquivos lidos, das análises realizadas e do histórico de conversas:

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();

Você também pode continuar uma sessão anterior ou bifurcá-la em uma nova:

// 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,
});

Servidores MCP

Você pode se conectar a sistemas externos por meio do Model Context Protocol:

from cortex_code_agent_sdk import CortexCodeAgentOptions

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

Ganchos

Você pode executar código personalizado em pontos-chave do ciclo de vida do agente. Os eventos de gancho disponíveis incluem PreToolUse, PostToolUse, Stop, UserPromptSubmit e muito mais. Os ganchos são compatíveis com SDKs Python e TypeScript. Consulte a Referência do SDK Python ou a Referência do SDK TypeScript para obter detalhes.

Saída estruturada

Você pode forçar o agente a retornar uma resposta correspondente a um esquema 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"],
      },
    },
  },
});

Para obter mais informações, consulte Saída estruturada.

Controle de sessão

Você pode controlar o comportamento do agente por meio das opções de sessão:

Opção

Descrição

maxTurns / max_turns

Limitar o número de turnos do agente antes que o agente pare

effort

Definir o esforço de raciocínio do modelo ("minimal", "low", "medium", "high", "max")

abortController / abort_event

Interromper o agente em execução no meio do turno. A sessão continua ativa para receber outros prompts.

env

Passar variáveis de ambiente para o processo do agente

additionalDirectories / add_dirs

Adicionar diretórios extras que o agente pode acessar além de cwd

plugins

Carregar diretórios de plug-ins para extensões personalizadas

systemPrompt / system_prompt

Substituir ou anexar ao prompt padrão do sistema

settingSources / setting_sources

Controlar quais arquivos de configuração são carregados ("user", "project", "local")

Modelos compatíveis

Defina o modelo usando a opção model. A Snowflake recomenda "auto" para seleção automática do modelo de mais alta qualidade disponível.

Modelo

Identificador

Automático (recomendado)

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

Inferência entre regiões

A disponibilidade do modelo varia de acordo com a região. Um administrador da conta pode habilitar a inferência entre regiões para acessar modelos não disponíveis localmente:

ALTER ACCOUNT SET CORTEX_ENABLED_CROSS_REGION = 'AWS_US';

Para obter mais informações, consulte Inferência entre regiões.

Próximos passos