Padrões de design do sistema de agentes
Os agentes GenAI combinam a inteligência dos modelos GenAI com ferramentas para recuperação de dados, ações externas e outras funcionalidades. Esta página explica o processo de design de agentes:
- Um exemplo concreto de construção de um sistema de agentes ilustra a orquestração de como as chamadas de modelo e de ferramenta fluem juntas.
- Os padrões de projeto para sistemas de agentes formam um contínuo de complexidade e autonomia, desde cadeias determinísticas, passando por sistemas de agente único que podem tomar decisões dinâmicas, até arquiteturas multiagentes que coordenam múltiplos agentes especializados.
- Uma seção de conselhos práticos oferece orientações sobre como escolher o design certo, desenvolver agentes, realizar testes e passar para a produção.
Os agentes dependem muito de ferramentas para coletar informações e tomar medidas externas. Para obter mais informações sobre as ferramentas, consulte Ferramentas.
Exemplo de sistema de agentes
Para um exemplo concreto de um sistema de agentes, considere um agente GenAI de um call center interagindo com um cliente:

O cliente faz um pedido: "Você pode me ajudar a devolver meu último pedido?"
-
Motivo e plano : Dado o objetivo da consulta, o agente "planeja": "Consultar o pedido recente do usuário e verificar nossa política de devolução."
-
Encontrar informações (inteligência de dados): O agente consulta o banco de dados de pedidos para recuperar o pedido relevante e referencia um documento de política.
-
Motivo : O agente verifica se o pedido se encaixa no prazo de devolução.
- Intervenção humana opcional: O agente verifica uma regra adicional: Se o item se enquadrar em uma determinada categoria ou estiver fora do prazo normal de devolução, o caso será encaminhado para um atendente humano.
-
Ação : O agente inicia o processo de devolução e gera uma etiqueta de envio.
-
Motivo : O agente gera uma resposta para o cliente.
O agente AI responde ao cliente: “Concluído! Aqui está sua etiqueta de envio.
Esses passos são instintivos em um contexto de call center com atendimento humano . Em um contexto de sistema de agentes , o LLM "raciocina", enquanto o sistema recorre a ferramentas especializadas ou fontes de dados para preencher os detalhes.

