langchain/docs
小铭 cf5803e44c
Add ToolException that a tool can throw. (#5050)
# Add ToolException that a tool can throw
This is an optional exception that tool throws when execution error
occurs.
When this exception is thrown, the agent will not stop working,but will
handle the exception according to the handle_tool_error variable of the
tool,and the processing result will be returned to the agent as
observation,and printed in pink on the console.It can be used like this:
```python 
from langchain.schema import ToolException
from langchain import LLMMathChain, SerpAPIWrapper, OpenAI
from langchain.agents import AgentType, initialize_agent
from langchain.chat_models import ChatOpenAI
from langchain.tools import BaseTool, StructuredTool, Tool, tool
from langchain.chat_models import ChatOpenAI

llm = ChatOpenAI(temperature=0)
llm_math_chain = LLMMathChain(llm=llm, verbose=True)

class Error_tool:
    def run(self, s: str):
        raise ToolException('The current search tool is not available.')
    
def handle_tool_error(error) -> str:
    return "The following errors occurred during tool execution:"+str(error)

search_tool1 = Error_tool()
search_tool2 = SerpAPIWrapper()
tools = [
    Tool.from_function(
        func=search_tool1.run,
        name="Search_tool1",
        description="useful for when you need to answer questions about current events.You should give priority to using it.",
        handle_tool_error=handle_tool_error,
    ),
    Tool.from_function(
        func=search_tool2.run,
        name="Search_tool2",
        description="useful for when you need to answer questions about current events",
        return_direct=True,
    )
]
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True,
                         handle_tool_errors=handle_tool_error)
agent.run("Who is Leo DiCaprio's girlfriend? What is her current age raised to the 0.43 power?")
```

![image](https://github.com/hwchase17/langchain/assets/32786500/51930410-b26e-4f85-a1e1-e6a6fb450ada)

## Who can review?
- @vowelparrot

---------

Co-authored-by: Dev 2049 <dev.dev2049@gmail.com>
2023-05-29 20:05:58 +00:00
..
_static docs: Big Mendable Improvements (#4964) 2023-05-19 15:31:48 -07:00
additional_resources docs: Deployments page moved into Ecosystem/ (#4949) 2023-05-21 21:18:22 -07:00
ecosystem Add Chainlit to deployment options (#5314) 2023-05-27 21:12:53 -07:00
getting_started docs: added link to LangChain Handbook (#5311) 2023-05-27 20:57:40 -07:00
integrations docs: ecosystem/integrations update 1 (#5219) 2023-05-29 07:25:17 -07:00
modules Add ToolException that a tool can throw. (#5050) 2023-05-29 20:05:58 +00:00
reference docs: compound ecosystem and integrations (#4870) 2023-05-18 09:29:57 -07:00
tracing Some notebook and client fixes (add retries, clean up docs, etc) (#4820) 2023-05-16 20:23:00 -07:00
use_cases Fixed typo: 'ouput' to 'output' in all documentation (#5272) 2023-05-25 19:18:31 -07:00
conf.py docs: Mendable Search integration (#2803) 2023-04-13 21:52:25 -07:00
dependents.md docs: added ecosystem/dependents page (#4941) 2023-05-18 13:11:08 -07:00
index.rst docs: Deployments page moved into Ecosystem/ (#4949) 2023-05-21 21:18:22 -07:00
integrations.rst docs: ecosystem/integrations update 1 (#5219) 2023-05-29 07:25:17 -07:00
make.bat initial commit 2022-10-24 14:51:15 -07:00
Makefile Feature: linkcheck-action (#534) (#542) 2023-01-04 21:39:50 -08:00
reference.rst docs: Deployments page moved into Ecosystem/ (#4949) 2023-05-21 21:18:22 -07:00
requirements.txt Harrison/docs reqs (#2199) 2023-03-30 08:20:30 -07:00