diff --git a/libs/langchain/langchain/agents/load_tools.py b/libs/langchain/langchain/agents/load_tools.py index 71166969d1..ed1eca41c7 100644 --- a/libs/langchain/langchain/agents/load_tools.py +++ b/libs/langchain/langchain/agents/load_tools.py @@ -1,5 +1,19 @@ # flake8: noqa -"""Load tools.""" +"""Tools provide access to various resources and services. + +LangChain has a large ecosystem of integrations with various external resources +like local and remote file systems, APIs and databases. + +These integrations allow developers to create versatile applications that combine the +power of LLMs with the ability to access, interact with and manipulate external +resources. + +When developing an application, developers should inspect the capabilities and +permissions of the tools that underlie the given agent toolkit, and determine +whether permissions of the given toolkit are appropriate for the application. + +See [Security](https://python.langchain.com/docs/security) for more information. +""" import warnings from typing import Any, Dict, List, Optional, Callable, Tuple from mypy_extensions import Arg, KwArg @@ -397,7 +411,6 @@ def load_huggingface_tool( Returns: A tool. - """ try: from transformers import load_tool @@ -434,6 +447,22 @@ def load_tools( ) -> List[BaseTool]: """Load tools based on their name. + Tools allow agents to interact with various resources and services like + APIs, databases, file systems, etc. + + Please scope the permissions of each tools to the minimum required for the + application. + + For example, if an application only needs to read from a database, + the database tool should not be given write permissions. Moreover + consider scoping the permissions to only allow accessing specific + tables and impose user-level quota for limiting resource usage. + + Please read the APIs of the individual tools to determine which configuration + they support. + + See [Security](https://python.langchain.com/docs/security) for more information. + Args: tool_names: name of tools to load. llm: An optional language model, may be needed to initialize certain tools.