Níveis de complexidade: de LLMs a sistemas de agentes
Os aplicativos GenAI podem ser alimentados por uma variedade de sistemas, desde chamadas LLM simples até sistemas multiagentes complexos. Ao desenvolver qualquer aplicação com AI , comece pelo básico. Introduza comportamentos de agentes mais complexos quando realmente precisar deles para maior flexibilidade ou para decisões orientadas por modelos. Cadeias determinísticas oferecem fluxos previsíveis e baseados em regras para tarefas bem definidas. Abordagens mais orientadas a agentes oferecem maior flexibilidade e potencial, mas têm como custo maior complexidade e possível latência.
Padrão de design | Quando usar | Prós | Contras |
|---|---|---|---|
|
|
| |
|
|
| |
|
|
| |
|
|
|
Mosaic AI Agent Framework é agnóstico a esses padrões, facilitando o início com soluções simples e a evolução para níveis mais altos de automação e autonomia à medida que os requisitos do seu aplicativo aumentam.
Para saber mais sobre a teoria por trás dos sistemas de agentes, veja a postagem no blog dos fundadores Databricks :
- Sistemas de agentes AI : engenharia modular para aplicações empresariais confiáveis AI
- A transição de modelos para sistemas AI compostos
LLM e pronto
O modelo mais simples possui um LLM independente ou outro modelo GenAI que responde a comandos com base no conhecimento proveniente de um vasto dataset de treinamento. Esse modelo é bom para consultas simples ou genéricas, mas geralmente está desconectado dos dados reais do seu negócio. Você pode personalizar o comportamento fornecendo uma mensagem ao sistema com suas instruções personalizadas ou dados incorporados.
Cadeia determinística (etapas codificadas)
As cadeias determinísticas aumentam os modelos GenAI com chamadas de ferramentas, mas o desenvolvedor define quais ferramentas ou modelos são chamados, em que ordem e com quais parâmetros. O LLM não toma decisões sobre quais ferramentas utilizar ou em que ordem . O sistema segue um fluxo de trabalho ou "cadeia" predefinida para todas as solicitações, tornando-o altamente previsível.
Por exemplo, uma cadeia de Geração Aumentada por Recuperação (RAG) determinística pode sempre:
- Recupera os k melhores resultados de um índice vetorial para encontrar o contexto relevante para uma solicitação do usuário.
- Aprimore uma solicitação combinando o pedido do usuário com o contexto recuperado.
- Gere uma resposta enviando o prompt ampliado para um LLM.
Quando usar:
- Para tarefas bem definidas com fluxo de trabalho previsível.
- Quando a consistência e a auditoria são as principais prioridades.
- Quando o senhor deseja minimizar a latência, evitando várias chamadas LLM para decisões de orquestração.
Vantagens:
- Maior previsibilidade e auditabilidade.
- Latência tipicamente mais baixa (menos chamadas LLM para orquestração).
- Mais fácil de testar e validar.
Considerações:
- Flexibilidade limitada para lidar com solicitações diversas ou inesperadas.
- Pode se tornar complexo e difícil de manter à medida que as ramificações lógicas crescem.
- Pode exigir uma refatoração significativa para acomodar novas funcionalidades.
Sistema de agente único
Um sistema de agente único possui um LLM (Modelo de Nível de Liderança) que orquestra um fluxo coordenado de lógica. O LLM decide de forma adaptativa quais ferramentas usar, quando fazer mais chamadas ao LLM e quando parar. Essa abordagem permite a tomada de decisões dinâmicas e contextualizadas.
Um sistema de agente único pode:
- Aceitar solicitações como consultas de usuários e qualquer contexto relevante, como o histórico de conversas.
- Raciocine sobre a melhor forma de responder, opcionalmente decidindo se deve chamar ferramentas para dados ou ações externas.
- Se necessário, repita o processo, chamando um LLM ou ferramentas repetidamente até que um objetivo seja alcançado ou uma determinada condição seja atendida, como receber dados válidos ou resolver um erro.
- Integre os resultados da ferramenta na conversa.
- Retorne uma resposta coesa como saída.
Por exemplo, um agente assistente de suporte técnico pode se adaptar da seguinte forma:
- Se o usuário fizer uma pergunta simples ("Qual é a nossa política de devoluções?"), o agente poderá responder diretamente com base no conhecimento do LLM.
- Se o usuário quiser o status do seu pedido, o agente pode chamar uma função
lookup_order(customer_id, order_id). Se a ferramenta responder com "número de pedido inválido", o agente pode tentar novamente ou solicitar ao usuário o ID correto, continuando até que possa fornecer uma resposta final.
Quando usar:
- O senhor espera consultas variadas dos usuários, mas ainda dentro de um domínio ou área de produto coeso.
- Determinadas consultas ou condições podem justificar o uso de ferramentas, como, por exemplo, decidir quando buscar dados do cliente.
- O senhor deseja mais flexibilidade do que uma cadeia determinística, mas não precisa de agentes especializados separados para tarefas diferentes.
Vantagens:
- O agente pode se adaptar a consultas novas ou inesperadas escolhendo quais (se houver) ferramentas chamar.
- O agente pode passar por repetidas chamadas LLM ou invocações de ferramentas para refinar os resultados, sem precisar de uma configuração totalmente multiagente.
- Esse padrão de design geralmente é o ponto ideal para casos de uso corporativos: mais simples de depurar do que configurações com vários agentes, ao mesmo tempo em que permite lógica dinâmica e autonomia limitada.
Considerações:
- Em comparação com uma cadeia codificada, você deve se proteger contra chamadas de ferramentas repetidas ou inválidas. Loops infinitos podem ocorrer em qualquer cenário de chamada de ferramentas, portanto, defina limites de iteração ou tempos limite.
- Se sua aplicação abrange subdomínios radicalmente diferentes (finanças, DevOps, marketing, etc.), um único agente pode se tornar difícil de gerenciar ou sobrecarregado com requisitos de funcionalidade.
- Você ainda precisa de instruções e restrições cuidadosamente elaboradas para manter o agente focado e relevante.
- A capacidade de ação é um espectro; quanto mais liberdade você der aos modelos para controlar o comportamento do sistema, mais autônoma a aplicação se tornará. Na prática, a maioria dos sistemas de produção restringe cuidadosamente a autonomia do agente para garantir compliance e a previsibilidade, por exemplo, exigindo aprovação humana para ações de risco.
Sistema multiagente
Um sistema multiagente envolve dois ou mais agentes especializados que trocam mensagens ou colaboram em tarefas. Cada agente possui sua própria especialização em domínio ou tarefa, contexto e, potencialmente, conjuntos de ferramentas distintos. Um "coordenador" ou "supervisor AI " separado direciona as solicitações ao agente apropriado ou decide quando transferir a tarefa de um agente para outro. O supervisor pode ser outro LLM ou um roteador baseado em regras.
Por exemplo, um assistente de atendimento ao cliente pode ter um supervisor que delega tarefas a agentes especializados:
- Assistente de compras: Ajuda os clientes a pesquisar produtos e fornece conselhos sobre prós e contras com base em avaliações.
- Agente de suporte ao cliente: responsável por feedback, devoluções e envios.
Quando usar:
- Você tem áreas problemáticas ou conjuntos de habilidades distintos, como um agente de codificação ou um agente financeiro.
- Cada agente precisa acessar o histórico de conversas ou prompts específicos do domínio.
- Você tem tantas ferramentas que encaixá-las todas no esquema de um agente é impraticável; cada agente pode ter um subconjunto.
- Você quer implementar reflexão, crítica ou colaboração de ida e volta entre agentes especializados.
Vantagens:
- Essa abordagem modular significa que cada agente pode ser desenvolvido ou mantido por equipes separadas, especializadas em um domínio restrito.
- É capaz de lidar com grandes e complexos fluxos de trabalho empresariais que um único agente poderia ter dificuldade de gerenciar de forma coesa.
- Facilita o raciocínio avançado em várias etapas ou em várias perspectivas — por exemplo, um agente gera uma resposta e outro a verifica.
Considerações:
- Requer uma estratégia de roteamento entre agentes, além de sobrecarga para registro, rastreamento e depuração em vários endpoints.
- Se o senhor tiver muitos subagentes e ferramentas, pode ser complicado decidir qual agente tem acesso a quais dados ou APIs.
- Os agentes podem ficar repassando tarefas indefinidamente entre si sem resolução, caso não sejam cuidadosamente controlados. Os riscos de loop infinito também existem na chamada de ferramentas por um único agente, mas as configurações com múltiplos agentes adicionam outra camada de complexidade à depuração.
Conselhos práticos
Se o seu caso de uso se encaixa em uma oferta da Agent Bricks , comece com essa opção guiada e mais simples.
Se você precisar criar um sistema de agentes personalizado, o Databricks e o Mosaic AI Agent Framework são agnósticos em relação a qualquer padrão que você escolher, facilitando a evolução dos padrões de design à medida que seu aplicativo cresce. Considere as seguintes boas práticas para desenvolver sistemas de agentes estáveis e de fácil manutenção:
- começar simples: Se o senhor precisar apenas de uma cadeia simples, uma cadeia determinística é rápida de construir.
- Aumente a complexidade gradualmente: conforme você precisar de consultas mais dinâmicas ou de uma fonte de dados mais flexível, migre para um sistema de agente único com chamada de ferramentas. Se você tem domínios ou tarefas claramente distintos, múltiplos contextos de conversação ou um grande conjunto de ferramentas, então considere um sistema multiagente.
- Combinar padrões: Na prática, muitos sistemas de agentes do mundo real combinam padrões. Por exemplo, uma cadeia predominantemente determinística pode ter uma etapa na qual o LLM pode chamar dinamicamente determinadas APIs se necessário.
Orientação de desenvolvimento
-
Instruções e ferramentas
- Mantenha os avisos claros e mínimos para evitar instruções contraditórias, informações que distraiam e reduzir as alucinações.
- Forneça apenas as ferramentas e o contexto que seu agente precisa, em vez de um conjunto ilimitado de APIs ou um contexto extenso e irrelevante. Escolha a sua abordagem de ferramentas durante o projeto.
-
Registro e observabilidade
- Implemente o registro detalhado de cada solicitação de usuário, plano de agente e chamada de ferramenta usando o MLflow Tracing.
- Armazene logs de forma segura e tenha cuidado com as informações de identificação pessoal (PII) nos dados de conversação. Considere a classificação de dados para automação.
Orientação de teste e iteração
-
Avaliação
- Utilize o MLflow Evaluation e o monitoramento de produção para definir métricas de avaliação para desenvolvimento e produção.
- Reúna feedback humano de especialistas e usuários para garantir que suas métricas de avaliação automatizadas estejam bem calibradas.
-
Tratamento de erros e lógica fallback
- Planeje-se para falhas na ferramenta ou no LLM. Timeouts, respostas malformadas ou resultados vazios podem interromper um fluxo de trabalho. Inclua estratégias de repetição, lógica fallback ou uma cadeia fallback mais simples quando os recursos avançados falharem.
-
Melhorias iterativas
- Espere refinar os prompts e a lógica do agente ao longo do tempo. Alterações de versão usando o Registro de PromptsMLflow para seus prompts e o acompanhamento da versão do aplicativoMLflow para seus aplicativos. O controle de versões simplificará as operações e permitirá reversões e comparações.
- Ao coletar dados de avaliação e definir métricas, considere métodos de otimização mais automatizados, como o MLflow Prompt Optimization.
Orientação de produção
-
Atualizações de modelos e fixação de versões
- Os comportamentos do LLM podem mudar quando os provedores atualizam os modelos nos bastidores. Use a fixação de versões e testes de regressão frequentes para garantir que a lógica do seu agente permaneça robusta e estável.
-
Otimização de latência e custo
- Cada LLM ou chamada de ferramenta adicional aumenta o uso de tokens e o tempo de resposta. Sempre que possível, combine etapas ou armazene em cache as consultas repetidas para manter o desempenho e o custo gerenciáveis.
-
Segurança e sandbox
- Se o seu agente puder atualizar registros ou código de execução, execute essas ações sandbox ou exija aprovação humana quando necessário. Isso é crucial em ambientes empresariais ou regulamentados para evitar danos não intencionais. As funções do Unity Catalog oferecem execução em ambiente isolado (sandbox) para produção.
- Consulte a abordagem "Escolha sua ferramenta" para obter mais orientações sobre as opções de ferramentas.
Seguindo essas diretrizes, o senhor pode atenuar muitos dos modos de falha mais comuns, como chamadas incorretas de ferramentas, desempenho do LLM instável ou picos de custo inesperados, e criar sistemas de agentes mais confiáveis e dimensionáveis.