
Construindo um Sistema de Triagem de Chamados com Agentes de IA
Eu ainda me lembro do dia em que nosso agente de triagem de tickets de suporte foi ao ar, apenas para começar a esquecer o contexto das conversas após algumas trocas. Os clientes relatavam problemas, e nosso agente respondia com soluções genéricas, completamente alheio às mensagens anteriores. Era como se o agente não tivesse memória. Rapidamente percebemos que nossa implementação estava faltando uma peça crucial: a capacidade de manter o estado em várias interações.
Para corrigir isso, recorremos ao StateGraph da LangGraph e às ferramentas da MCP para construir sistemas de IA agentes. Projetamos uma máquina de estados que poderia transitar entre diferentes estágios de um ticket de suporte, desde o relatório inicial até a resolução. Cada estágio teria seu próprio conjunto de ações possíveis e próximos passos, dependendo da entrada do cliente. Usamos os métodos add_node e add_conditional_edges da LangGraph para definir esses estados e transições.
Aqui está um exemplo de como definimos o estado inicial e suas transições:
import langgraph as lg
from mcp import tools
# Criar um novo StateGraph
graph = lg.StateGraph()
# Definir o estado inicial
initial_state = graph.add_node("initial_report")
initial_state.set_description("O cliente relata um problema")
# Definir os próximos estados possíveis com base na entrada do cliente
next_states = {
"bug_report": graph.add_node("bug_report"),
"feature_request": graph.add_node("feature_request"),
"general_inquiry": graph.add_node("general_inquiry")
}
# Adicionar arestas condicionais entre os estados
for intent, next_state in next_states.items():
graph.add_conditional_edges(initial_state, next_state, condition=f"intent == '"{intent}'")
# Definir as ferramentas e recursos da MCP necessários para cada estado
tools.register_tool("bug_report", tools.BugReportTool())
tools.register_tool("feature_request", tools.FeatureRequestTool())
tools.register_resource("knowledge_base", tools.KnowledgeBaseResource())
# Usar os checkpointers da MCP para salvar o estado e contexto atuais
checkpointer = tools.Checkpointer("support_ticket_triage")
Com essa implementação, nosso agente de triagem de tickets de suporte agora poderia manter o contexto em várias interações e responder de acordo. No entanto, logo encontramos outro problema: o agente às vezes ficava preso em um loop infinito, perguntando repetidamente ao cliente por mais informações sem avançar na resolução do problema.
Aprendemos que isso se devia à falta de um objetivo ou meta clara do agente. Para corrigir isso, tivemos que definir um conjunto de critérios de sucesso para cada estado e garantir que o agente estivesse trabalhando para alcançar esses objetivos. Isso envolveu adicionar mais arestas condicionais e próximos estados ao StateGraph, assim como usar as ferramentas e recursos da MCP para fornecer ao agente mais contexto e informações.
Uma armadilha prática que encontramos foi a necessidade de equilibrar cuidadosamente o uso de memória e contexto do agente. Se o agente retivesse muita informação, ele se tornaria lento e não responsivo. Por outro lado, se esquecesse demais, perderia o contexto e teria dificuldades para responder de forma eficaz. Esse equilíbrio é crucial na construção de sistemas de IA agentes eficazes, e é uma lição que levaremos adiante enquanto continuamos a explorar as possibilidades da LangGraph e da MCP.
Enquanto olhamos para o futuro, estamos empolgados para ver como essas tecnologias continuarão a evoluir e melhorar, permitindo-nos construir sistemas de IA ainda mais sofisticados e eficazes que possam enfrentar desafios complexos e ter um impacto real na vida das pessoas. Amanhã, estaremos explorando novas fronteiras na IA agente, e mal podemos esperar para ver o que o futuro nos reserva.
Empresas brasileiras podem se beneficiar da implementação de agentes de IA que mantêm o contexto em interações, melhorando o atendimento ao cliente. A utilização de ferramentas como LangGraph e MCP pode otimizar processos e aumentar a satisfação do cliente.

