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:

  1. O nome da ferramenta
  2. Uma descrição do que é a ferramenta
  3. Esquema JSON de quais são as entradas para a ferramenta
  4. A função a ser chamada
  5. 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:

Formas de implementar

Nesse artigo How To Build an AI Agent That Uses RAG To Increase Accuracy tem um exemplo interessante sobre.