Referência do SDK do Cortex Code Agent – TypeScript¶
Este tópico apresenta a referência completa da API para o SDK do Cortex Code Agent para TypeScript, incluindo todas as funções, os tipos e as interfaces.
Instalação¶
Requer o Node.js 18 ou posterior. O pacote é somente ESM. O SDK espera que a Cortex Code CLI seja instalada separadamente. Se ela não estiver em seu PATH, defina CORTEX_CODE_CLI_PATH=/path/to/cortex ou passe cliPath nas opções de sessão.
Funções¶
query()¶
A função primária para interagir com o Cortex Code. Cria um gerador assíncrono que transmite as mensagens conforme elas chegam.
Parâmetros
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Um prompt de usuário único ou um iterável assíncrono de mensagens de usuário do SDK para entrada de streaming |
|
|
Objeto de configuração opcional (consulte Opções) |
Retornos
Um objeto Query que estende AsyncGenerator<CortexCodeEvent> com métodos de controle adicionais.
Exemplo
createCortexCodeSession()¶
Cria uma sessão persistente para conversas multiturno.
Exemplo
Objeto de consulta¶
Retornado por query(). Estende AsyncGenerator<CortexCodeEvent>.
Método |
Descrição |
|---|---|
|
Enviar SIGINT ao processo subjacente |
|
Alterar o modo de permissão para turnos posteriores na consulta ativa |
|
Alterar o modelo dos turnos subsequentes |
|
Retornar os metadados de handshake de inicialização da CLI |
|
Retornar os metadados do comando barra da resposta de inicialização, quando anunciados pela CLI |
|
Retornar os metadados do modelo da resposta de inicialização, quando anunciados pela CLI |
|
Retornar os metadados do agente personalizado da resposta de inicialização, quando anunciados pela CLI |
|
Retornar os metadados da conta da resposta de inicialização, quando anunciados pela CLI |
|
Transmitir mensagens adicionais de usuários do SDK para a consulta ativa |
|
Cancelar uma tarefa em execução em segundo plano por ID |
|
Encerrar a sessão e terminar o processo |
Interface CortexCodeSession¶
Retornado por createCortexCodeSession(). Oferece suporte a conversas multiturno e implementações AsyncDisposable para uso com await using (Node.js 24+).
Propriedade/método |
Descrição |
|---|---|
|
PID do processo da CLI subjacente |
|
Enviar uma mensagem de usuário do SDK estruturada ou em texto simples |
|
Eventos de streaming do agente |
|
Retornar os metadados de handshake de inicialização da CLI |
|
Enviar sinal de interrupção |
|
Alterar o modo de permissão para turnos posteriores na sessão |
|
Alterar o modelo no meio da sessão |
|
Cancelar uma tarefa em execução em segundo plano por ID |
|
Encerrar a sessão e terminar o processo |
|
Chama |
Opções¶
Configuração passada para query() ou createCortexCodeSession().
Opção |
Tipo |
Padrão |
Descrição |
|---|---|---|---|
|
|
Diretório de trabalho do processo atual |
Diretório de trabalho da sessão. Se omitido, o SDK herda o diretório de trabalho do processo atual. |
|
|
Padrão da CLI |
Modelo a ser usado. Use |
|
|
Padrão da CLI |
Nome da conexão do Snowflake conforme as configurações de conexão na Snowflake CLI, normalmente |
|
|
|
Nome do perfil (carrega de |
|
|
|
ID da sessão para retomar uma conversa anterior |
|
|
|
Continuar a conversa mais recente. Retoma a última sessão sem precisar do ID da sessão. |
|
|
|
Bifurcar uma sessão retomada para um novo ID de sessão em vez de continuar no local. Use com |
|
|
|
ID de sessão explícito da conversa. Se omitido, a CLI gera um automaticamente. |
|
|
|
|
|
|
|
Sinalizador de segurança necessário ao usar |
|
|
|
Ferramentas para aprovação automática sem prompt |
|
|
|
Ferramentas para negar sempre |
|
|
Manipulador de permissão personalizado chamado antes de cada execução de ferramenta. Consulte Retorno de chamada de canUseTool. |
|
|
|
|
Nome da ferramenta MCP usada para prompts de permissão. Quando |
|
|
|
Número máximo de turnos agênticos antes de parar. Quando atingido, a sessão emite um resultado |
|
|
|
Nível de esforço de raciocínio do modelo. Um dos seguintes: |
|
|
|
Diretórios de trabalho adicionais a serem disponibilizados para a sessão |
|
|
|
Diretórios de plug-ins a serem carregados. Aceita caminhos como cadeias de caracteres ou objetos |
|
|
|
Variáveis de ambiente mescladas no ambiente do processo gerado. Defina uma chave como |
|
|
|
Enviar um sinal de interrupção chamando |
|
|
|
Prompt do sistema personalizado. Passe uma cadeia de caracteres para substituir completamente o padrão, ou SystemPromptPreset para estendê-lo. |
|
|
|
Texto anexado ao prompt padrão do sistema. Use-o para adicionar instruções sem substituir o prompt interno. |
|
|
|
Retornos de chamada de gancho para interceptar a execução de ferramentas e outros eventos do agente. Consulte Ganchos. |
|
|
|
Fontes de configuração a serem carregadas. Matriz de |
|
|
|
Incluir eventos de streaming no nível do token |
|
|
|
Configurações do servidor MCP externo. As chaves são nomes de servidores, os valores são configurações de servidor (por exemplo, |
|
|
|
Desabilitar servidores MCP |
|
|
|
Saída estruturada: valida a resposta final em relação ao esquema JSON |
|
|
|
Caminho para o binário personalizado da CLI. Se omitido, o SDK primeiro verifica``CORTEX_CODE_CLI_PATH`` e, caso contrário, retorna para |
|
|
|
Argumentos de CLI adicionais como pares chave-valor |
Retorno de chamada de canUseTool¶
Um manipulador de permissão personalizado chamado antes de cada execução de ferramenta. Retornam um resultado de permissão ou negação para controlar se a chamada da ferramenta deve continuar.
Para muitas verificações comuns de permissão de ferramentas, a entrada do retorno de chamada contém campos como { action, resource }. O resultado de permitir/negar e a mensagem de negação opcional são usados nestas verificações. updatedInput é usado para pseudoferramentas roteadas por SDK, como AskUserQuestion e ExitPlanMode, que contêm campos específicos da ferramenta.
Exemplo
SystemPromptPreset¶
Em vez de substituir totalmente o prompt do sistema, use um objeto predefinido para estender o prompt interno.
Exemplo
Ganchos¶
Os ganchos permitem interceptar eventos do agente, como a execução de ferramentas. Cada evento de gancho é mapeado para uma matriz de correspondências, e cada correspondente contém um padrão opcional e um ou mais retornos de chamada.
Exemplo
Tipos de mensagem¶
Eventos produzidos por query() e session.stream():
SDKAssistantMessage¶
Emitida quando o agente produz uma resposta. Contém um ou mais blocos de conteúdo.
SDKResultMessage¶
Emitida quando o agente termina um turno. Verifique subtype para sucesso ou erro.
SDKUserMessage¶
Repetida quando uma mensagem de usuário é processada.
SDKSystemMessage¶
Eventos do sistema, como inicialização de sessão.
Blocos de conteúdo¶
Tipo |
Campos |
|---|---|
|
|
|
|
|
|
|
|
Eventos de streaming¶
Tipo |
Descrição |
|---|---|
|
Streaming de texto/raciocínio parcial (requer |
|
|
|
|
SDKPartialAssistantMessage é emitido para texto parcial e blocos de raciocínio. Chamadas de ferramentas completas ainda chegam como blocos AssistantMessage, e resultados de ferramentas ainda chegam como blocos UserMessage.
Saída estruturada¶
Force o agente a retornar uma resposta correspondente a um esquema JSON:
Para obter mais informações, consulte Saída estruturada.
Tratamento de erros¶
Avisos legais¶
Quando sua configuração do Cortex Code usa um modelo que consta em Model and Service Pass-Through Terms, seu uso desse modelo está sujeito aos respectivos termos nessa página.
A classificação dos dados de entradas e saídas é definido na tabela a seguir.
Classificação de dados de entrada |
Classificação de dados de saída |
Designação |
|---|---|---|
Usage Data |
Dados de cliente |
Recursos de AI incluídos [1] |
Para obter informações adicionais, consulte AI e ML Snowflake.