21 pontos por GN⁺ 2024-12-21 | 2 comentários | Compartilhar no WhatsApp

O que é um agente?

  • Existem várias definições de agente, mas elas podem ser divididas em duas categorias:
    • Workflows: LLMs e ferramentas são coordenados por meio de caminhos de código predefinidos
    • Agents: o LLM controla dinamicamente a execução das tarefas e o uso de ferramentas
  • Na Anthropic, ambos são classificados como sistemas agênticos (Agentic Systems), com diferenças importantes em flexibilidade e autonomia

Quando usar agentes?

  • Se uma solução simples for possível, é importante minimizar a complexidade
  • Workflows: úteis para lidar com tarefas previsíveis, oferecendo consistência e estabilidade
  • Agents: adequados quando é necessário ter flexibilidade em escala e tomada de decisão centrada no modelo
  • Na maioria dos casos, basta otimizar as chamadas ao LLM ou aproveitar exemplos no contexto

Guia de uso de frameworks

  • Frameworks representativos:
  • Vantagens dos frameworks:
    • simplificam chamadas ao LLM, definição de ferramentas e cadeias de invocação
  • Desvantagens:
    • podem adicionar complexidade ou dificultar o debugging
  • Recomendação: comece diretamente com a API do LLM e, mesmo usando um framework, entenda o código subjacente

Componentes de um sistema agêntico

LLM aumentado (Augmented LLM)

  • Características: adiciona capacidades de busca, uso de ferramentas e memória
  • Como implementar:
    • é possível integrar ferramentas de terceiros usando o Model Context Protocol
    • oferece uma interface simples e bem documentada

Principais padrões de workflow

  • Encadeamento de prompts (Prompt Chaining)
    • divide o trabalho em subetapas fixas e as processa sequencialmente
    • Casos de uso:
      • gerar textos de marketing e depois traduzi-los
      • redigir um rascunho de documento e depois revisá-lo
  • Roteamento (Routing)
    • classifica os dados de entrada e os encaminha para a tarefa adequada
    • Casos de uso:
      • classificação de chamados de suporte ao cliente (perguntas gerais, solicitações de reembolso, suporte técnico)
      • encaminhar perguntas simples para um modelo menor e perguntas complexas para um modelo mais poderoso
  • Paralelização (Parallelization)
    • separa tarefas ou executa a mesma tarefa várias vezes
    • Casos de uso:
      • usar vários prompts na revisão de vulnerabilidades de código
      • separar a entrada do usuário para filtrar e responder
  • Orquestrador-Workers (Orchestrator-Workers)
    • um LLM central decompõe a tarefa, distribui para LLMs workers e sintetiza os resultados
    • Casos de uso:
      • modificar arquivos em tarefas complexas de programação
      • tarefas de busca de múltiplas informações
  • Avaliador-Otimizador (Evaluator-Optimizer)
    • avalia a resposta do LLM, fornece feedback e a melhora iterativamente
    • Casos de uso:
      • melhorar a qualidade de traduções literárias
      • tarefas de múltiplas buscas e análise

Agents

  • Agents planejam tarefas e as executam de forma independente, interagindo com humanos quando necessário
  • Características:
    • avançam obtendo a “verdade” do ambiente por meio do uso de ferramentas para avaliar o progresso
    • é possível definir verificações e condições de interrupção durante a tarefa
  • Casos de uso:
    • agents de programação complexos
    • implementações em que o Claude executa tarefas no computador

Combinação de padrões e personalização

  • Os padrões acima podem ser ajustados e combinados conforme a situação específica
  • A complexidade só deve ser adicionada quando houver comprovação de melhora nos resultados

Resumo

  • No campo dos LLMs, o sucesso não depende de construir o sistema mais complexo, mas de criar o sistema adequado para a necessidade
  • É preciso começar com prompts simples, otimizar por meio de avaliação e só considerar adicionar um sistema agêntico de múltiplas etapas quando uma solução simples não for suficiente
  • Princípios centrais na implementação de agents
    1. Manter a simplicidade: manter o design do agente simples
    2. Priorizar a transparência: deixar claras as etapas de planejamento do agente
    3. Melhorar a qualidade da interface agente-computador (ACI): documentar e testar bem as ferramentas
  • Uso de frameworks e estratégia de implementação
    • frameworks são úteis na implementação inicial, mas também vale considerar construir o sistema com menos camadas de abstração e componentes básicos
    • seguindo esses princípios, é possível criar agents poderosos, confiáveis e fáceis de manter

Casos de clientes: uso de agents na prática

  • A. Suporte ao cliente
    • oferece soluções eficazes com fluxo de conversa natural e integração de dados externos
    • Vantagens:
      • pode ser medido pela taxa de resolução bem-sucedida
      • é possível aplicar um modelo de precificação baseado em uso
  • B. Agents de programação
    • soluções de código podem ser validadas por meio de testes automatizados
    • Vantagens:
      • resultados de testes podem ser usados como feedback
      • o espaço do problema é claro e estruturado
  • C. Design e otimização de ferramentas
    • projetar levando em conta como o LLM usa ferramentas
    • Métodos recomendados:
      • usar nomes de parâmetros intuitivos e concisos
      • testar e melhorar iterativamente
      • incluir exemplos e edge cases na definição das ferramentas

2 comentários

 
savvykang 2024-12-23

Parece que aplicaram algo como proteção contra unfamiliaridade ao low-code, mas sem esquema de dados e controle de versão não vai dar para rastrear mudanças.

 
curiousotter 2024-12-23

Com uma experiência superficial, pareceu uma espécie de programação caótica em que, na aparência, você vai combinando funções da programação funcional, mas sem saber quais serão os I/O das funções (parâmetros, tipos de retorno)..
Enquanto fazia isso, a pergunta que não saía da cabeça era: será que isso realmente precisa ser feito..? Será que precisa dar suporte até esse ponto..
Por enquanto, ainda não sinto claramente em que áreas um sistema agentic é realmente indispensável.