Cortex Agents¶
Visão geral¶
Os Cortex Agents orquestram fontes de dados estruturados e não estruturados para fornecer insights. Eles planejam tarefas, usam ferramentas para executar essas tarefas e gerar respostas. Os agentes usam Cortex Analyst (estruturado) e Cortex Search (não estruturado) como ferramentas, junto com LLMs, para analisar dados. O Cortex Search extrai insights de fontes não estruturadas, enquanto o Cortex Analyst gera SQL para processar dados estruturados. Além disso, você pode usar procedimentos armazenados e funções definidas pelo usuário (UDFs) para implementar ferramentas personalizadas. Um suporte abrangente para identificação e execução de ferramentas permite a entrega de aplicativos sofisticados baseados em dados corporativos.
O fluxo de trabalho envolve quatro componentes principais:
Planejamento: os aplicativos geralmente alternam entre o processamento de dados de fontes estruturadas e não estruturadas. Por exemplo, considere um aplicativo de conversação projetado para responder a consultas de usuários. Um usuário comercial pode primeiro solicitar os principais distribuidores por receita (estruturado) e, em seguida, mudar para a consulta sobre um contrato (não estruturado). Os Cortex Agents podem analisar uma solicitação para orquestrar um plano e chegar à solução ou resposta.
Exploração das opções: quando o usuário faz uma pergunta ambígua (por exemplo, “Fale sobre a Acme Supplies”), o agente considera diferentes permutações – produtos, local ou equipe de vendas – para desambiguar e melhorar a precisão.
Divisão em subtarefas: os Cortex Agents podem dividir uma tarefa ou solicitação (por exemplo, “Quais são as diferenças entre os termos do contrato da Acme Supplies e da Acme Stationery?”) em várias partes para obter uma resposta mais precisa.
Roteamento entre ferramentas: o agente seleciona a ferramenta certa – Cortex Analyst ou Cortex Search – para garantir o acesso controlado e a conformidade com as políticas da empresa.
Uso da ferramenta: com um plano em vigor, o agente recupera os dados de forma eficiente. O Cortex Search extrai insights de fontes não estruturadas, enquanto o Cortex Analyst gera SQL para processar dados estruturados. Um suporte abrangente para identificação e execução de ferramentas permite o fornecimento de aplicativos sofisticados baseados em dados corporativos.
Reflexão: após cada uso da ferramenta, o agente avalia os resultados para determinar as próximas etapas: pedir esclarecimentos, iterar ou gerar uma resposta final. Essa orquestração permite lidar com consultas de dados complexas e, ao mesmo tempo, garantir a precisão e a conformidade dentro do perímetro seguro da Snowflake.
Monitoramento e iteração: após a implementação, os clientes podem acompanhar as métricas, analisar o desempenho e refinar o comportamento para obter melhorias contínuas. No aplicativo cliente, os desenvolvedores podem usar TruLens para monitorar a interação do Agent. Ao monitorar e refinar continuamente os controles de governança, as empresas podem dimensionar com confiança os agentes de AI e, ao mesmo tempo, manter a segurança e a conformidade.
Para obter tutoriais que o ajudarão a começar, consulte Tutoriais dos Cortex Agents.
Nota
Embora a Snowflake se esforce para fornecer respostas de alta qualidade, a precisão das respostas do LLM ou as citações fornecidas não são garantidas. Você deve revisar todas as respostas da Agents API antes de apresentá-las aos seus usuários.
Requisitos de controle de acesso¶
Para fazer uma solicitação ao Cortex Agent via API agent:run, é possível usar uma função que tenha a função SNOWFLAKE.CORTEX_USER ou SNOWFLAKE.CORTEX_AGENT_USER concedida. A CORTEX_USER fornece acesso a todos os recursos de AI cobertos, incluindo Cortex Agents, enquanto a CORTEX_AGENT_USER fornece acesso ao recurso de agentes.
Para usar Cortex Agents com um modelo semântico, você também precisa dos seguintes privilégios:
Privilégio |
Objeto |
|---|---|
CREATE AGENT |
O esquema no qual você planeja criar o Cortex Agent. |
USAGE |
Os Cortex Search Services mencionados na solicitação de Cortex Agents |
USAGE |
O banco de dados, o esquema e as tabelas referenciadas no modelo semântico dos Cortex Agents |
Solicitações à API Cortex Agents deve incluir um token de autorização. Para obter detalhes sobre como se autenticar na API, consulte Autenticando o Snowflake REST APIs com Snowflake. Observe que o exemplo deste tópico usa um token de sessão para se autenticar em uma conta Snowflake.
Limitação do acesso a funções específicas
Por padrão, a função CORTEX_USER é concedida à função PUBLIC. A função PUBLIC é concedida automaticamente a todos os usuários e funções. Se não quiser que todos os usuários tenham esse privilégio, você pode revogar o acesso à função PUBLIC e conceder acesso a funções específicas. Para obter mais informações, consulte Privilégios obrigatórios.
Para fornecer acesso seletivo aos Cortex Agents para que apenas um subconjunto de usuários tenha acesso ao recurso, use a função CORTEX_AGENTS_USER.
Limitação do acesso usando a função de usuário de Cortex Agents
Para fornecer acesso seletivo aos Cortex Agents para usuários específicos, use a função de banco de dados SNOWFLAKE.CORTEX_AGENT_USER. Essa função inclui os privilégios necessários para chamar a API Cortex Agent.
Importante
Se suas funções de usuário têm a função CORTEX_USER, você deve revogar o acesso à função CORTEX_USER. Para revogar a função de banco de dados CORTEX_USER das funções de seus usuários, execute o seguinte comando usando a função ACCOUNTADMIN:
REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER FROM ROLE agent;
Para fornecer acesso aos Cortex Agents, use a função ACCOUNTADMIN para fazer o seguinte:
Concessão da função de banco de dados SNOWFLAKE.CORTEX_AGENT_USER para uma função personalizada.
Atribua essa função personalizada aos usuários.
Nota
Não é possível conceder funções de banco de dados diretamente aos usuários. Para obter mais informações, consulte GRANT DATABASE ROLE.
O exemplo a seguir:
Cria a função personalizada,
cortex_agent_user_role.Concede a ela a função de banco de dados CORTEX_AGENT_USER.
Atribui essa função a
example_user.
USE ROLE ACCOUNTADMIN;
CREATE ROLE cortex_agent_user_role;
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_AGENT_USER TO ROLE cortex_agent_user_role;
GRANT ROLE cortex_agent_user_role TO USER example_user;
Você também pode conceder acesso aos Cortex Agents por meio das funções existentes. Por exemplo, se você tem uma função agent usada pelos agentes em sua organização, é possível conceder acesso com uma única instrução GRANT:
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_AGENT_USER TO ROLE agent;
Autenticação¶
As Snowflake REST APIs oferecem suporte à autenticação por meio de tokens de acesso programático (PATs), autenticação de par de chaves usando tokens Web JSON (JWTs) e OAuth. Para obter mais detalhes, consulte Autenticando o Snowflake REST APIs com Snowflake.
Importante
O Cortex Agents usa modelos que podem não estar disponíveis em todas as regiões. Para acessar esses modelos, você terá que habilitar a inferência entre regiões, se possível. Para obter mais informações, consulte Disponibilidade regional.
Considerações sobre custo¶
Na versão preliminar, o Cortex Agents não tem nenhuma consideração de custo além daquelas associadas às funcionalidades subjacentes do Cortex Search e do Cortex Analyst. Os serviços Cortex Search e Cortex Analyst incorrem em custos de acordo com os detalhes listados na tabela de consumo de serviços do Snowflake. Além disso, o uso de ferramentas personalizadas pode gerar custos de warehouse.
Modelos¶
É possível usar os seguintes modelos com o Cortex Agents. Se o modelo não estiver disponível na região local, você deverá usar a inferência entre regiões.
claude-4-sonnetclaude-3-7-sonnetclaude-3-5-sonnetopenai-gpt-5
Conceitos do Cortex Agents¶
O Cortex Agents usa o Cortex Analyst, o Cortex Search e ferramentas personalizadas para planejar tarefas e gerar respostas. Você pode influenciar a orquestração com instruções. Também é possível especificar atributos para selecionar dinamicamente uma ferramenta com base na lógica de negócios.
Durante uma interação, o Agents usa um thread para manter o contexto. Um thread fornece uma fácil recuperação de todo o contexto da conversa para uso na lógica do aplicativo.
Você pode coletar feedback dos usuários finais à medida que itera e refina continuamente o agente. Um mecanismo de feedback explícito (classificação positiva/negativa) juntamente com feedback subjetivo (texto) permite capturar entradas do usuário durante todo o ciclo de vida do agente.
Objeto de agente¶
A configuração do agente inclui todos os metadados, configurações de orquestração e detalhes de ferramentas armazenados no objeto de agente. Você pode usar o objeto de agente para interagir com o agente.
Threads¶
Os threads persistem o contexto de suas interações com o agente, para que você não precise manter o contexto no aplicativo cliente. Para usar threads, você cria um objeto de thread e faz referência ao ID do thread nas interações do agente.
Orquestração¶
O Cortex Agents usa orquestração baseada em LLM para planejar tarefas e gerar respostas. Você pode controlar a orquestração com as seguintes configurações:
Modelos¶
Para obter informações sobre os modelos que você pode usar com o Cortex Agents para orquestração, consulte Modelos.
Instruções¶
As instruções de resposta permitem que você configurar as respostas do agente para uma marca e tom de sua preferência.
Exemplos de perguntas¶
Você pode usar essas perguntas para iniciar a conversa em seu aplicativo cliente. Essas são perguntas comuns que podem fazer os usuários começarem a usar a interação.
Ferramentas¶
O Cortex Agents pode orquestrar dados estruturados e não estruturados. Além disso, ferramentas personalizadas permitem que os agentes interajam com outros sistemas de back-end ou implementem lógica personalizada.
Exibição semântica do Cortex Analyst¶
Você pode usar o Cortex Analyst para criar consultas SQL a partir de linguagem natural. Para usar o Cortex Analyst, você deve criar um modelo semântico. Para obter mais informações, consulte Criar um modelo semântico.
Cortex Search Service¶
Use o Cortex Search para pesquisar seus dados. Para obter mais informações, consulte CREATE CORTEX SEARCH SERVICE.
Nota
O DEFAULT_ROLE do usuário que faz a consulta deve ter o privilégio USAGE no Cortex Search Service, bem como no banco de dados e no esquema em que ele reside.
Ferramentas personalizadas¶
Você pode usar procedimentos armazenados e funções definidas pelo usuário (UDF) para implementar lógica de negócios personalizada como uma ferramenta. Para obter mais informações, consulte Visão geral dos procedimentos armazenados e Visão geral das funções definidas pelo usuário.
Raciocínio e reflexão¶
O agente emite eventos durante toda a interação, fornecendo insights sobre o processo de raciocínio. Essas etapas abrangem a divisão inicial de tarefas, o sequenciamento em subtarefas e a seleção de ferramentas para a subtarefa. Além disso, o agente também revela suas reflexão sobre os resultados das ferramentas e como eles influenciam a orquestração adicional.
Monitoramento e iteração¶
Você pode coletar feedback do usuário final como uma classificação (positivo/negativo), juntamente com quaisquer entradas subjetivas (como texto). Esse feedback pode ser usado para refinar e melhorar o agente ao longo do ciclo de vida.
Interação com os agentes¶
O Cortex Agents oferece suporte a dois métodos distintos de interagir com agentes por meio da API REST:
Configure um objeto de agente para interagir com o agente: com esse método, primeiro você configurar um objeto de agente que pode ser reutilizado para toda a interação. A configuração de um objeto agente simplifica o código do cliente e habilita o CI/CD para aplicativos prontos para empresas.
Interagir sem um objeto de agente: com esse método, você deve passar a configuração do agente como parte de cada solicitação de interação. A interação sem um objeto de agente permite que você experimente rapidamente casos de uso e experimente diferentes cenários.
Para obter informações sobre esses métodos, consulte Configuração e interação com Agents.