| # Tools | |
| <Tip warning={true}> | |
| Smolagents is an experimental API which is subject to change at any time. Results returned by the agents | |
| can vary as the APIs or underlying models are prone to change. | |
| </Tip> | |
| To learn more about agents and tools make sure to read the [introductory guide](../index). This page | |
| contains the API docs for the underlying classes. | |
| ## Tools | |
| ### load_tool | |
| [[autodoc]] load_tool | |
| ### tool | |
| [[autodoc]] tool | |
| ### Tool | |
| [[autodoc]] Tool | |
| ### launch_gradio_demo | |
| [[autodoc]] launch_gradio_demo | |
| ## Default tools | |
| ### PythonInterpreterTool | |
| [[autodoc]] PythonInterpreterTool | |
| ### FinalAnswerTool | |
| [[autodoc]] FinalAnswerTool | |
| ### UserInputTool | |
| [[autodoc]] UserInputTool | |
| ### WebSearchTool | |
| [[autodoc]] WebSearchTool | |
| ### DuckDuckGoSearchTool | |
| [[autodoc]] DuckDuckGoSearchTool | |
| ### GoogleSearchTool | |
| [[autodoc]] GoogleSearchTool | |
| ### VisitWebpageTool | |
| [[autodoc]] VisitWebpageTool | |
| ### SpeechToTextTool | |
| [[autodoc]] SpeechToTextTool | |
| ## ToolCollection | |
| [[autodoc]] ToolCollection | |
| ## MCP Client | |
| [[autodoc]] smolagents.mcp_client.MCPClient | |
| ## Agent Types | |
| Agents can handle any type of object in-between tools; tools, being completely multimodal, can accept and return | |
| text, image, audio, video, among other types. In order to increase compatibility between tools, as well as to | |
| correctly render these returns in ipython (jupyter, colab, ipython notebooks, ...), we implement wrapper classes | |
| around these types. | |
| The wrapped objects should continue behaving as initially; a text object should still behave as a string, an image | |
| object should still behave as a `PIL.Image`. | |
| These types have three specific purposes: | |
| - Calling `to_raw` on the type should return the underlying object | |
| - Calling `to_string` on the type should return the object as a string: that can be the string in case of an `AgentText` | |
| but will be the path of the serialized version of the object in other instances | |
| - Displaying it in an ipython kernel should display the object correctly | |
| ### AgentText | |
| [[autodoc]] smolagents.agent_types.AgentText | |
| ### AgentImage | |
| [[autodoc]] smolagents.agent_types.AgentImage | |
| ### AgentAudio | |
| [[autodoc]] smolagents.agent_types.AgentAudio | |