langchain/docs/explanation/tools.md
altryne f990395211
Readme typos (#409)
I was honored by the twitter mention, so used PyCharm to try and... help
docs even a little bit.
Mostly typo-s and correct spellings. 

PyCharm really complains about "really good" being used all the time and
recommended alternative wordings haha
2022-12-23 13:13:07 -05:00

4.1 KiB

Tools

Tools are functions that agents can use to interact with the world. These tools can be generic utilities (e.g. search), other chains, or even other agents.

Currently, tools can be loaded with the following snippet:

from langchain.agents import load_tools
tool_names = [...]
tools = load_tools(tool_names)

Some tools (e.g. chains, agents) may require a base LLM to use to initialize them. In that case, you can pass in an LLM as well:

from langchain.agents import load_tools
tool_names = [...]
llm = ...
tools = load_tools(tool_names, llm=llm)

Below is a list of all supported tools and relevant information:

  • Tool Name: The name the LLM refers to the tool by.
  • Tool Description: The description of the tool that is passed to the LLM.
  • Notes: Notes about the tool that are NOT passed to the LLM.
  • Requires LLM: Whether this tool requires an LLM to be initialized.
  • (Optional) Extra Parameters: What extra parameters are required to initialize this tool.

List of Tools

python_repl

  • Tool Name: Python REPL
  • Tool Description: A Python shell. Use this to execute python commands. Input should be a valid python command. If you expect output it should be printed out.
  • Notes: Maintains state.
  • Requires LLM: No

serpapi

  • Tool Name: Search
  • Tool Description: A search engine. Useful for when you need to answer questions about current events. Input should be a search query.
  • Notes: Calls the Serp API and then parses results.
  • Requires LLM: No

requests

  • Tool Name: Requests
  • Tool Description: A portal to the internet. Use this when you need to get specific content from a site. Input should be a specific url, and the output will be all the text on that page.
  • Notes: Uses the Python requests module.
  • Requires LLM: No

terminal

  • Tool Name: Terminal
  • Tool Description: Executes commands in a terminal. Input should be valid commands, and the output will be any output from running that command.
  • Notes: Executes commands with subprocess.
  • Requires LLM: No

pal-math

  • Tool Name: PAL-MATH
  • Tool Description: A language model that is excellent at solving complex word math problems. Input should be a fully worded hard word math problem.
  • Notes: Based on this paper.
  • Requires LLM: Yes

pal-colored-objects

  • Tool Name: PAL-COLOR-OBJ
  • Tool Description: A language model that is wonderful at reasoning about position and the color attributes of objects. Input should be a fully worded hard reasoning problem. Make sure to include all information about the objects AND the final question you want to answer.
  • Notes: Based on this paper.
  • Requires LLM: Yes

llm-math

  • Tool Name: Calculator
  • Tool Description: Useful for when you need to answer questions about math.
  • Notes: An instance of the LLMMath chain.
  • Requires LLM: Yes

open-meteo-api

  • Tool Name: Open Meteo API
  • Tool Description: Useful for when you want to get weather information from the OpenMeteo API. The input should be a question in natural language that this API can answer.
  • Notes: A natural language connection to the Open Meteo API (https://api.open-meteo.com/), specifically the /v1/forecast endpoint.
  • Requires LLM: Yes

news-api

  • Tool Name: News API
  • Tool Description: Use this when you want to get information about the top headlines of current news stories. The input should be a question in natural language that this API can answer.
  • Notes: A natural language connection to the News API (https://newsapi.org), specifically the /v2/top-headlines endpoint.
  • Requires LLM: Yes
  • Extra Parameters: news_api_key (your API key to access this endpoint)

tmdb-api

  • Tool Name: TMDB API
  • Tool Description: Useful for when you want to get information from The Movie Database. The input should be a question in natural language that this API can answer.
  • Notes: A natural language connection to the TMDB API (https://api.themoviedb.org/3), specifically the /search/movie endpoint.
  • Requires LLM: Yes
  • Extra Parameters: tmdb_bearer_token (your Bearer Token to access this endpoint - note that this is different from the API key)