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
- Manter a simplicidade: manter o design do agente simples
- Priorizar a transparência: deixar claras as etapas de planejamento do agente
- 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
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.
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.