diff --git a/langchain/tools/interaction/__init__.py b/langchain/tools/interaction/__init__.py new file mode 100644 index 00000000000..be3393362d8 --- /dev/null +++ b/langchain/tools/interaction/__init__.py @@ -0,0 +1 @@ +"""Tools for interacting with the user.""" diff --git a/langchain/tools/interaction/tool.py b/langchain/tools/interaction/tool.py new file mode 100644 index 00000000000..ee2b51ca4ca --- /dev/null +++ b/langchain/tools/interaction/tool.py @@ -0,0 +1,22 @@ +"""Tools for interacting with the user.""" + + +from langchain.tools.base import BaseTool + + +class StdInInquireTool(BaseTool): + """Tool for asking the user for input.""" + + name: str = "Inquire" + description: str = ( + "useful if you do not have enough information to" + " effectively use other tools. Input is best as a clarifying" + " question (to disambiguate) or a request for more context." + ) + + def _run(self, prompt: str) -> str: + """Prompt the user for more input.""" + return input(f"\n{prompt}") + + async def _arun(self, query: str) -> str: + raise NotImplementedError(f"{self.__class__.__name__} does not support async")