“`html
Como Implementar Chamada de Ferramenta com LangGraph
Estamos construindo um sistema de chamada de ferramentas usando LangGraph, um framework que já está ganhando popularidade com 28.422 estrelas no GitHub. Se você é um desenvolvedor que busca integrar chamadas de ferramentas em seus projetos, você está no lugar certo. Vamos direto ao ponto e ver como implementar chamadas de ferramentas com langgraph.
Pré-requisitos
- Python 3.11+
- pip install langchain>=0.2.0
- Compreensão básica de conceitos de API
- Uma conta ativa no GitHub do LangGraph para acessar a biblioteca
Passo 1: Configure Seu Ambiente
Antes de começar a construir, você precisa de um ambiente funcional. Você deve garantir que tenha a versão necessária do Python e LangGraph instalados. Isso é fundamental porque, se você começar com a versão errada, perderá horas depurando problemas de compatibilidade de versão—como eu uma vez fiz com o Python 2.x.
# Atualizar pip
pip install --upgrade pip
# Instalar langchain
pip install langchain
Passo 2: Crie Um Aplicativo Básico
Precisamos de um aplicativo básico para interagir com LangGraph. Este código inicial define o endpoint da API. Ele dá uma ideia de como chamar diferentes ferramentas dentro do LangGraph de forma eficaz.
from langchain import Tool, chain
# Definir uma ferramenta de eco simples
def echo_tool(text: str) -> str:
return text
# Configurar a ferramenta no LangGraph
echo = Tool(func=echo_tool, name="EchoTool", description="Retorna o texto de entrada")
# Exemplo de chamada da ferramenta
result = echo("Olá, LangGraph!")
print(result) # Saída: Olá, LangGraph!
Quando você roda este script, ele configura uma ferramenta de eco que simplesmente retorna o que você lhe envia. Chame isso de um olá mundo para chamadas de ferramentas com LangGraph.
Passo 3: Implementar Chamada de Ferramenta
Esta seção foca em desenvolver um sistema que pode chamar múltiplas ferramentas dinamicamente. Isso é crucial; caso contrário, você pode acabar como eu, preso em uma pilha de invocações de ferramentas estáticas.
from langchain import Tool, run
def reverse_tool(text: str) -> str:
return text[::-1]
def time_tool() -> str:
from datetime import datetime
return datetime.now().isoformat()
# Implementar as ferramentas
reverse = Tool(func=reverse_tool, name="ReverseTool", description="Inverter o texto de entrada")
current_time = Tool(func=time_tool, name="TimeTool", description="Obter a hora atual")
# Registrar ferramentas em um mecanismo de chamada dinâmica
tools = [reverse, current_time]
def call_tool(tool_name: str, input_text: str = None):
for tool in tools:
if tool.name == tool_name:
if input_text:
return tool(input_text)
return tool()
return "Ferramenta Não Encontrada"
print(call_tool("ReverseTool", "Olá!")) # Saída: !aloH
print(call_tool("TimeTool")) # Saída: Hora ISO atual
Este trecho de código ilustra como chamar diferentes ferramentas em tempo de execução. Se você esquecer de adicionar uma ferramenta, receberá “Ferramenta Não Encontrada”—um erro que todos nós odiamos cometer.
Passo 4: Tratamento de Erros
Ah, o clássico impeditivo—erros podem ser um verdadeiro incômodo. Vamos ver como gerenciar potenciais falhas de forma eficaz. Garantir que você trate os erros de maneira elegante é vital para a produção.
def call_tool_safe(tool_name: str, input_text: str = None):
try:
result = call_tool(tool_name, input_text)
if result == "Ferramenta Não Encontrada":
raise ValueError(f"{tool_name} não existe.")
return result
except Exception as e:
return f"Ocorreu um erro: {str(e)}"
print(call_tool_safe("FerramentaInexistente")) # Saída: Ocorreu um erro: FerramentaInexistente não existe.
Ao envolver as chamadas em um bloco try-except, você pode garantir que seu aplicativo não trave se um usuário tentar chamar uma ferramenta que não existe. Sem isso, você pode acabar com um sistema que deixa os usuários se perguntando.
Os Perigos
- Incompatibilidades de Versão: Você pode enfrentar bugs estranhos se sua versão do Python tiver diferenças com a versão mais recente do LangGraph. Sempre verifique a compatibilidade.
- Registro Dinâmico de Ferramentas: Esquecer de incluir uma ferramenta no chamador dinâmico fará com que sua chamada de ferramenta pare de funcionar de repente.
- Gerenciamento de Erros: Não tratar exceções pode levar seu aplicativo inteiro a travar. Use try-except liberalmente.
- Limites de Taxa da API: Ao implantar em cenários do mundo real, APIs de terceiros costumam ter limites de taxa. Fique de olho nesses limites como um falcão.
- Testes: Testes unitários para ferramentas tornam-se imperativos. Negligencie isso, e você pode descobrir que um caractere incorreto está causando problemas na produção.
Exemplo Completo de Código
“`
from langchain import Tool, run
from datetime import datetime
# Ferramentas são definidas
def echo_tool(text: str) -> str:
return text
def reverse_tool(text: str) -> str:
return text[::-1]
def time_tool() -> str:
return datetime.now().isoformat()
# Registrando ferramentas
echo = Tool(func=echo_tool, name="EchoTool", description="Repete o texto de entrada")
reverse = Tool(func=reverse_tool, name="ReverseTool", description="Inverte o texto de entrada")
current_time = Tool(func=time_tool, name="TimeTool", description="Obtém a hora atual")
tools = [echo, reverse, current_time]
def call_tool(tool_name: str, input_text: str = None):
for tool in tools:
if tool.name == tool_name:
if input_text:
return tool(input_text)
return tool()
return "Ferramenta Não Encontrada"
def call_tool_safe(tool_name: str, input_text: str = None):
try:
result = call_tool(tool_name, input_text)
if result == "Ferramenta Não Encontrada":
raise ValueError(f"{tool_name} não existe.")
return result
except Exception as e:
return f"Ocorreu um erro: {str(e)}"
# Exemplos de saída
print(call_tool_safe("ReverseTool", "Hello!")) # Saída: !olleH
print(call_tool_safe("TimeTool")) # Saída: Hora ISO atual
O que vem a seguir?
Depois de implementar a chamada de ferramentas, considere trabalhar com APIs assíncronas. Isso lhe ensinará a lidar com múltiplas solicitações ao mesmo tempo! É um ponto de crescimento natural a partir daqui.
FAQ
- Q: Preciso saber Python para usar LangGraph?
- Q: Quantas ferramentas posso criar?
- Q: E se eu esquecer de chamar uma ferramenta?
A: Sim, o conhecimento em Python é fundamental, especialmente se você quiser personalizar ferramentas.
A: Você pode teoricamente criar quantas ferramentas quiser, mas tenha em mente o desempenho do sistema.
A: Se não estiver registrada na sua lista de ferramentas, você receberá um erro “Ferramenta Não Encontrada”.
Fontes de Dados
Para documentação oficial, confira LangGraph no GitHub. É lá que você encontrará todos os detalhes pertinentes sobre as ferramentas e como elas funcionam.
Além disso, o repositório do GitHub indica que, a partir de hoje, 5 de abril de 2026, o LangGraph possui 28.422 estrelas, 4.854 forks e alguns documentos úteis detalhando questões e contribuições.
| Métrica | Valor |
|---|---|
| Estrelas | 28.422 |
| Forks | 4.854 |
| Problemas Abertos | 475 |
| Licença | MIT |
| Última Atualização | 5 de abril de 2026 |
Última atualização em 5 de abril de 2026. Dados obtidos de documentos oficiais e benchmarks da comunidade.
🕒 Published: