Controle de versão do Cortex Agent¶
O controle de versão do Cortex Agent habilita um modelo de gerenciamento do ciclo de vida que permite desenvolver, testar e implantar agentes por meio de versões distintas. Cada agente tem uma versão ativa, uma cópia de trabalho mutável que você usa para desenvolvimento, e pode ter qualquer número de versões nomeadas, instantâneos imutáveis que você usa para implantações estáveis. Ao confirmar a versão ativa, você cria uma versão nomeada que captura a configuração do agente em um determinado momento. Em seguida, você pode rotear as solicitações de API para qualquer versão por nome, alias ou atalho.
Este modelo separa o fluxo de trabalho de desenvolvimento do fluxo de trabalho de produção. Você itera na versão ativa, confirma quando está pronta, atribui um alias, como production, à versão confirmada e roteia o tráfego para esse alias. Se precisar reverter, aponte o alias para uma versão nomeada anterior.
Como funciona o controle de versão do agente¶
O ciclo de vida da versão de um agente segue um modelo baseado em confirmação:
Quando você cria um agente, ele cria automaticamente uma
VERSION$1confirmada e uma versãoLIVEcom a mesma especificação.Você cria ou modifica a versão ativa do agente durante o desenvolvimento.
Quando o agente estiver pronto para implantação, você confirma a versão ativa. O Snowflake cria uma versão nomeada com um identificador atribuído pelo sistema no formato
VERSION$N(por exemplo,VERSION$2,VERSION$3).Você atribui um alias ou define a versão nomeada como padrão.
As solicitações de interação buscam a versão nomeada, por nome, alias ou atalho, para um comportamento estável e repetível.
Após uma confirmação, a versão ativa não será recriada automaticamente. Você cria explicitamente uma nova versão ativa quando está pronto para retomar o desenvolvimento.
Você também pode criar versões nomeadas diretamente de uma área de preparação ou um repositório Git sem passar pela versão ativa. Isso oferece suporte a fluxos de trabalho em que as alterações são mescladas offline e depois importadas como uma nova versão.
Versões ativas¶
A versão ativa é o estado mutável e editável de um agente. Você a utiliza durante o desenvolvimento para iterar na configuração, nas instruções, nas ferramentas e nas habilidades do agente. Cada agente pode ter no máximo uma versão ativa de cada vez.
Você cria uma versão ativa de uma das seguintes maneiras:
Na criação do agente: ao criar um novo agente, uma versão ativa é criada automaticamente.
A partir da última versão confirmada: restaure a versão ativa a partir da versão nomeada mais recente para continuar o desenvolvimento de um estado conhecido.
Na UI do |sf-web-interface|: a UI pode emitir a criação de uma nova versão ativa.
Você pode atribuir um alias à versão ativa no momento da criação:
A versão ativa foi projetada para desenvolvimento interativo. A Snowflake recomenda confirmar a versão ativa antes de usá-la em produção para garantir que você tenha um ponto de referência imutável.
Versões nomeadas¶
Uma versão nomeada é um instantâneo imutável da configuração do agente no momento da confirmação. Depois de criada, uma versão nomeada não pode ser modificada. Você só pode atualizar seus metadados (comentário ou alias) ou descartá-las completamente. Essa imutabilidade torna as versões nomeadas a base para implantações estáveis e reproduzíveis.
O Snowflake atribui a cada versão nomeada um identificador do sistema no formato VERSION$N, em que N aumenta a cada confirmação:
Isso cria VERSION$2 (ou o próximo número disponível). Você também pode criar versões nomeadas diretamente de uma área de preparação ou um repositório Git:
Para visualizar todas as versões em um agente:
Para remover uma versão nomeada que você não precisa mais:
Nota
Você só pode descartar versões nomeadas. Não é possível descartar a versão ativa.
Aliases¶
Alias é um rótulo legível por humanos que você atribui a uma versão. Os aliases facilitam a referência a versões nas chamadas de API e as operações de preparação, sem saber o número da versão atribuída pelo sistema. Os padrões de alias comuns incluem production, staging, canary e rollback.
Você atribui um alias a uma versão nomeada ou à versão ativa:
Depois que ele for atribuído, você poderá usá-lo em qualquer lugar em que um identificador de versão seja aceito: chamadas de API, URIs de áreas de preparação e comandos SQL.
Comportamento do alias:
Cada alias deve ser exclusivo em um agente.
Os aliases diferenciam maiúsculas de minúsculas se forem criados com identificadores entre aspas duplas; caso contrário, serão armazenados em letras maiúsculas.
Você pode reatribuir um alias de uma versão para outra para redirecionar o tráfego sem alterar o código de chamada.
Por exemplo, para promover uma nova versão à produção, reatribua o alias production:
Todas as chamadas de API que buscam o alias production agora fazem o roteamento para VERSION$4 sem nenhuma alteração no aplicativo de chamada.
Atalhos de versão¶
O Snowflake oferece atalhos internos para referenciar versões sem saber o nome exato ou alias da versão. Você pode usar os atalhos no ponto de extremidade da API e nas URIs das áreas de preparação:
Atalho |
Descrição |
|---|---|
|
A versão ativa atual |
|
A primeira versão nomeada confirmada |
|
A versão nomeada confirmada mais recentemente |
|
A versão definida como padrão para o agente |
Os atalhos são úteis para scripts de automação e pipelines de CI/CD, em que não se sabe o número exato da versão. Por exemplo, você sempre pode executar a última versão confirmada com o atalho LAST ou buscar a versão que o proprietário do agente designou como padrão.
Versão padrão¶
A menos que você a defina explicitamente, a versão DEFAULT é a última versão confirmada. Você também pode designar uma versão como padrão para o agente. A versão padrão é aquela que o agente usa quando nenhuma versão é especificada em uma chamada de API:
Você também pode definir o padrão como um atalho do sistema, por exemplo, FIRST ou LAST:
A definição de uma versão padrão permite controlar qual versão processa o tráfego sem exigir que os autores da chamada especifiquem uma versão em cada solicitação. Ao promover uma nova versão, atualize o padrão para redirecionar todas as chamadas de API sem controle de versão.
Controle de versão e CI/CD¶
O controle de versão do agente integra-se aos fluxos de trabalho de CI/CD, oferecendo suporte à criação de versões de fontes externas, áreas de preparação e repositórios Git, e fornecendo aliases e atalhos para roteamento do ambiente.
Um fluxo de trabalho de CI /CD comum nos agentes segue este padrão:
Desenvolver: edite a versão ativa do agente na UI do Snowsight ou por meio de SQL. Faça um teste interativo.
Confirmar: quando o agente estiver pronto, confirme a versão ativa para criar uma versão nomeada imutável.
Testar: roteie o tráfego de teste para a nova versão nomeada usando o ID do sistema ou um alias
staging.Promover: reatribua o alias
productionpara a nova versão assim que o teste for aprovado.Reversão: se surgirem problemas, reatribua o alias
productionpara a versão nomeada anterior.
Para as equipes que gerenciam as configurações do agente no Git, o fluxo de trabalho muda para um modelo de importação:
Desenvolver: edite os arquivos de configuração do agente em um repositório Git.
Mesclar: revise e mescle as alterações por meio do seu processo padrão de solicitação de pull.
Importar: crie uma versão nomeada da área de preparação conectada ao Git, ignorando completamente a versão ativa.
Implantar: atribua o alias
productionpara a versão importada.
Você também pode criar um novo agente diretamente de uma área de preparação como parte de um fluxo de trabalho de infraestrutura como código:
Operações de preparação¶
Cada versão do agente tem um caminho de área de preparação interno com controle de versão que você pode acessar por meio do esquema de URI snow://agent/. Isso permite que você inspecione os arquivos que compõem uma versão, incluindo a especificação, as definições de habilidades e os scripts de suporte do agente.
O formato do URI é:
O segmento <version> aceita um ID de versão do sistema (VERSION$N), um alias definido pelo usuário ou a palavra-chave live.
As operações de preparação são somente leitura e úteis para auditoria, depuração e comparação de versões.
Executar uma versão específica¶
Você pode enviar uma solicitação para uma versão específica de um agente usando o ponto de extremidade da API com controle de versão:
O parâmetro de caminho {version} aceita qualquer um dos seguintes valores:
Tipo de identificador |
Exemplo |
|---|---|
Nome da versão do sistema |
|
Alias definido pelo usuário |
|
Atalho |
|
Por padrão, a API transmite respostas como eventos enviados pelo servidor (SSE). Para receber uma resposta JSON única, defina stream como false no corpo da solicitação.
Limitações¶
As seguintes limitações se aplicam ao controle de versão do Cortex Agent:
Uma versão ativa: Cada agente pode ter no máximo uma versão ativa de cada vez.
Versão ativa não criada automaticamente: depois que você confirma a versão ativa, uma nova versão ativa não será criada automaticamente. Você deverá criar uma explicitamente.
As versões nomeadas são imutáveis: não é possível modificar a configuração de uma versão nomeada. Você só pode atualizar metadados (comentário, alias) ou descartá-la.
Descartar somente nomeadas: você pode descartar versões nomeadas, mas não a versão ativa.
Exclusividade do alias: Cada alias deve ser exclusivo em um agente. A atribuição de um alias que já existe em outra versão resulta em erro.
Diferenciação entre maiúsculas e minúsculas: os aliases diferenciam maiúsculas de minúsculas quando criados com identificadores entre aspas duplas; caso contrário, serão armazenados em letras maiúsculas.