O que são?
Tools são interfaces que um agente, cadeia ou LLM pode usar para interagir com o mundo. Elas combinam algumas coisas:
- O nome da ferramenta
- Uma descrição do que é a ferramenta
- Esquema JSON de quais são as entradas para a ferramenta
- A função a ser chamada
- Se o resultado de uma ferramenta deve ser retornado diretamente ao usuário
É útil ter todas essas informações porque elas podem ser usadas para construir sistemas de tomada de ação! O exemplo clássico é informarmos ao LLM que temos uma ferramenta para retornar a temperatura em tempo real de uma cidade, a medida que a pessoa conversa com a LLM, ela (LLM) decide quando pode chamar a ferramenta para obter a informação, com base na conversa. Ou seja, a decisão do uso das ferramentas disponíveis é feita pela LLM conforme a conversa com o usuário.
Uma tool geralmente segue o conceito de função, que contem um nome, descrição e esquema JSON de parâmetros. Dessa forma, a LLM usa essa informação para decidir que ação tomar, e então a função a ser chamada é equivalente a tomar essa ação.
Quanto mais simples for a entrada para uma tool, mais fácil será para um LLM poder usá-la. Muitos agentes só funcionarão com ferramentas que têm uma única entrada de string. Para obter uma lista dos tipos de agentes e quais trabalham com entradas mais complicadas, por favor veja esta documentação
Texto adaptado de https://python.langchain.com/v0.1/docs/modules/tools/
Plataformas disponíveis
Onde podemos implementar as tools:
- LangChain
- Llama
- Groq
- OpenAI - Assistants
- Gemini: Function calling ( Tools com LLM )
- Mistral: Function calling ( Tools com LLM )
Formas de implementar
Nesse artigo How To Build an AI Agent That Uses RAG To Increase Accuracy tem um exemplo interessante sobre.