Referência do SDK do Cortex Code Agent – Python¶
Este tópico apresenta a referência completa da API para o SDK do Cortex Code Agent para Python, incluindo todas as funções, as classes e os tipos.
Instalação¶
Requer o Python 3.10 ou posterior. Dependências: anyio, mcp, typing_extensions. Importe o pacote como cortex_code_agent_sdk. 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 cli_path em CortexCodeAgentOptions.
Funções¶
query()¶
A função primária para interagir com o Cortex Code. Retorna um iterador assíncrono que produz mensagens conforme elas chegam.
Parâmetros
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Cadeia de caracteres de prompt do usuário ou iterável assíncrono de dicionários de mensagem para entrada de streaming |
|
|
Opções de configuração. O padrão é |
|
|
Transporte personalizado. O padrão é o transporte da CLI do subprocesso |
Retornos
Um iterador assíncrono que produz objetos Message (AssistantMessage, ResultMessage, UserMessage, SystemMessage, StreamEvent).
Exemplo
CortexCodeSDKClient¶
Para conversas interativas multiturno. Compatível com o protocolo de gerenciador de contexto assíncrono.
Métodos¶
Método |
Descrição |
|---|---|
|
Conectar com o processo da CLI e manter a sessão aberta para turnos posteriores. |
|
Enviar um prompt ao agente |
|
Produzir todas as mensagens do agente |
|
Produzir mensagens até um |
|
Enviar sinal de interrupção |
|
Alterar o modo de permissão para turnos posteriores na conversa |
|
Alterar o modelo durante a conversa |
|
Parar uma tarefa de subagente em execução |
|
Desconectar do processo da CLI |
Opções¶
Configuração passada para query() ou CortexCodeSDKClient.
Opção |
Tipo |
Padrão |
Descrição |
|---|---|---|---|
|
|
|
Diretório de trabalho da sessão |
|
|
|
Modelo a ser usado. Use |
|
|
|
Nome da conexão do Snowflake conforme as configurações de conexão na Snowflake CLI, normalmente |
|
|
|
Nome do perfil (carrega de |
|
|
|
|
|
|
|
Sinalizador de segurança necessário ao usar |
|
|
|
Ferramentas para aprovação automática sem prompt |
|
|
|
Ferramentas para negar sempre |
|
|
|
Limitar o número de turnos de agente por consulta |
|
|
|
Nível de esforço do modelo: |
|
|
|
Prompt do sistema personalizado. Passe uma cadeia de caracteres para a substituição completa ou |
|
|
|
Continuar a sessão mais recente em vez de iniciar uma nova |
|
|
|
ID da sessão para retomar uma conversa anterior |
|
|
|
Ao retomar, bifurcar para um ID de nova sessão em vez de continuar a sessão anterior |
|
|
|
Diretórios adicionais para adicionar ao contexto do agente |
|
|
|
Variáveis de ambiente a serem passadas ao processo da CLI |
|
|
|
Configurações de plug-in. Compatível no momento com plug-ins locais: |
|
|
|
Um |
|
|
|
Configurações do servidor MCP externo. Passe um dict que mapeie nomes de servidores para configurações stdio, HTTP ou SSE. O transporte do SDK atual é compatível apenas com a configuração de MCP baseada em dict. |
|
|
|
Manipuladores de eventos de gancho (consulte Ganchos) |
|
|
|
Retorno de chamada de permissão de ferramenta personalizada (consulte Permissões de ferramenta) |
|
|
|
Incluir eventos de streaming no nível do token ( |
|
|
|
Formato de saída estruturado. Exemplo: |
|
|
|
Desabilitar servidores MCP |
|
|
|
ID de sessão explícito a ser usado |
|
|
|
Fontes de configuração a serem carregadas: |
|
|
|
Caminho para o binário da CLI. Se omitido, o SDK primeiro verifica``CORTEX_CODE_CLI_PATH`` e, caso contrário, retorna para |
|
|
|
Sinalizadores de CLI adicionais como pares chave-valor. Use o valor |
|
|
|
Retorno de chamada invocado com cada linha da saída stderr da CLI |
Tipos de mensagem¶
AssistantMessage¶
Emitida quando o agente produz uma resposta. Contém um ou mais blocos de conteúdo.
AssistantMessageError é uma destas opções: "authentication_failed", "billing_error", "rate_limit", "invalid_request", "server_error", "unknown".
ResultMessage¶
Emitida quando o agente termina um turno. Verifique subtype e is_error para sucesso ou falha.
UserMessage¶
Repetida quando uma mensagem de usuário é processada.
SystemMessage¶
Eventos do sistema, como inicialização de sessão e atualizações de tarefas.
O SDK também fornece subclasses especializadas para mensagens do sistema relacionadas a tarefas:
Subclasse |
Descrição |
|---|---|
|
Emitida quando uma tarefa de subagente é iniciada. Campos: |
|
Emitida enquanto uma tarefa está em execução. Campos: |
|
Emitida quando uma tarefa é concluída, falha ou é interrompida. Campos: |
Essas subclasses estendem SystemMessage, portanto, as verificações isinstance(msg, SystemMessage) existentes de continuam correspondendo.
StreamEvent¶
Atualizações parciais de mensagens durante o streaming no nível do token. Requer include_partial_messages=True.
StreamEvent é emitido para texto parcial e blocos de raciocínio. Chamadas de ferramentas completas ainda chegam como blocos de conteúdo AssistantMessage, e resultados de ferramentas ainda chegam como blocos de conteúdo UserMessage.
Blocos de conteúdo¶
Tipo |
Campos |
|---|---|
|
|
|
|
|
|
|
|
Ganchos¶
Os ganchos permitem interceptar eventos de ciclo de vida para registro em log, validação ou comportamento personalizado.
Configurando ganchos¶
Os ganchos são configurados por meio da opção hooks em CortexCodeAgentOptions. Cada evento de gancho é mapeado para uma lista de objetos HookMatcher.
Assinatura de retorno de chamada de gancho¶
input: entrada de gancho fortemente tipada (consulte a tabela abaixo)
tool_use_id: identificador opcional de uso da ferramenta
context:
HookContextcom um camposignal(reservado para suporte futuro ao sinal de anulação)
Eventos de gancho¶
Evento |
Tipo de entrada |
Descrição |
|---|---|---|
|
|
Antes que uma ferramenta seja executada. Campos: |
|
|
Depois que uma ferramenta é concluída. Campos: |
|
|
Quando o usuário envia um prompt. Campos: |
|
|
Quando o agente para. Campos: |
|
|
Quando um subagente é concluído. Campos: |
|
|
Em eventos de notificação. Campos: |
|
|
Quando uma ferramenta solicita permissão. Campos: |
|
|
Antes da compactação do contexto. Campos: |
Todas as entradas de gancho incluem campos base: session_id, transcript_path, cwd e, opcionalmente, permission_mode.
Saída do gancho¶
Os retornos de chamada de gancho geram um objeto de saída síncrona:
Nota
O Python SDK usa continue_ (com um sublinhado final) para evitar conflito de palavras-chave do Python. Isso é convertido automaticamente em continue quando enviado para a CLI.
Permissões de ferramenta¶
O retorno de chamada can_use_tool permite que você controle programaticamente as permissões da ferramenta.
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. updated_input é usado para pseudoferramentas roteadas por SDK, como AskUserQuestion e ExitPlanMode, que contêm campos específicos da ferramenta.
Tipos
Configuração do servidor MCP¶
A opção mcp_servers aceita um dict que mapeia nomes de servidores para configurações de servidor MCP externo:
Tipo de configuração |
Descrição |
|---|---|
|
Processo externo via stdio. Campos: |
|
Eventos enviados pelo servidor. Campos: |
|
Transporte HTTP. Campos: |
Exemplo
Tratamento de erros¶
Tipos de erro¶
Exceção |
Descrição |
|---|---|
|
Exceção básica para todos os erros de SDK |
|
Binário da CLI não encontrado em PATH |
|
Falha na conexão ou comunicação com a CLI |
|
O processo da CLI foi encerrado inesperadamente |
|
Falha ao analisar JSON da saída da CLI |
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.