Projetando Sistemas Agentes com LangChain
Dilini K. Sumanapala, PhD
Founder & AI Engineer, Genverv, Ltd.







from langgraph.graph import MessagesState, START, END# Use MessagesState para definir o estado da função de parada def should_continue(state: MessagesState):# Pegue a última mensagem do estado last_message = state["messages"][-1]# Verifique se a última mensagem inclui chamadas de ferramenta if last_message.tool_calls: return "tools"# Encerre a conversa se não houver chamadas de ferramenta return END
# Extraia a última mensagem do histórico def call_model(state: MessagesState):last_message = state["messages"][-1]# Se a última mensagem tiver chamadas de ferramenta, retorne a resposta da ferramenta if isinstance(last_message, AIMessage) and last_message.tool_calls:# Retorne as mensagens da chamada de ferramenta return {"messages": [AIMessage(content=last_message.tool_calls[0]["response"])]}# Caso contrário, prossiga com uma resposta normal do LLM return {"messages": [model_with_tools.invoke(state["messages"])]}
workflow = StateGraph(MessagesState)
workflow = StateGraph(MessagesState)# Adicione nós para chatbot e ferramentas workflow.add_node("chatbot", call_model) workflow.add_node("tools", tool_node)

workflow = StateGraph(MessagesState)# Adicione nós para chatbot e ferramentas workflow.add_node("chatbot", call_model) workflow.add_node("tools", tool_node)# Conecte o nó START ao chatbot workflow.add_edge(START, "chatbot")

workflow = StateGraph(MessagesState)# Adicione nós para chatbot e ferramentas workflow.add_node("chatbot", call_model) workflow.add_node("tools", tool_node)# Conecte o nó START ao chatbot workflow.add_edge(START, "chatbot")# Defina condições e volte para o chatbot workflow.add_conditional_edges("chatbot", should_continue, ["tools", END])

workflow = StateGraph(MessagesState)# Adicione nós para chatbot e ferramentas workflow.add_node("chatbot", call_model) workflow.add_node("tools", tool_node)# Conecte o nó START ao chatbot workflow.add_edge(START, "chatbot")# Defina condições e volte para o chatbot workflow.add_conditional_edges("chatbot", should_continue, ["tools", END])workflow.add_edge("tools", "chatbot")

# Configurar memória e compilar o fluxo memory = MemorySaver()app = workflow.compile( checkpointer=memory)display(Image(app.get_graph() .draw_mermaid_png()))
Projetando Sistemas Agentes com LangChain