diff --git a/src/crewai_tools/__init__.py b/src/crewai_tools/__init__.py index 642ad703c..34e15b876 100644 --- a/src/crewai_tools/__init__.py +++ b/src/crewai_tools/__init__.py @@ -1,5 +1,6 @@ from .tools.base_tool import BaseTool, Tool, tool from .tools import ( + BrowserbaseLoadTool, CodeDocsSearchTool, CSVSearchTool, DirectorySearchTool, diff --git a/src/crewai_tools/tools/__init__.py b/src/crewai_tools/tools/__init__.py index 99860a14f..efbe0588e 100644 --- a/src/crewai_tools/tools/__init__.py +++ b/src/crewai_tools/tools/__init__.py @@ -1,3 +1,4 @@ +from .browserbase_load_tool.browserbase_load_tool import BrowserbaseLoadTool from .code_docs_search_tool.code_docs_search_tool import CodeDocsSearchTool from .csv_search_tool.csv_search_tool import CSVSearchTool from .directory_search_tool.directory_search_tool import DirectorySearchTool @@ -18,4 +19,4 @@ from .selenium_scraping_tool.selenium_scraping_tool import SeleniumScrapingTool from .website_search.website_search_tool import WebsiteSearchTool from .xml_search_tool.xml_search_tool import XMLSearchTool from .youtube_channel_search_tool.youtube_channel_search_tool import YoutubeChannelSearchTool -from .youtube_video_search_tool.youtube_video_search_tool import YoutubeVideoSearchTool \ No newline at end of file +from .youtube_video_search_tool.youtube_video_search_tool import YoutubeVideoSearchTool diff --git a/src/crewai_tools/tools/browserbase_load_tool/README.md b/src/crewai_tools/tools/browserbase_load_tool/README.md new file mode 100644 index 000000000..a2866f9a8 --- /dev/null +++ b/src/crewai_tools/tools/browserbase_load_tool/README.md @@ -0,0 +1,29 @@ +# BrowserbaseLoadTool + +## Description + +[Browserbase](https://browserbase.com) is a serverless platform for running headless browsers, it offers advanced debugging, session recordings, stealth mode, integrated proxies and captcha solving. + +## Installation + +- Get an API key from [browserbase.com](https://browserbase.com) and set it in environment variables (`BROWSERBASE_API_KEY`). +- Install the [Browserbase SDK](http://github.com/browserbase/python-sdk) along with `crewai[tools]` package: + +``` +pip install browserbase 'crewai[tools]' +``` + +## Example + +Utilize the BrowserbaseLoadTool as follows to allow your agent to load websites: + +```python +from crewai_tools import BrowserbaseLoadTool + +tool = BrowserbaseLoadTool() +``` + +## Arguments + +- `api_key`: Optional. Specifies Browserbase API key. Defaults is the `BROWSERBASE_API_KEY` environment variable. +- `text_content`: Optional. Load pages as readable text. Default is `False`. diff --git a/src/crewai_tools/tools/browserbase_load_tool/browserbase_load_tool.py b/src/crewai_tools/tools/browserbase_load_tool/browserbase_load_tool.py new file mode 100644 index 000000000..126219bd3 --- /dev/null +++ b/src/crewai_tools/tools/browserbase_load_tool/browserbase_load_tool.py @@ -0,0 +1,21 @@ +import os +from crewai_tools import BaseTool +from typing import Union, Optional + +class BrowserbaseLoadTool(BaseTool): + name: str = "Browserbase web load tool" + description: str = "Load webpages in a headless browser using Browserbase and return the contents" + + def __init__(self, api_key: Optional[str] = None, text_content: bool = False): + try: + from browserbase import Browserbase + except ImportError: + raise ImportError( + "`browserbase` package not found, please run `pip install browserbase`" + ) + + self.browserbase = Browserbase(api_key=api_key) + self.text_content = text_content + + def _run(self, url: str): + return self.browserbase.load_url(url, text_content=self.text_content)