Compare commits

...
551 Commits
Author SHA1 Message Date
Greyson Lalonde 2b85244b36 dont cache deps 2025-09-27 20:37:48 -04:00
Greyson Lalonde 2b6fba8390 fix: try install project 2025-09-27 20:34:13 -04:00
Greyson Lalonde 37b49756b5 fix: try from root 2025-09-27 20:31:47 -04:00
Greyson Lalonde 6fd2d8e19b fix: change ref, lint 2025-09-27 17:25:15 -04:00
Greyson Lalonde 4d79c41a06 feat: move core functionality to lib workspace structure 2025-09-27 17:22:46 -04:00
Greyson Lalonde f0762473d0 chore: update CI workflows and dependencies for workspace structure 2025-09-27 16:37:08 -04:00
Greyson Lalonde aca826c553 refactor: move rag package to lib/core and extract standalone utilities 2025-09-27 16:31:54 -04:00
Greyson LaLonde 1d1f5f455c test: fix lite agent guardrail test assertions 2025-09-26 23:15:37 -04:00
Greyson LaLonde 58b72c3948 test: mark tracing tests requiring API connections to skip in CI 2025-09-26 23:10:45 -04:00
Greyson LaLonde 3b18e7d971 test: fix task interpolation test assertion and update cassette 2025-09-26 23:07:51 -04:00
Greyson LaLonde c062992806 test: mark tests requiring external APIs to skip in CI 2025-09-26 23:03:38 -04:00
Greyson LaLonde 9d3fe72e75 test: fix evaluation tests and update cassettes 2025-09-26 22:59:43 -04:00
Greyson LaLonde d2249e621d test: mark converter tests requiring local services to skip in CI 2025-09-26 22:50:26 -04:00
Greyson LaLonde 03a711c365 rerecord cassetes 2025-09-26 22:44:04 -04:00
Greyson LaLonde 72366e846e fix: handle source code extraction errors for lambda guardrails
- Fix OSError when trying to get source code of lambda functions in guardrail events
- Gracefully handle lambdas and built-in functions by showing placeholder text
2025-09-26 22:37:31 -04:00
Greyson LaLonde 0a09beca03 fix: improve VCR configuration and skip local service tests in CI
- Update VCR config to exclude body matching for more reliable cassette playback
- Add pytest marker for tests requiring local services (Ollama, etc)
- Configure CI to skip tests marked as requiring local services
- Re-record async tool test cassettes with telemetry calls only
2025-09-26 22:30:34 -04:00
Greyson LaLonde 76ad0e0a10 test: re-record async tool test cassettes with proper mocking 2025-09-26 22:21:46 -04:00
Greyson LaLonde 6cf7da6d13 fix: remove broken VCR cassettes for async tool tests
These cassettes need to be re-recorded with proper API mocking
2025-09-26 22:18:37 -04:00
Greyson LaLonde 02267c1435 fix: specify tests directory in pytest command to avoid import conflicts 2025-09-26 22:14:02 -04:00
Greyson LaLonde a717f44011 refactor: move src and tests from lib/crewai to root 2025-09-26 22:10:31 -04:00
Greyson LaLonde b88f065ad8 feat: sync with upstream crewai-tools changes 2025-09-26 15:37:34 -04:00
Greyson LaLonde e2270456c4 feat: add crewai-tools library to workspace
- Migrate crewai-tools as standalone package in lib/tools
- Configure UV workspace for monorepo structure
- Move assets to repository root
- Clean up duplicate README files
- Focus pre-commit hooks on lib/crewai/src only
2025-09-26 15:05:41 -04:00
Greyson LaLonde 3eeb9b8f6c chore: prepare for crewai-tools migration 2025-09-26 14:52:25 -04:00
Greyson LaLonde 14a1bf6317 feat: add crewai-tools library to workspace 2025-09-26 14:37:51 -04:00
Greyson LaLonde 98a8607c87 chore: update workspace configuration and lock file 2025-09-26 14:32:15 -04:00
Greyson LaLonde daf6f679ff feat: restructure project as UV workspace with crewai in lib/ 2025-09-26 14:29:28 -04:00
Greyson LaLonde 74b5c88834 Merge branch 'main' into release/v1.0.0-alpha.1 2025-09-26 13:32:05 -04:00
Lucas Gomide 13e5ec711d feat: add apps & actions attributes to Agent (#3504)
* feat: add app attributes to Agent

* feat: add actions attribute to Agent

* chore: resolve linter issues

* refactor: merge the apps and actions parameters into a single one

* fix: remove unnecessary print

* feat: logging error when CrewaiPlatformTools fails

* chore: export CrewaiPlatformTools directly from crewai_tools

* style: resolver linter issues

* test: fix broken tests

* style: solve linter issues

* fix: fix broken test
2025-09-25 16:46:51 -04:00
Greyson LaLonde e350817b8d fix: remove debug logging (#462) 2025-09-25 08:00:41 -04:00
Thiago Moretto 2a927933f2 Add OPENAI_API_KEY as required by QdrantSearchTool (#461) 2025-09-24 12:34:37 -04:00
Greyson LaLonde 7c2aa2f923 fix: remove circular deps
- Remove embedchain and resolve circular deps with ChromaDB  
- Adjust lockfile to match crewai requirements  
- Mock embeddings and vector DB in RAG tool tests
2025-09-22 19:35:08 -04:00
Ryan 1bd10bb254 Add base_url param to exa search tool (#454) 2025-09-22 12:19:56 -04:00
Greyson LaLonde e29ca9ec28 feat: replace embedchain with native crewai adapter (#451)
- Remove embedchain adapter; add crewai rag adapter and update all search tools  
- Add loaders: pdf, youtube (video & channel), github, docs site, mysql, postgresql  
- Add configurable similarity threshold, limit params, and embedding_model support  
- Improve chromadb compatibility (sanitize metadata, convert columns, fix chunking)  
- Fix xml encoding, Python 3.10 issues, and youtube url spoofing  
- Update crewai dependency and instructions; refresh uv.lock  
- Update tests for new rag adapter and search params
2025-09-18 19:02:22 -04:00
Lucas Gomide 8d9cee45f2 feat: attempt to make embedchain optional (#450)
* fix: attempt to make embedchain optional

* fix: drop pydantic_settings dependency

* fix: ensure the package is importable without any extra dependency

After making embedchain option many packages were unstalled which caused errors in some tools due to failing import directives
2025-09-12 13:35:17 -04:00
Lucas Gomide f9925887aa Add CrewAIPlatformTools (#449)
* chore: add deprecation warning in CrewaiEnterpriseTools

* feat: add CrewAI Platform Tool

* feat: drop support to oldest env-var token
2025-09-12 12:04:26 -04:00
Vini Brasil 6f2301c945 Clarify tool support for both local and remote URLs (#447)
This commit updates tool prompts to explicitly highlight that some tools
can accept both local file paths and remote URLs.

The improved prompts ensure LLMs understand they may pass remote
resources.
2025-09-10 09:38:14 -03:00
Tony Kipkemboi cb8a1da730 feat(parallel): add ParallelSearchTool (Search API v1beta) (#445)
* docs: add BUILDING_TOOLS.md

* feat(parallel): add ParallelSearchTool (Search API v1beta), tests, README; register exports; regenerate tool.specs.json

* test(parallel): replace URL substring assertion with hostname allowlist (CodeQL)
2025-09-08 10:53:06 -04:00
Lucas Gomide 47b64d3507 fix: use explicit DeprecationWarning for legacy token detection (#440) 2025-09-02 16:28:22 -04:00
Lucas Gomide 33241ef363 refactor: fetch & execute enterprise tool actions from platform (#437)
* refactor: fetch enterprise tool actions from platform

* chore: logging legacy token detected
2025-09-02 15:41:00 -04:00
Vini Brasil 93b841fc86 Create tool for generating automations in Studio (#438)
* Create tool for generating automations in Studio

This commit creates a tool to use CrewAI Enterprise API to generate
crews using CrewAI Studio.

* Replace CREWAI_BASE_URL with CREWAI_PLUS_URL

* Add missing /crewai_plus in URL
2025-09-02 11:46:18 -03:00
cb84d2ddfa feat: Add modular contextual AI tools with async functionality (#431)
* Add contextual AI tools with async support

* Fix package version issues and update README

* Rename contextual tools to contextualai and update contents

* Update tools init for contextualai tools

* feat: Resolved no module found error for nest_asyncio

* Updated nest_asyncio import

---------

Co-authored-by: QJ <qj@QJs-MacBook-Pro.local>
Co-authored-by: Qile-Jiang <qile.jiang@contextual.ai>
2025-08-28 08:56:53 -04:00
Mike Plachta 1f581fa9ac fix: add OCRTool to crewai_tools package exports (#433) 2025-08-27 14:11:57 -07:00
Mike Plachta 6562587cba feat: add InvokeCrewAIAutomationTool for external crew API integration (#430)
* feat: add InvokeCrewAIAutomationTool for external crew API integration

* feat: add InvokeCrewAIAutomationTool class for executing CrewAI tasks programmatically
2025-08-27 10:42:19 -07:00
Erika Shorten 992cd726c4 Weaviate hybrid search (#428)
* Update tool to use hybrid search

* Set default alpha to 0.75
2025-08-27 10:33:16 -04:00
Mike Plachta 403bb7e208 feat: add descriptive header to scraped website content output (#426)
* feat: add descriptive header to scraped website content output

* fix: correct typo in scraped website content header text
2025-08-26 08:10:24 -07:00
Lucas Gomide dc039cfac8 Adds RAG feature (#406)
* feat: initialize rag

* refactor: using cosine distance metric for chromadb

* feat: use RecursiveCharacterTextSplitter as chunker strategy

* feat: support chucker and loader per data_type

* feat: adding JSON loader

* feat: adding CSVLoader

* feat: adding loader for DOCX files

* feat: add loader for MDX files

* feat: add loader for XML files

* feat: add loader for parser Webpage

* feat: support to load files from an entire directory

* feat: support to auto-load the loaders for additional DataType

* feat: add chuckers for some specific data type

- Each chunker uses separators specific to its content type

* feat: prevent document duplication and centralize content management

- Implement document deduplication logic in RAG
  * Check for existing documents by source reference
  * Compare doc IDs to detect content changes
  * Automatically replace outdated content while preventing duplicates

- Centralize common functionality for better maintainability
  * Create SourceContent class to handle URLs, files, and text uniformly
  * Extract shared utilities (compute_sha256) to misc.py
  * Standardize doc ID generation across all loaders

- Improve RAG system architecture
  * All loaders now inherit consistent patterns from centralized BaseLoader
  * Better separation of concerns with dedicated content management classes
  * Standardized LoaderResult structure across all loader implementations

* chore: split text loaders file

* test: adding missing tests about RAG loaders

* refactor: QOL

* fix: add missing uv syntax on DOCXLoader
2025-08-19 18:30:35 -04:00
Joao Moura 1ce016df8b Revert "working around OAI new update for now"
This reverts commit 23a16eb446.
2025-08-19 00:09:25 -07:00
Joao Moura 23a16eb446 working around OAI new update for now 2025-08-18 22:40:30 -07:00
Gabe Milani 16d613488b fix: use json_schema_extra instead of deprecated Field extra args (#417) 2025-08-14 17:52:56 -04:00
nicoferdi96 99e174e575 Stagehand tool improvements (#415)
* Stagehand tool improvements

This commit significantly improves the StagehandTool reliability and usability when working with CrewAI agents by addressing several critical
  issues:

  ## Key Improvements

  ### 1. Atomic Action Support
  - Added _extract_steps() method to break complex instructions into individual steps
  - Added _simplify_instruction() method for intelligent error recovery
  - Sequential execution of micro-actions with proper DOM settling between steps
  - Prevents token limit issues on complex pages by encouraging scoped actions

  ### 2. Enhanced Schema Design
  - Made instruction field optional to handle navigation-only commands
  - Added smart defaults for missing instructions based on command_type
  - Improved field descriptions to guide agents toward atomic actions with location context
  - Prevents "instruction Field required" validation errors

  ### 3. Intelligent API Key Management
  - Added _get_model_api_key() method with automatic detection based on model type
  - Support for OpenAI (GPT), Anthropic (Claude), and Google (Gemini) API keys
  - Removes need for manual model API key configuration

  ### 4. Robust Error Recovery
  - Step-by-step execution with individual error handling per atomic action
  - Automatic retry with simplified instructions when complex actions fail
  - Comprehensive error logging and reporting for debugging
  - Graceful degradation instead of complete failure

  ### 5. Token Management & Performance
  - Tool descriptions encourage atomic, scoped actions (e.g., "click search box in header")
  - Prevents "prompt too long" errors on complex pages like Wikipedia
  - Location-aware instruction patterns for better DOM targeting
  - Reduced observe-act cycles through better instruction decomposition

  ### 6. Enhanced Testing Support
  - Comprehensive async mock objects for testing mode
  - Proper async/sync compatibility for different execution contexts
  - Enhanced resource cleanup and session management

* Update stagehand_tool.py

removeing FixedStagehandTool in favour of StagehandTool

* removed comment

* Cleanup

Revoved unused class
Improved tool description
2025-08-13 08:57:11 -04:00
41ce4981ac feat: Add Bright Data tools (#314)
* Initial commit of BrightData tools

* Renamed the BrightData test file names

* Refactored and improved the overall BrightData tools

* Add BrightData tools

* Add tools to init

* Added config class

* Fix test failures and add missing __init__.py files

- Remove problematic brightdata_dataset_tool_test.py that referenced non-existent classes
- Fix brightdata_serp_tool_test.py to expect string responses instead of dict
- Fix brightdata_webunlocker_tool_test.py to expect string responses instead of dict
- Add missing tests/tools/__init__.py for proper test imports

---------

Co-authored-by: Ranjan Dailata <ranjancse@gmail.com>
Co-authored-by: Tony Kipkemboi <iamtonykipkemboi@gmail.com>
2025-08-07 10:29:51 -04:00
Volodymyr Tkachuk d00c9764fc feat: Adding SingleStoreSearchTool (#349)
* initial commit

* Add actual SinglesStore Search Tool implementation

* add the implementation

* update readme

* add tool's description

* add tests

* fix tests

* review comments

* remove schema from public exports

* fix test failure

* revert tools.specs.json

* added dependencies and env vars descriptions
2025-08-07 09:51:37 -04:00
Lucas Gomide 4daf18256d feat: allow custom client_timeout for MCPAdapter (#409) 2025-08-05 09:53:57 -04:00
Lucas Gomide 9220cfba28 fix: use proper ArxivPaperTool import (#408) 2025-08-05 09:46:11 -04:00
Lucas Gomide 707c8583f4 chore: make tavily tools exportable (#400) 2025-07-29 14:56:20 -04:00
Harikrishnan K 30df46445b Adding Arxiv Paper tool (#310)
* arxiv_paper_tool.py

* Updating as per the review

* Update __init__.py

* Update __init__.py

* Update arxiv_paper_tool.py

* added test cases

* Create README.md

* Create Examples.md

* Update Examples.md

* Updated logger

* Updated with package_dependencies,env_vars
2025-07-29 12:53:30 -04:00
Vini Brasil b8bd3000c6 Make RagTool processs-safe (#399)
This commit adds a file lock to `RagTool`. As it uses Embedchain and
Chroma internally, this tool was not process-safe.
2025-07-28 17:09:53 -03:00
Steven Silvester e6ec6cc332 Fix MongoDBVectorSearchTool serialization and schema (#389)
* Fix MongoDBVectorSearchTool serialization

* fix base class
2025-07-23 10:28:07 -07:00
Mike Plachta 104485d18b feat: add SerperScrapeWebsiteTool for extracting clean content from URLs (#392)
* feat: add SerperScrapeWebsiteTool for extracting clean content from URLs

* feat: add required SERPER_API_KEY env var validation to SerperScrapeWebsiteTool
2025-07-23 10:22:47 -07:00
Filip Michalskyandgithub-actions[bot] c3e87fc31f Fm/update stagehand (#387)
* Update tool specifications for

* Update stagehand dependency from stagehand-py to stagehand v0.4.1

* uv add

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-22 07:05:29 -07:00
Piyush JainandMichael Chin 2c38d1d448 Bedrock AgentCore browser and code interpreter toolkits (#385)
* Added browser and code tools

* Added dependencies, moved imports inside class

* Added instructions in README

* Updated imports

* Updated imports

* Updated dependencies

* Fix 'get_current_page' utilities for Browser tools

* Support browser session cleanup from synchronous code

* Update browser tool examples for new changes

* Manually override _run->_arun and set nested loop when in crew event loop

* Browser async example

* update examples with uv

* Fix toolkit fields for code interpreter

* Update code interpreter examples

* update uv.lock

* Move nest_asyncio import

---------

Co-authored-by: Michael Chin <mchin188@yahoo.com>
2025-07-18 14:33:39 -07:00
Thiago Moretto 9f6002a9dd Declaring and make some tool configurable using env vars (#376) 2025-07-14 09:48:36 -04:00
Lorenze Jay 78f5144bde Enhance EnterpriseActionTool with improved schema processing and erro… (#371)
* Enhance EnterpriseActionTool with improved schema processing and error handling

- Added methods for sanitizing names and processing schema types, including support for nested models and nullable types.
- Improved error handling during schema creation and processing, with warnings for failures.
- Updated parameter handling in the `_run` method to clean up `kwargs` before sending requests.
- Introduced a detailed description generation for nested schema structures to enhance tool documentation.

* Add tests for EnterpriseActionTool schema conversion and validation

- Introduced a new test class for validating complex nested schemas in EnterpriseActionTool.
- Added tests for schema conversion, optional fields, enum validation, and required nested fields.
- Implemented execution tests to ensure the tool can handle complex validated input correctly.
- Verified model naming conventions and added tests for simpler schemas with basic enum validation.
- Enhanced overall test coverage for the EnterpriseActionTool functionality.

* Update chromadb dependency version in pyproject.toml and uv.lock

- Changed chromadb version from >=0.4.22 to ==0.5.23 in both pyproject.toml and uv.lock to ensure compatibility and stability.

* Update test workflow configuration

- Changed EMBEDCHAIN_DB_URI to point to a temporary test database location.
- Added CHROMA_PERSIST_PATH for specifying the path to the Chroma test database.
- Cleaned up the test run command in the workflow file.

* reverted
2025-07-11 10:18:54 -07:00
Vini Brasil eb09f2718f Use environment variable to initialize scrapegraph_py.Client (#362)
This commit fixes a bug where `SCRAPEGRAPH_API_KEY` were never used to
initialize `scrapegraph_py.Client`.
2025-07-09 15:03:16 -03:00
Steven Silvesterandlorenzejay e0de166592 Add MongoDB Vector Search Tool (#319)
* INTPYTHON-580 Design and Implement MongoDBVectorSearchTool

* add implementation

* wip

* wip

* finish tests

* add todo

* refactor to wrap langchain-mongodb

* cleanup

* address review

* Fix usage of EnvVar class

* inline code

* lint

* lint

* fix usage of SearchIndexModel

* Refactor: Update EnvVar import path and remove unused tests.utils module

- Changed import of EnvVar from tests.utils to crewai.tools in multiple files.
- Updated README.md for MongoDB vector search tool with additional context.
- Modified subprocess command in vector_search.py for package installation.
- Cleaned up test_generate_tool_specs.py to improve mock patching syntax.
- Deleted unused tests/utils.py file.

* update the crewai dep and the lockfile

* chore: update package versions and dependencies in uv.lock

- Removed `auth0-python` package.
- Updated `crewai` version to 0.140.0 and adjusted its dependencies.
- Changed `json-repair` version to 0.25.2.
- Updated `litellm` version to 1.72.6.
- Modified dependency markers for several packages to improve compatibility with Python versions.

* refactor: improve MongoDB vector search tool with enhanced error handling and new dimensions field

- Added logging for error handling in the _run method and during client cleanup.
- Introduced a new 'dimensions' field in the MongoDBVectorSearchConfig for embedding vector size.
- Refactored the _run method to return JSON formatted results and handle exceptions gracefully.
- Cleaned up import statements and improved code readability.

* address review

* update tests

* debug

* fix test

* fix test

* fix test

* support azure openai

---------

Co-authored-by: lorenzejay <lorenzejaytech@gmail.com>
2025-07-09 08:44:23 -07:00
c45e92bd17 Add Couchbase as a tool (#264)
* - Added CouchbaseFTSVectorStore as a CrewAI tool.
- Wrote a README to setup the tool.
- Wrote test cases.
- Added Couchbase as an optional dependency in the project.

* Fixed naming in some places. Added docstrings. Added instructions on how to create a vector search index.

* Fixed pyproject.toml

* error handling and response format

- Removed unnecessary ImportError for missing 'couchbase' package.
- Changed response format from a concatenated string to a JSON array for search results.
- Updated error handling to return error messages instead of raising exceptions in certain cases.
- Adjusted tests to reflect changes in response format and error handling.

* Update dependencies in pyproject.toml and uv.lock

- Changed pydantic version from 2.6.1 to 2.10.6 in both pyproject.toml and uv.lock.
- Updated crewai-tools version from 0.42.2 to 0.42.3 in uv.lock.
- Adjusted pydantic-core version from 2.33.1 to 2.27.2 in uv.lock, reflecting the new pydantic version.

* Removed restrictive pydantic version and updated uv.lock

* synced lockfile

* regenerated lockfile

* updated lockfile

* regenerated lockfile

* Update tool specifications for

* Fix test cases

---------

Co-authored-by: AayushTyagi1 <tyagiaayush5@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-08 10:54:54 -04:00
Lorenze Jay b4786d86b0 refactor: enhance schema handling in EnterpriseActionTool (#355)
* refactor: enhance schema handling in EnterpriseActionTool

- Extracted schema property and required field extraction into separate methods for better readability and maintainability.
- Introduced methods to analyze field types and create Pydantic field definitions based on nullability and requirement status.
- Updated the _run method to handle required nullable fields, ensuring they are set to None if not provided in kwargs.

* refactor: streamline nullable field handling in EnterpriseActionTool

- Removed commented-out code related to handling required nullable fields for clarity.
- Simplified the logic in the _run method to focus on processing parameters without unnecessary comments.
2025-07-02 12:54:09 -07:00
Emmanuel Ferdman d53e96fcd7 fix: update Pydantic schema access (#337)
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2025-07-02 09:25:26 -07:00
Thiago Moretto 26652e5e24 Mapping required env vars of more tools (#353) 2025-07-01 14:08:30 -04:00
Lorenze Jay 180cc38330 refactor: update Firecrawl tools to improve configuration and error handling (#351)
- Added TYPE_CHECKING imports for FirecrawlApp to enhance type safety.
- Updated configuration keys in FirecrawlCrawlWebsiteTool and FirecrawlScrapeWebsiteTool to camelCase for consistency.
- Introduced error handling in the _run methods of both tools to ensure FirecrawlApp is properly initialized before usage.
- Adjusted parameters passed to crawl_url and scrape_url methods to use 'params' instead of unpacking the config dictionary directly.
2025-06-27 11:27:48 -07:00
Lorenze Jay 8723e66807 feat: add support for parsing actions list from environment variables (#346)
* feat: add support for parsing actions list from environment variables

This commit introduces a new function, _parse_actions_list, to handle the parsing of a string representation of a list of tool names from environment variables. The CrewaiEnterpriseTools now utilizes this function to filter tools based on the parsed actions list, enhancing flexibility in tool selection. Additionally, a new test case is added to verify the correct usage of the environment actions list.

* test: simplify environment actions list test setup

This commit refactors the test for CrewaiEnterpriseTools to streamline the setup of environment variables. The environment token and actions list are now set in a single patch.dict call, improving readability and reducing redundancy in the test code.
2025-06-25 11:14:41 -07:00
Lorenze Jay e4cb8bf797 Lorenze/better env vars setup enterprise tools (#343)
* refactor: remove token validation from EnterpriseActionKitToolAdapter and CrewaiEnterpriseTools

This commit simplifies the initialization of the EnterpriseActionKitToolAdapter and CrewaiEnterpriseTools by removing the explicit validation for the enterprise action token. The token can now be set to None without raising an error, allowing for more flexible usage.

* added loggers for monitoring

* fixed typo

* fix: enhance token handling in EnterpriseActionKitToolAdapter and CrewaiEnterpriseTools

This commit improves the handling of the enterprise action token by allowing it to be fetched from environment variables if not provided. It adds checks to ensure the token is set before making API requests, enhancing robustness and flexibility.

* removed redundancy

* test: add new test for environment token fallback in CrewaiEnterpriseTools

This update introduces a new test case to verify that the environment token is used when no token is provided during the initialization of CrewaiEnterpriseTools. Additionally, minor formatting adjustments were made to existing assertions for consistency.

* test: update environment token test to clear environment variables

This change modifies the test for CrewaiEnterpriseTools to ensure that the environment variables are cleared before setting the test token. This ensures a clean test environment and prevents potential interference from other tests.

* drop redundancy
2025-06-25 10:17:26 -07:00
Lucas Gomide 03917411b4 Support to filter available MCP Tools (#345)
* feat: support to complex filter on ToolCollection

* refactor: use proper tool collection methot to filter tool in CrewAiEnterpriseTools

* feat: allow to filter available MCP tools
2025-06-25 12:32:22 -04:00
Lucas Gomide e8825d071a feat: support api_key fallback to EXA_API_KEY env-var (#341) 2025-06-24 14:47:39 -04:00
Rostyslav Borovyk 78a062a907 Add Oxylabs Web Scraping tools (#312)
* Add Oxylabs tools

* Review updates

* Add package_dependencies attribute
2025-06-24 09:56:47 -04:00
Lucas Gomide c13b08de2e fix: add support for case-insensitive Enterprise filter (#340) 2025-06-20 11:09:45 -04:00
Lucas Gomide 31b3dd2b94 feat: Add ToolCollection class for named tool access (#339)
This change allows accessing tools by name (tools["tool_name"]) in addition to
index (tools[0]), making it more intuitive and convenient to work with multiple
tools without needing to remember their position in the list
2025-06-20 09:27:10 -04:00
Lucas Gomide 9e92b84bcc feat: mapping explicitly tool environment variables (#338) 2025-06-20 08:06:11 -04:00
Lucas Gomide 2cca45b45a refactor: renaming init_params and run_params to reflect their schema. (#332) (#333)
We’re currently using the JSON Schema standard for these fields
2025-06-17 07:52:51 -04:00
Lucas Gomide fac32d9503 Support to collect extra package dependencies of Tools (#330)
* feat: add explictly package_dependencies in the Tools

* feat: collect package_dependencies from Tool to add in tool.specs.json

* feat: add default value in run_params Tool' specs

* fix: support get boolean values

This commit also refactor test to make easier define newest attributes into a Tool
2025-06-16 10:09:19 -04:00
Lorenze Jay 5a99f07765 refactor: remove token validation from EnterpriseActionKitToolAdapter… (#331)
* refactor: remove token validation from EnterpriseActionKitToolAdapter and CrewaiEnterpriseTools

This commit simplifies the initialization of the EnterpriseActionKitToolAdapter and CrewaiEnterpriseTools by removing the explicit validation for the enterprise action token. The token can now be set to None without raising an error, allowing for more flexible usage.

* added loggers for monitoring

* fixed typo
2025-06-14 12:21:18 -07:00
Lucas Gomide dc2d4af8ea fix: ensure the entire file will be read when the start_line is None (#325) 2025-06-11 09:02:56 -04:00
Lucas Gomide 748f438232 Support to generate a tool spec file for each published released (#313)
* feat: generate tool specs file based on their schema definition

* generate tool spec after publishing a new release

* feat: support add available env-vars to tool.specs.json

* refactor: use better identifier names on tool specs

* feat: change tool specs generation to run daily

* feat: add auth token to notify api about tool changes

* refactor: use humanized_name instead of verbose_name

* refactor: generate tool spec after pushing to main

This commit also fix the remote upstream & updated the notify api
2025-06-03 10:11:17 -04:00
Lucas Gomide 72b3a8c70a feat: allow to provide the driver and options to be used by Selenium (#316) 2025-05-30 08:13:11 -04:00
Lorenze Jay 5d5377cfb9 feat: add ZapierActionTool and ZapierActionsAdapter for integrating with Zapier actions (#311)
* feat: add ZapierActionTool and ZapierActionsAdapter for integrating with Zapier actions

- Introduced ZapierActionTool to execute Zapier actions with dynamic parameter handling.
- Added ZapierActionsAdapter to fetch available Zapier actions and convert them into BaseTool instances.
- Updated __init__.py files to include new tools and ensure proper imports.
- Created README.md for ZapierActionTools with installation instructions and usage examples.

* fix: restore ZapierActionTool import and enhance logging in Zapier adapter

- Reintroduced the import of ZapierActionTool in __init__.py for proper accessibility.
- Added logging for error handling in ZapierActionsAdapter to improve debugging.
- Updated ZapierActionTools factory function to include logging for missing API key.
2025-05-27 09:54:35 -07:00
Lucas Gomide 0dbcbde119 fix: remove logging.basicConfig definition from Tool (#305) 2025-05-14 14:38:11 -04:00
Ranuga Disansaandlorenzejay ba6a85d342 Add TavilyExtractorTool and TavilySearchTool with documentation (#279)
* feat(tavily): add TavilyExtractorTool and TavilySearchTool with documentation

* feat(tavily): enhance TavilyExtractorTool and TavilySearchTool with additional parameters and improved error handling

* fix(tavily): update installation instructions for 'tavily-python' package in TavilyExtractorTool and TavilySearchTool

---------

Co-authored-by: lorenzejay <lorenzejaytech@gmail.com>
2025-05-14 09:45:12 -07:00
Mark McDonald 8b887b4eb3 Fix Callable reference in QdrantVectorSearchTool (#304)
The built-in `callable` type is not subscriptable, and thus not usable
in a type annotation. When this tool is used, this warning is generated:

```
.../_generate_schema.py:623: UserWarning: <built-in function callable> is not a Python type (it may be an instance of an object), Pydantic will allow any object with no validation since we cannot even enforce that the input is an instance of the given type. To get rid of this error wrap the type with `pydantic.SkipValidation`.
```

This change fixes the warning.
2025-05-13 17:13:07 -04:00
Filip Michalsky 8ecc958e4c stagehand tool (#277)
* stagehand tool

* update import paths

* updates

* improve example

* add tests

* revert init

* imports

* add context manager

* update tests

* update example to run again

* update context manager docs

* add to pyproject.toml and run uv sync

* run uv sync

* update lazy import

* update test mock

* fixing tests

* attempt to fix tests
2025-05-10 09:53:20 -04:00
Harikrishnan K 64f6f998d8 FileCompressorTool with support for files and subdirectories (#282)
* FileCompressorTool with support for files and subdirectories

* README.md

* Updated files_compressor_tool.py

* Enhanced FileCompressorTool different compression formats

* Update README.md

* Updated with lookup tables

* Updated files_compressor_tool.py

* Added Test Cases

* Removing Test_Cases.md inorder to update with correct test case as per the review

* Added Test Cases

* Test Cases with patch,MagicMock

* Empty lines Removed

* Updated Test Case,Ensured Maximum Scenarios

* Deleting old one

* Updated __init__.py to include FileCompressorTool

* Update __init__.py to add FileCompressorTool
2025-05-08 13:17:17 -04:00
nicoferdi96 edd4e5bef9 Fix FirecrawlScrapeWebsiteTool (#298)
* fix FirecrawlScrapeWebsiteTool: add missing config parameter and correct Dict type annotation

- Add required config parameter when creating the tool
- Change type hint from `dict` to `Dict` to resolve Pydantic validation issues

* Update firecrawl_scrape_website_tool.py

- removing optional config
- removing timeout from Pydantic model

* Removing config from __init__

- removing config from __init__

* Update firecrawl_scrape_website_tool.py

- removing timeout
2025-05-07 12:34:15 -04:00
Lucas Gomide fd4ef4f47a fix: Remove kwargs from all RagTools (#285)
* fix: remove kwargs from all (except mysql & pg) RagTools

The agent uses the tool description to decide what to propagate when a tool with **kwargs is found, but this often leads to failures during the tool invocation step.

This happens because the final description ends up like this:

```
CrewStructuredTool(name='Knowledge base', description='Tool Name: Knowledge base
Tool Arguments: {'query': {'description': None, 'type': 'str'}, 'kwargs': {'description': None, 'type': 'Any'}}
Tool Description: A knowledge base that can be used to answer questions.')
```

The agent then tries to infer and pass a kwargs parameter, which isn’t supported by the schema at all.

* feat: adding test to search tools

* feat: add db (chromadb folder) to .gitignore

* fix: fix github search integration

A few attributes were missing when calling the .add method: data_type and loader.

Also, update the query search according to the EmbedChain documentation, the query must include the type and repo keys

* fix: rollback YoutubeChannel paramenter

* chore: fix type hinting for CodeDocs search

* fix: ensure proper configuration when call `add`

According to the documentation, some search methods must be defined as either a loader or a data_type. This commit ensures that.

* build: add optional-dependencies for github and xml search

* test: mocking external requests from search_tool tests

* build: add pytest-recording as devDependencie
2025-05-05 14:15:50 -04:00
Lorenze Jay 93d043bcd4 Enhance EnterpriseActionKitToolAdapter to support custom project IDs (#297)
* Enhance EnterpriseActionKitToolAdapter to support custom project IDs

- Updated the EnterpriseActionKitToolAdapter and EnterpriseActionTool classes to accept an optional project_id parameter, allowing for greater flexibility in API interactions.
- Modified API URL construction to utilize the provided project_id instead of a hardcoded default.
- Updated the CrewaiEnterpriseTools factory function to accept and pass the project_id to the adapter.

* for factory in mind
2025-05-04 10:41:54 -07:00
Daniel Barretoandlorenzejay 67be0c674d Allow setting custom LLM for the vision tool (#294)
* Allow setting custom LLM for the vision tool

Defaults to gpt-4o-mini otherwise

* Enhance VisionTool with model management and improved initialization

- Added support for setting a custom model identifier with a default of "gpt-4o-mini".
- Introduced properties for model management, allowing dynamic updates and resetting of the LLM instance.
- Updated the initialization method to accept an optional LLM and model parameter.
- Refactored the image processing logic for clarity and efficiency.

* docstrings

* Add stop config

---------

Co-authored-by: lorenzejay <lorenzejaytech@gmail.com>
2025-04-28 19:53:00 -03:00
benzakritesteurandLucas Gomide 82d0209ce2 Fix firecrawl tool (Too many positional arguments) (#275)
* Corrected to adapt to firecrawl package use

Was leading to an error too many arguments when calling the craw_url() function

* Corrected to adapt to firecrawl package use

Corrected to avoid too many arguments error when calling firecrawl scrape_url function

* Corrected to adapt to firecrawl package use

Corrected to avoid error too many arguments when calling firecrawl search() function

* fix: fix firecrawl integration

* feat: support define Firecrawl using any config

Currently we pre-defined the available paramenters to call Firecrawl, this commit adds support to receive any parameter and propagate them

* docs: added doc string to Firecrawls classes

---------

Co-authored-by: Lucas Gomide <lucaslg200@gmail.com>
2025-04-28 13:57:03 -04:00
João Moura 6909c587c2 Merge pull request #286 from crewAIInc/joaodmmoura/crewai-enterprise-tool
new tool around adapter
2025-04-27 23:18:34 -07:00
João Moura 7c1a87e5ab new tool around adapter 2025-04-24 23:05:50 -07:00
João Moura af5a605f31 Merge pull request #284 from crewAIInc/lorenze/enterprise-integrations
Lorenze/enterprise tools integrations
2025-04-24 14:48:02 -07:00
lorenzejay 40dd22ce2c refactor: remove main execution block from EnterpriseActionKitToolAdapter
- Removed the main execution block that included token validation and agent/task setup for testing.
- This change streamlines the adapter's code, focusing on its core functionality without execution logic.
2025-04-24 14:39:55 -07:00
lorenzejay 4d86da80c3 feat: add EnterpriseActionKitToolAdapter and EnterpriseActionTool for enterprise action execution
- Introduced EnterpriseActionTool to execute specific enterprise actions with dynamic parameter validation.
- Added EnterpriseActionKitToolAdapter to manage and create tool instances for available enterprise actions.
- Implemented methods for fetching action schemas from the API and creating corresponding tools.
- Enhanced error handling and provided detailed descriptions for tool parameters.
- Included a main execution block for testing the adapter with a sample agent and task setup.
2025-04-24 14:20:40 -07:00
Lucas GomideandGreyson Lalonde edc9b44c47 Add secure Python Sandbox and Enhanced Logging in CodeInterpreterTool (#281)
* feat: add a safety sandbox to run Python code

This sandbox blocks a bunch of dangerous imports and built-in functions

* feat: add more logs and warning about code execution

* test: add tests to cover sandbox code execution

* docs: add Google-style docstrings and type hints to printer and code_interpreter

* chore: renaming globals and locals paramenters

---------

Co-authored-by: Greyson Lalonde <greyson.r.lalonde@gmail.com>
2025-04-23 15:42:05 -04:00
Lucas Gomide 78d0ec501d fix: do not use deprecated distutils in FileWriterTool (#280) 2025-04-23 10:29:07 -04:00
Milad Noroozi 7973c163f3 Add chunk reading functionality to FileReadTool (#266)
* Add chunk reading functionality to FileReadTool

- Added start_line parameter to specify which line to start reading from
- Added line_count parameter to specify how many lines to read
- Updated documentation with new parameters and examples

* [FIX] Bugs and Disscutions

Fixed: start_line negative value
Improved: File Reading Operations

* [IMPROVE] Simplify line selection

* [REFACTOR] use mock_open while preserving essential filesystem tests
2025-04-22 10:18:29 -04:00
Guillaume Railleandlorenzejay a270742319 mcp server proposal (#267)
* mcp server proposal

* Refactor MCP server implementation: rename MCPServer to MCPServerAdapter and update usage examples. Adjust error message for optional dependencies installation.

* Update MCPServerAdapter usage examples to remove unnecessary parameters in context manager instantiation.

* Refactor MCPServerAdapter to move optional dependency imports inside the class constructor, improving error handling for missing dependencies.

* Enhance MCPServerAdapter by adding type hinting for server parameters and improving error handling during server startup. Optional dependency imports are now conditionally loaded, ensuring clearer error messages for missing packages.

* Refactor MCPServerAdapter to improve error handling for missing 'mcp' package. Conditional imports are now used, prompting users to install the package if not found, enhancing user experience during server initialization.

* Refactor MCPServerAdapter to ensure proper cleanup after usage. Removed redundant exception handling and ensured that the server stops in a finally block, improving resource management.

* add documentation

* fix typo close -> stop

* add tests and fix double call with context manager

* Enhance MCPServerAdapter with logging capabilities and improved error handling during initialization. Added logging for cleanup errors and refined the structure for handling missing 'mcp' package dependencies.

---------

Co-authored-by: lorenzejay <lorenzejaytech@gmail.com>
2025-04-16 10:18:07 -07:00
Lucas Gomide 8cbdaeaff5 refactor(selenium): improve driver management and add headless mode (#268)
- Refactor Selenium scraping tool to use single driver instance
- Add headless mode configuration for Chrome
- Improve error handling with try/finally
- Simplify code structure and improve maintainability
2025-04-15 10:50:40 -04:00
Lucas Gomide a95be24865 Merge pull request #262 from GibsonAI/tool-typo-fixes
Fix typo "seach" -> "search" in tools
2025-04-11 10:05:17 -03:00
Nathan Chapman c2cb8e06be Fix typo seach -> search in tools 2025-04-10 17:38:28 -05:00
Vini Brasil 257f4bf385 Test optional dependencies are not required in runtime (#260)
* Test optional dependencies are not required in runtime

* Add dynamic imports to S3 tools

* Setup CI
2025-04-08 13:20:11 -04:00
Lucas Gomide 6f95572e18 Merge pull request #237 from SHIXOOM/Fix-FireCrawl-Crawler-Tool
Fix: FirecrawlCrawlWebsiteTool update parameters for FireCrawl API v1 and update run arguments for agents
2025-04-06 14:06:32 -04:00
lorenzejay 89394ef3e3 Refactor: Clean up FirecrawlCrawlWebsiteTool schema field descriptions and formatting for improved readability 2025-04-04 11:42:32 -07:00
Lucas Gomide 90c9d5d71d Merge pull request #250 from parthbs/feat/local-qdrant-client-support
#249 feat: add support for local qdrant client
2025-04-02 10:16:14 -03:00
Lorenze Jay 5b06a0c189 Merge pull request #253 from crewAIInc/fix/clear-more-warnings-databricks
cleanup more warnings from tools
2025-04-01 10:47:25 -07:00
lorenzejay 6b4453e1b1 refactor: rename schema to db_schema in DatabricksQueryTool for clarity 2025-04-01 10:42:36 -07:00
Lorenze Jay d842e9df97 Merge pull request #252 from crewAIInc/feature-cleanup-pydatic-issues
feat: cleanup Pydantic warning
2025-04-01 09:27:41 -07:00
lucasgomide 47acb5c3e4 feat: cleanup Pydantic warning
A several warnings were addressed following by  https://docs.pydantic.dev/2.10/migration
2025-04-01 09:55:01 -03:00
Shady Ali e0adb4695c Addressed review comments and made further improvements 2025-03-28 16:58:47 +02:00
Parth Patel 4fd7db2e53 #249: update QdrantVectorSearchTool README 2025-03-25 19:16:18 +00:00
Parth Patel 5ded394e43 #249 feat: add support for local qdrant client 2025-03-25 19:01:01 +00:00
João Moura baea6dc8a4 Merge pull request #197 from beowolx/bugfix/serperdev-missing-country
fix(serper-dev): restore search localization parameters
2025-03-21 14:54:50 -03:00
João Moura 5cfcb5c74a new version 2025-03-19 11:30:26 -07:00
João Moura 865930da78 Merge pull request #239 from raju-rangan/main
Amazon Bedrock Knowledge Bases Retriever and Agents support
2025-03-19 15:18:26 -03:00
Raju Rangan 319423b70a added __init__ files as suggested. 2025-03-18 10:24:08 -04:00
João Moura 658c23547e prep new version 2025-03-17 18:58:45 -07:00
João Moura 568aace62e fix 2025-03-17 18:58:09 -07:00
Vini Brasil 9e68cbbb3d Conditionally import Databricks library (#243)
Databricks is an optional dependency, but the tool package is imported by
default, leading to ImportError exceptions.

Related: crewAIInc/crewAI#2390
2025-03-17 15:13:28 -03:00
Brandon Hancock (bhancock_ai) c06076280e Merge pull request #228 from MQ37/feat/apify
feat: apify actors
2025-03-16 12:28:13 -04:00
João Moura 0c3140e758 new version 2025-03-14 07:39:52 -07:00
Raju Rangan db309ca1ae - Add custom exceptions for better error handling
- Add parameter validation for Bedrock tools
- Improve response processing and debug information
- Maintain backward compatibility with existing implementations
2025-03-11 16:46:12 -04:00
Jakub Kopecký 292adef7ba Update README.md 2025-03-11 18:02:15 +01:00
Raju Rangan d47adfc34a Adding tooling to use Amazon Bedrock Agents as enternal agent, enbaling distributed agentic capabilities 2025-03-11 10:21:30 -04:00
Raju Rangan e8326f134f Adding tooling to use Amazon Bedrock Knowledge Base as a knowledge retreiver 2025-03-11 10:20:42 -04:00
João Moura c19591a689 updatign readme 2025-03-09 04:01:12 -07:00
Shady Ali 5af2108307 Fix: FireCrawl FirecrawlCrawlWebsiteTool for crawling. FireCrawl API does not recognize sent paramters (HTTPError: Unexpected error during start crawl job: Status code 400. Bad Request -
[{'code': 'unrecognized_keys', 'keys': ['crawlerOptions', 'timeout'], 'path': [], 'message': 'Unrecognized key in body -- please review the v1 API documentation for request body changes'}]) because it has been updated to v1. I updated the sent parameters to match v1 and updated their description in the readme file
2025-03-08 09:35:23 +02:00
MQ cad804e87b update readme 2025-03-07 11:00:54 +01:00
MQ 7718df5437 minor consistency improvements 2025-03-04 12:45:52 +01:00
MQ 9c7c7d3d75 apify_actors -> apify_actors_tool, refactor readme 2025-03-04 11:10:41 +01:00
MQ 3df25e65d5 fix 2025-02-28 15:40:08 +01:00
MQ 7148c52bf6 format 2025-02-28 12:43:52 +01:00
MQ f329b0d9d2 improve readme, add link to template 2025-02-28 12:35:23 +01:00
MQ 975c71a920 fix example 2025-02-28 10:29:50 +01:00
MQ 884ea63b49 other improvements 2025-02-28 10:22:56 +01:00
MQ 35aff6e84e improve code, lazy import, improve readme 2025-02-28 10:10:56 +01:00
MQ 867305540c improve 2025-02-27 21:27:05 +01:00
MQ 5bcb598f75 fix readme 2025-02-27 21:14:42 +01:00
MQ 3fcc7b42cb fix docstring 2025-02-27 21:12:38 +01:00
MQ 13bad2bb69 initial implementation 2025-02-27 21:08:05 +01:00
Brandon Hancock (bhancock_ai) 6d8d30178d Merge pull request #227 from mplachta/aws_s3_tools
S3 Tools
2025-02-27 12:49:02 -05:00
Mike Plachta f1187c5469 S3 Tools 2025-02-27 08:44:43 -08:00
Lorenze Jay 7c16b7d284 Merge pull request #200 from crewAIInc/feat/add-qdrant-tools
enable qdrant as vector search tool for crew agents
2025-02-07 10:25:29 -08:00
Lorenze Jay 837198ae08 Add interactive Qdrant client installation prompt 2025-02-07 10:03:37 -08:00
Lorenze Jay 554bba8036 clearer docs 2025-02-03 16:22:09 -08:00
Lorenze Jay 12927ba79d cleanup 2025-02-03 16:19:53 -08:00
Lorenze Jay 96c3fbdddf remove ollama from here 2025-02-03 16:19:33 -08:00
Lorenze Jay 5a9bb24b63 default openai 2025-02-03 16:19:03 -08:00
Lorenze Jay 05982aeef2 set default vectorizer 2025-02-01 23:44:40 -08:00
Lorenze Jay d6a6325b55 set vectorizer 2025-02-01 23:43:09 -08:00
Lorenze Jay 6b19a3d156 default set 2025-02-01 23:40:37 -08:00
Lorenze Jay 052a07ddc7 setup common default model 2025-02-01 23:38:24 -08:00
Lorenze Jay aff40529a5 updated docs 2025-02-01 23:32:31 -08:00
Lorenze Jay dcd4481ae2 enable qdrant as vector search tool for crew agents 2025-02-01 23:31:15 -08:00
Lorenze Jay 6b93ebb97b Merge pull request #198 from crewAIInc/add/updated-exa
latest version of exa supported
2025-01-31 09:40:32 -08:00
Lorenze Jay 9a09ea7703 better docs and download missing packaged 2025-01-30 16:04:33 -08:00
Lorenze Jay bcfe015d9d ensure works on agent 2025-01-30 15:53:57 -08:00
Lorenze Jay 90cdb48db0 latest version of exa 2025-01-30 15:09:47 -08:00
João Moura 199044f866 fixing test 2025-01-28 10:11:37 -03:00
Luis Cardoso 3808f98c14 fix(serper-dev): restore search localization parameters
- Re-add country (gl), location, and locale (hl) parameters to SerperDevTool class
- Update payload construction in _make_api_request to include localization params
- Add schema validation for localization parameters
- Update documentation and examples to demonstrate parameter usage

These parameters were accidentally removed in the previous enhancement PR and are crucial for:
- Getting region-specific search results (via country/gl)
- Targeting searches to specific cities (via location)
- Getting results in specific languages (via locale/hl)

BREAKING CHANGE: None - This restores previously available functionality
2025-01-28 10:46:40 +01:00
Brandon Hancock (bhancock_ai) 060671983d Merge pull request #195 from crewAIInc/bugfix/make-tooling-optional
Fix for Gui
2025-01-23 23:29:19 -05:00
Brandon Hancock bcb72a9305 Clean up and follow auto import pattern 2025-01-23 15:23:12 -05:00
Brandon Hancock 141ff864f2 clean up 2025-01-23 15:11:45 -05:00
Brandon Hancock 43d045f542 Fix for GUI 2025-01-23 14:43:52 -05:00
Brandon Hancock (bhancock_ai) 88785f4a74 Merge pull request #194 from mplachta/ocr-tool
OCR Tool v1
2025-01-23 10:40:03 -05:00
Mike Plachta b4d98bbb86 OCR Tool v1 2025-01-22 20:22:57 -08:00
Brandon Hancock (bhancock_ai) df3842ed88 Merge pull request #181 from crewAIInc/fix/optional-dependencies
make extra dependencies optional for our tools (making most tools an opt in)
2025-01-22 13:06:48 -05:00
Lorenze Jay 4af3724ec2 fix selenium tool 2025-01-21 15:55:05 -08:00
Lorenze Jay 0bd6006b27 Merge branch 'main' of github.com:crewAIInc/crewAI-tools into fix/optional-dependencies 2025-01-21 15:53:14 -08:00
João Moura 4774b996d0 Merge pull request #168 from MinuraPunchihewa/feature/ai_minds_tool
Added the MindsDB AIMind Tool
2025-01-19 02:29:11 -03:00
João Moura 717edbba19 Merge pull request #177 from VinciGit00/main
fix: scrapegraph tool
2025-01-19 02:28:04 -03:00
João Moura 755a9ed055 Merge branch 'main' into main 2025-01-19 02:27:52 -03:00
João Moura d824f3bb3b Merge pull request #183 from NikhilShahi/feature/add-hyperbrowser
added HyperbrowserLoadTool
2025-01-19 02:25:04 -03:00
João Moura 14ecab7365 Merge branch 'main' into feature/add-hyperbrowser 2025-01-19 02:24:51 -03:00
João Moura b03d74abe5 Merge pull request #185 from MahlerTom/fix/code-interpreter
Fix/code interpreter
2025-01-19 02:11:10 -03:00
João Moura bee8fda006 Merge branch 'main' into fix/code-interpreter 2025-01-19 02:10:57 -03:00
João Moura ef611a9dcd Merge pull request #188 from meerkat-citronella/bugfix/fix-description-on-file_read_tool
Fix description on FileReadTool
2025-01-19 02:08:46 -03:00
João Moura fb4423c91d Merge branch 'main' into bugfix/fix-description-on-file_read_tool 2025-01-19 02:08:27 -03:00
João Moura fe3f0bda81 Merge pull request #189 from chethanuk/snowflake
Adding Snowflake search tool
2025-01-19 02:07:02 -03:00
João Moura 3f2161efdb Merge branch 'main' into snowflake 2025-01-19 01:22:42 -03:00
João Moura cef86f73d9 Merge pull request #191 from KhanhSaypien/fix/HTTPError-import-issue
FIX: Fix HTTPError cannot be found in serperai
2025-01-19 00:10:23 -03:00
ArchiusVuong-sudo 659cb6279e fix: Fixed all from urllib.error import HTTPError 2025-01-18 23:01:01 +07:00
ArchiusVuong-sudo a606f48b70 FIX: Fix HTTPError cannot be found in serperai 2025-01-18 21:58:50 +07:00
ChethanUK 9c4c4219cd Adding Snowflake search tool 2025-01-17 02:29:35 +05:30
Carter Chen fe2a5abf8d restructure init statement to remove duplicate call to _generate_description 2025-01-14 21:16:11 -05:00
Carter Chen 1568008db6 remove _generate_description on file_read_tool 2025-01-14 19:22:28 -05:00
Tom Mahler 1bd87f514e changed == None to is None 2025-01-14 21:07:08 +02:00
Tom Mahler 334beda181 added missing import 2025-01-14 21:06:42 +02:00
Lorenze Jay 5cb5f4f1a6 use private attr 2025-01-14 08:48:28 -08:00
Lorenze Jay 14bc8de774 fix browserbase tool here 2025-01-14 08:48:09 -08:00
Nikhil Shahi e343f26c03 add docstring 2025-01-13 16:08:11 -06:00
Nikhil Shahi 1a824cf432 added HyperbrowserLoadTool 2025-01-13 15:48:45 -06:00
Lorenze Jay 78aff9dbdc fix no client err 2025-01-13 10:45:12 -08:00
Lorenze Jay 50779582ed Merge branch 'main' of github.com:crewAIInc/crewAI-tools into fix/optional-dependencies 2025-01-13 10:32:06 -08:00
Lorenze Jay 31192bcdda fixed multion 2025-01-10 18:31:03 -08:00
Lorenze Jay d882818d6c fixed serpapi 2025-01-10 18:24:07 -08:00
Lorenze Jay e26667ea40 removing serpapi from dependenices 2025-01-10 18:17:27 -08:00
Brandon Hancock (bhancock_ai) 71f3ed9ef9 Merge pull request #180 from crewAIInc/bugfix/improve-firecrawl-and-serper
Fix firecrawl errors
2025-01-10 19:47:13 -05:00
Lorenze Jay d3d3cc4c28 remove y/n as it comes with it within click.confirm and fixed firecrawl tools 2025-01-10 15:56:54 -08:00
Lorenze Jay 41cec25ad9 fix client init on scrapegraph tool 2025-01-10 14:26:03 -08:00
Lorenze Jay 40dcf63a70 optional deps for most 2025-01-10 13:51:39 -08:00
Brandon Hancock ecbf550be9 Fix firecrawl errors 2025-01-08 16:38:38 -05:00
Brandon Hancock (bhancock_ai) 06f99fc6cd Merge pull request #179 from crewAIInc/bugfix/improve-firecrawl-and-serper
improve serper and firecrawl
2025-01-08 15:15:02 -05:00
Brandon Hancock 90a335de46 Fix patronus issues as well 2025-01-08 15:12:29 -05:00
Brandon Hancock e5aabe05e1 improve serper and firecrawl 2025-01-08 14:56:12 -05:00
Brandon Hancock (bhancock_ai) 4388235846 Merge pull request #165 from patronus-ai/feat/add-patronus-api-tool
Feat/add patronus api tool
2025-01-07 12:48:08 -05:00
Marco Vinciguerra 91bff42398 Merge branch 'main' of https://github.com/VinciGit00/crewAI-tools 2025-01-07 16:15:50 +01:00
Marco Vinciguerra 4f4b061907 fix: scrapegraph-tool 2025-01-07 16:13:50 +01:00
Marco Vinciguerra c27727b16e Update scrapegraph_scrape_tool.py 2025-01-07 15:51:52 +01:00
Devin AIandJoe Moura ad4c711223 feat: implement reviewer suggestions for StagehandTool
Co-Authored-By: Joe Moura <joao@crewai.com>
2025-01-03 22:56:38 +00:00
Devin AIandJoe Moura 2f8c07320b feat: add new StagehandTool for stagehand integration
This commit adds a new StagehandTool that integrates Stagehand's AI-powered web automation capabilities into CrewAI. The tool provides access to Stagehand's three core APIs:
- act: Perform web interactions
- extract: Extract information from web pages
- observe: Monitor web page changes

Each function takes atomic instructions to increase reliability.

Co-Authored-By: Joe Moura <joao@crewai.com>
2025-01-03 22:38:55 +00:00
Lorenze Jay 4360adc725 Merge pull request #174 from crewAIInc/extra_deps
add optional dependencies for all deps that we have
2025-01-03 14:19:00 -08:00
Lorenze Jay dab8f648cb leave ignore 2025-01-03 13:48:21 -08:00
Lorenze Jay 9f8529eab2 add optional dependencies for all deps that we have 2025-01-03 13:43:50 -08:00
Brandon Hancock (bhancock_ai) 513c156c4b Merge pull request #173 from mplachta/vision-tool-improvement
Vision Tool Refactoring and Simplify the code
2025-01-03 13:31:23 -05:00
Mike Plachta 9a20c3952f Merge branch 'main' into vision-tool-improvement 2025-01-03 09:36:13 -08:00
Mike Plachta 66dee007b7 Vision Tool Improvement 2025-01-03 09:33:59 -08:00
João Moura aafcf992ab fix weviate tool 2025-01-03 10:03:53 -03:00
João Moura c31a8d6ee2 fix 2025-01-03 10:00:25 -03:00
Eduardo Chiarotti a5d19e3ec3 Merge pull request #172 from crewAIInc/fix/weaviate-init
fix: weaviate init parameters
2025-01-03 08:56:45 -03:00
Eduardo Chiarotti 7efc092873 fix: weaviate init parameters 2025-01-03 08:47:52 -03:00
João Moura fa901453fe new version 2025-01-03 04:15:39 -03:00
João Moura 8047ee067c treating for uninstalled dependencies 2025-01-03 03:34:34 -03:00
Minura Punchihewa ea85f02e03 refactored the logic for accessing the API key 2025-01-03 11:49:58 +05:30
Minura Punchihewa d1be5a937f moved constants like the base URL to a class 2025-01-03 11:48:11 +05:30
Minura Punchihewa d360906f57 renamed the pkg and module 2025-01-03 11:41:59 +05:30
Minura Punchihewa 29a7961ca8 refined the content in the README 2025-01-03 11:26:16 +05:30
João Moura 16cdabbf35 bumping verison fixing tests 2025-01-03 02:53:24 -03:00
Minura Punchihewa 94cce06044 updated the initialization logic to allow the API key to be passed as env var 2025-01-03 11:08:38 +05:30
João Moura e0c6ec5bd3 fix imports 2025-01-02 20:51:14 -03:00
João Moura fc68b9f6bf Merge pull request #167 from Priyanshupareek/patch-1
Update browserbase_load_tool.py | Fix for Browserbase Tool Initialization Issue
2025-01-02 20:45:05 -03:00
Minura Punchihewa 3c29a6cc11 added an example of running the tool to the README 2025-01-03 02:25:14 +05:30
Minura Punchihewa 64d54bd423 updated the content in the README 2025-01-03 01:55:51 +05:30
Minura Punchihewa faff58ba1c fixed a few bugs, type hints and imports 2025-01-03 01:17:11 +05:30
Minura Punchihewa 555638a654 added the main import statements 2025-01-03 00:37:12 +05:30
Minura Punchihewa 0b5f0841bf implemented the run function for the tool 2025-01-03 00:32:24 +05:30
Minura Punchihewa 55f669989b completed the initialization logic for the tool 2025-01-03 00:28:30 +05:30
Minura Punchihewa 29da6659cf added the skeleton for the AIMind tool 2025-01-02 19:40:56 +05:30
Priyanshupareek 954dd43c17 Update browserbase_load_tool.py 2025-01-02 01:34:42 +05:30
Priyanshupareek 4c7ce3a945 Update browserbase_load_tool.py 2025-01-02 00:54:48 +05:30
Rebecca Qian 10f8a87317 update local evaluator 2024-12-31 04:05:46 -05:00
Rebecca Qian a7316a86bf fix bug in local evaluator tool 2024-12-31 04:01:26 -05:00
Rebecca Qian 15d6314379 Create separate tool classes 2024-12-31 03:02:15 -05:00
Rebecca Qian 62ddb6c9bd Merge pull request #1 from DarshanDeshpande/feat/add-patronus-api-tool
Update Patronus AI evaluator tool and example
2024-12-31 00:32:52 -05:00
João Moura 0d94a8f7d9 Merge pull request #153 from VinciGit00/main
feat: integration of scrapegraph APIs
2024-12-29 12:26:01 -03:00
João Moura 029afd3e14 Update __init__.py 2024-12-29 12:23:08 -03:00
João Moura 20e852bffc Merge pull request #155 from juliette0704/feat/add_linkup_tool
add linkup tool
2024-12-29 12:21:00 -03:00
João Moura dd3fea748f Merge pull request #162 from crewAIInc/devin/1735422935-file-read-tool-fix
Fix FileReadTool infinite loop by maintaining original schema
2024-12-28 21:23:17 -03:00
Devin AIandJoe Moura d3391d9ba4 Add comprehensive documentation and type hints to FileReadTool
Co-Authored-By: Joe Moura <joao@crewai.com>
2024-12-28 23:10:51 +00:00
Devin AIandJoe Moura aaf2641cc8 Add comprehensive tests for FileReadTool
Co-Authored-By: Joe Moura <joao@crewai.com>
2024-12-28 22:29:46 +00:00
Devin AIandJoe Moura 5e2c38c349 Improve FileReadTool error handling and validation
Co-Authored-By: Joe Moura <joao@crewai.com>
2024-12-28 22:26:37 +00:00
Devin AIandJoe Moura 63e23c06c5 Fix FileReadTool infinite loop by maintaining original schema
Co-Authored-By: Joe Moura <joao@crewai.com>
2024-12-28 21:55:35 +00:00
juliette_sivan e5c47e46a8 add import tools 2024-12-28 10:59:06 -05:00
Marco Vinciguerra b404439aa9 Merge branch 'main' into main 2024-12-28 09:12:50 +01:00
Marco Vinciguerra c3ebbba8ae Update __init__.py 2024-12-28 09:11:32 +01:00
João Moura 0674b397f7 Merge pull request #145 from caike/fix-firecrawler-crawl-args
Fix url and api_key args on crawler tool
2024-12-28 00:32:52 -03:00
João Moura 8dd4388c49 Merge pull request #148 from HammamWahab/main
Enabled connection to docker daemon with manual setting of docker base url for code interpreter tool. (Issue #1555)
2024-12-27 23:34:37 -03:00
João Moura 2ad99c04d3 Merge branch 'main' into main 2024-12-27 23:33:36 -03:00
João Moura cc509a363e Merge pull request #160 from crewAIInc/feature/selenium-scraping-tool-can-return-html
feat: add URL validation and return_html examples
2024-12-27 22:09:01 -03:00
João Moura ed261892df Merge pull request #156 from pedropereira/feature/selenium-scraping-tool-can-return-html
Feat(SeleniumScrapingTool): Provide capability to return HTML
2024-12-27 22:02:58 -03:00
Devin AIandJoe Moura c7c8cd0a3c feat: add URL validation and return_html examples
- Add comprehensive URL validation in schema and _create_driver
- Add URL format, length, and character validation
- Add meaningful error messages for validation failures
- Add return_html usage examples in README.md

Co-Authored-By: Joe Moura <joao@crewai.com>
2024-12-28 00:54:49 +00:00
João Moura 38a7b1e4da Merge pull request #149 from tanys123/feat/serpapi-tools
feat: Add Google Search and Google Shopping tools
2024-12-27 21:48:20 -03:00
João Moura 7b7327c168 Merge pull request #150 from gbertb/fix/spidertool_fixes
Fix(SpiderTool): Improve Tool Reliability and Performance
2024-12-27 18:37:48 -03:00
João Moura 97a4a348ff Merge pull request #151 from hienhayho/main
fix: fix pydantic validation error
2024-12-27 18:30:18 -03:00
João Moura 078120e548 Merge pull request #159 from MahlerTom/main
[BUG] `CodeInterpreterTool` cannot handle mutli-line code
2024-12-27 18:03:47 -03:00
DarshanDeshpande 7da783ef0e Minor formatting changes 2024-12-26 17:44:04 -05:00
DarshanDeshpande 0ac6f915fb Add all Patronus eval tools and update example 2024-12-26 17:37:22 -05:00
Tom Mahler ba8f95964f added unit testing for multi-line output 2024-12-24 14:14:09 +02:00
Tom Mahler 64b98667a3 fixed code interpreter tests 2024-12-24 14:13:51 +02:00
Tom Mahler 331840e6cc improved imports from docker for better type hinting 2024-12-24 12:17:57 +02:00
Tom Mahler bb19f1c74c using command list instead of string to avoid parsing issues 2024-12-24 12:12:18 +02:00
Pedro Pereira f11756387d chore: add tests for SeleniumScrapingTool 2024-12-19 21:06:51 +00:00
Tony Kipkemboi b7a132db89 Merge pull request #147 from crewAIInc/feature/enhanced-serper-search
feat(serper-dev): implement enhanced search capabilities and error ha…
2024-12-19 13:15:11 -05:00
Pedro Pereira 5e00b74cd4 chore: update readme 2024-12-19 17:38:30 +00:00
juliette_sivan 4c5f1962ac add linkup tool 2024-12-19 14:07:36 +01:00
Pedro Pereira 8d8c3677ff feat: add optional return_html flag to SeleniumScrapingTool 2024-12-18 18:23:18 +01:00
Marco Vinciguerra b58d80dcf9 update documents according to suggestions 2024-12-18 14:42:37 +01:00
Marco Vinciguerra 7608944e7f Update README.md 2024-12-18 14:38:34 +01:00
Marco Vinciguerra c070ba002c feat: integration of scrapegraph APIs 2024-12-18 14:34:40 +01:00
Gilbert Bagaoisan 1bbac87e70 Improved readme based on recommendations—added more advanced usage examples 2024-12-17 21:00:40 -08:00
Gilbert Bagaoisan 73b803ddc3 various improvements for PR based on recommendations 2024-12-17 21:00:34 -08:00
Ho Trong Hien c7624e1f57 Merge pull request #1 from hienhayho/hienhayho-fix-llamaindex-result-as-answer
fix: fix pydantic validation error
2024-12-17 22:29:19 +07:00
Ho Trong Hien 059d635f02 fix: fix pydantic validation error
- When passing result_as_answer=True, it will return ToolOutput so it won't pass pydantic validation as a string

- Get content of ToolOutput before return
2024-12-17 22:28:41 +07:00
Gilbert Bagaoisan 3795d7dd8e Reversed order of url validation 2024-12-16 22:19:46 -08:00
Gilbert Bagaoisan 4551b8c625 Updated readme 2024-12-16 22:05:46 -08:00
Gilbert Bagaoisan cd37ede869 lint fixes 2024-12-16 22:05:28 -08:00
Terry Tan Yongsheng 81981e43b6 Add type hints 2024-12-17 13:45:50 +08:00
Terry Tan Yongsheng 2effe9a7d2 Add README 2024-12-17 11:09:38 +08:00
Terry Tan Yongsheng 56a9060840 Add SerpApi tools - google search, google shopping 2024-12-17 11:09:28 +08:00
Rip&Tear e40ca38daf Merge branch 'main' into feature/enhanced-serper-search 2024-12-16 22:53:55 +08:00
Hammam Abdelwahab b6bb5dbd53 Enabled manual setting of docker base url for code interpreter tool. Goal is to avoid the error: CodeInterpreterTool Error while fetching server API version: 2024-12-15 10:38:56 +01:00
Hammam Abdelwahab c26e962d17 Enabled manual setting of docker base url for code interpreter tool. Goal is to avoid the error: CodeInterpreterTool Error while fetching server API version: 2024-12-15 10:34:07 +01:00
DarshanDeshpande d94f7e03dc Update Patronus AI evaluator tool and example 2024-12-14 15:46:10 -05:00
Rebecca Qian c76e0f3445 Add patronus evaluation tools
remove fields

rename eval tool

remove eval tool

init files
2024-12-13 19:08:05 -05:00
Carlos Souza 668e87d5e1 Add constructor comments 2024-12-13 11:26:46 -05:00
Carlos Souza 164442223e Organize imports 2024-12-13 11:23:53 -05:00
Carlos Souza 3a095183c5 Use proper options and accept custom FirecrawlApp 2024-12-13 11:20:08 -05:00
Carlos Souza 2cb33b18e5 Remove outdated params 2024-12-13 11:18:59 -05:00
theCyberTech 00418d98f7 resolved conflict 2024-12-13 22:01:04 +08:00
theCyberTech 1fd5805bef Resolved conflict 2024-12-13 21:59:38 +08:00
theCyberTech b0a948797a feat(serper-dev): implement enhanced search capabilities and error handling
- Add support for multiple search types (general and news)
- Implement knowledge graph integration
- Add structured result processing for organic results, "People Also Ask", and related searches
- Enhance error handling with try-catch blocks and logging
- Update documentation with comprehensive feature list and usage examples
2024-12-13 21:42:01 +08:00
Carlos Souza 1eb5d50a55 Fix url and api_key args on crawler tool 2024-12-12 16:00:24 -05:00
Tony Kipkemboi a49be2fc52 Merge pull request #142 from crewAIInc/feat/weaviate-tool
setup weaviate vector search tool
2024-12-09 10:44:11 -05:00
Lorenze Jay d5d83cbd7e fix collection name docs 2024-12-08 21:48:15 -08:00
Lorenze Jay a0e0c28152 setup weaviate vector search tool 2024-12-08 21:44:19 -08:00
Brandon Hancock (bhancock_ai) 264f1e0f0e Merge pull request #141 from crewAIInc/bugfix/fix-basetool-import
update basetool dependencies to use root crewai repo
2024-12-05 13:36:45 -05:00
Brandon Hancock d5fb31e645 update basetool dependencies to use root crewai repo 2024-12-05 13:16:48 -05:00
João Moura e1482d740f Merge pull request #116 from ernestp/main
fix: web scraper concatenate words
2024-12-05 12:00:20 -03:00
João Moura 7c375976ab Merge pull request #128 from mplachta/jina_website_scraper
Jina Website Scraper v1
2024-12-05 11:56:26 -03:00
João Moura 5b813e3d31 Merge pull request #132 from caike/fix-firecrawl-scrape-pydantic-errors
Fix pydantic related errors on FirecrawlScrapeWebsiteTool
2024-12-05 11:56:08 -03:00
João Moura 25969d9db7 Merge pull request #134 from caike/fix-firecrawl-crawl-pydantic-errors
Fix pydantic related errors on FirecrawlCrawlWebsiteTool
2024-12-05 11:55:26 -03:00
João Moura f64a93b541 Merge pull request #139 from crewAIInc/tools_readme_update
docs: add Discourse community link to contact section
2024-12-05 11:54:41 -03:00
João Moura 569d9e7f75 Merge pull request #137 from siddas27/feature/BraveSearchTool
add brave search tool
2024-12-05 11:08:03 -03:00
siddas27 a64cccbd72 add BraveSearchTool to init 2024-12-04 22:28:30 -06:00
theCyberTech e0d3ee5b23 docs: add Discourse community link to contact section
Add link to Discourse community platform in the contact section to provide users with an additional support channel alongside Discord.
2024-12-03 20:35:23 +08:00
siddas27 95cc6835a1 update name 2024-11-30 22:30:31 -06:00
siddas27 e7e059d02a add rate limiting 2024-11-30 22:08:29 -06:00
siddas27 5532ea8ff7 add lru caching 2024-11-30 21:51:46 -06:00
siddas27 d168b8e245 add error handling 2024-11-30 21:36:28 -06:00
siddas27 6c242ef3bb add brave search tool 2024-11-30 14:04:06 -06:00
Tony Kipkemboi 0e49353fcd Merge pull request #135 from crewAIInc/fix/nl2sql-readme-typos
docs: fix typos and formatting in NL2SQL tool README
2024-11-30 11:54:14 -05:00
Tony Kipkemboi 41711c1ffe Merge pull request #129 from crewAIInc/docs_fix
Fix API Key Reference in MultiOnTool README
2024-11-30 11:52:45 -05:00
Tony Kipkemboi ea2994d341 Merge pull request #133 from crewAIInc/docs/fix-codedocssearch-readme
docs: improve CodeDocsSearchTool README
2024-11-30 11:44:01 -05:00
theCyberTech 945ed7aaaa docs: fix typos and formatting in NL2SQL tool README 2024-11-30 10:52:57 +08:00
Carlos Souza eed6a38ea4 Fix pydantic related errors. 2024-11-29 11:42:07 -05:00
theCyberTech ec9951e28a docs: improve CodeDocsSearchTool README
- Fix tool name in custom model example
2024-11-30 00:34:04 +08:00
Carlos Souza e677a271e5 More explicit model config 2024-11-29 05:57:09 -05:00
Carlos Souza 49ad43ff08 Do not reraise exception
Tool use is optional and missing dependency
should not raise error
2024-11-29 05:51:55 -05:00
Carlos Souza a94470772f Fix pydantic related errors on FirecrawlScrapeWebsiteTool 2024-11-28 19:09:44 -05:00
Mike Plachta dd18c59a9b Update jina_scrape_website_tool.py 2024-11-27 19:57:52 -08:00
theCyberTech cbec6d5cd7 docs: fix API key reference in MultiOnTool README 2024-11-28 11:15:18 +08:00
Mike Plachta 15970734e3 Jina Website Scraper v1 2024-11-27 17:52:56 -08:00
Eduardo Chiarotti 601abb2bc3 Merge pull request #125 from crewAIInc/feat/remove-langchain
feat: remove langchain from code and update Dockerfile from CodeInterpreter
2024-11-26 16:56:29 -03:00
Eduardo Chiarotti 488782fb4a feat: remove langchain from code and change to CrewStructuredTool and update Dockerilf CodeInterpreter 2024-11-25 16:14:49 -03:00
theCyberTech 1c37158208 fix: correct variable name typo in exa_base_tool 2024-11-20 18:58:58 +08:00
João Moura a3630418f9 Merge pull request #121 from piotrm0/piotrm/base_tool
remove independent BaseTool
2024-11-10 19:48:52 -03:00
Piotr Mardziel 10639d8775 Update base_tool.py 2024-11-05 16:22:35 -08:00
Brandon Hancock 2061f8ca41 Improve firecrawl tool 2024-11-01 17:19:59 -04:00
Ernest Poletaev 1f8791953e fix: retain line breaks 2024-10-25 22:33:24 +07:00
Ernest Poletaev 96e52767ad fix: web scraper concatenate words 2024-10-25 22:03:59 +07:00
Rip&Tear 9eac65f9f6 Merge pull request #115 from adanbu/main
Fixing errors of the File Writer tool
2024-10-24 12:28:20 +08:00
Brandon Hancock 8e15bc6386 add support for unsafe code execution 2024-10-23 10:36:29 -04:00
Adan Butto 6a7e917e1d Changed order of the arguments, placing 'content' last.
It tends to forget context when it gets to filling other arguments when content is on the longer side.
2024-10-22 18:47:52 +03:00
Adan Butto 857d6c135c reverted directory variable back to optional 2024-10-20 20:37:59 +03:00
Adan Butto 96429040de Fixed File Writer tool errors for better interaction with the agents 2024-10-20 18:54:01 +03:00
João Moura c4f8a1cdf1 Merge pull request #107 from masorensen/bug/ragTools-kwargs
Scoping issue causing error in RAG tools
2024-10-17 16:43:11 -03:00
João Moura d54b8a6e8d Merge pull request #112 from 11bluetree/patch-1
fix: SpiderTool import
2024-10-17 14:19:22 -03:00
Aoki Haruhito fe172cb4de fix: SpiderTool import 2024-10-17 10:03:37 +09:00
Eduardo Chiarotti 1e76b66234 Merge pull request #111 from crewAIInc/feat/migrate-uv
Feat/migrate uv
2024-10-15 14:49:39 -03:00
Eduardo Chiarotti 90a13cb6f7 feat: change to uv on docs 2024-10-15 09:16:17 -03:00
Mike Sorensen 1cc8966e2e fixed scoping issue causing error in RAG tools 2024-09-23 22:18:22 -05:00
Rip&Tear a04d98f62f Merge pull request #101 from crewAIInc/brandon/cre-250-llamaindex-pydantic-v2
Pydantic v1 issues
2024-09-13 21:53:32 +08:00
Brandon Hancock 35fe222ca1 Move off v1 2024-09-03 15:57:29 -04:00
Rip&Tear d19bba72b0 Merge pull request #96 from crewAIInc/docs_update
Updated GitHub repo links and readme.md
2024-08-31 12:32:52 +08:00
theCyberTech 5957573625 Updated github repo links _ readme.md 2024-08-29 17:41:43 +08:00
João Moura 91c394ffce Merge pull request #95 from crewAIInc/feat/update-code-interpreter
feat: Add volume option
2024-08-27 07:25:29 -07:00
Eduardo Chiarotti d146e4a961 feat: change the anme of user dockerfile path 2024-08-27 09:01:09 -03:00
Eduardo Chiarotti 8007938d6b feat: ADd volume option 2024-08-27 08:35:56 -03:00
Thiago Moretto 859e6162e8 Merge pull request #93 from crewAIInc/fix-nl2sql-pydantic-conflict
Fix NL2SQL pydantic version conflict
2024-08-19 13:49:06 -03:00
Thiago Moretto e8b185e607 Fix NL2SQL pydantic version conflict 2024-08-14 14:05:44 -03:00
Eduardo Chiarotti c32023df29 Merge pull request #91 from crewAIInc/fix/dalle-docs
docs: fix issue on Dalle tool docs
2024-08-13 11:25:25 -03:00
Eduardo Chiarotti a228732423 docs: fix 2024-08-13 08:40:12 -03:00
Eduardo Chiarotti b47926b1d9 docs: fix plural 2024-08-13 08:39:49 -03:00
Eduardo Chiarotti 64762887f0 docs: fix issue on Dalle tool docs 2024-08-13 08:39:20 -03:00
João Moura 5dd49762e3 Fixing imports and cutting new patch 2024-08-11 00:46:32 -03:00
João Moura d861dcc3c4 Merge pull request #85 from rafaelsideguide/fix/firecrawl-timeout-description
[Bug] Improvements on default values and timeout description
2024-08-10 19:59:54 -07:00
João Moura 32abada521 Merge pull request #81 from Ryuzaki1415/patch-1
Corrected the acronym 'RAG'
2024-08-10 19:59:15 -07:00
João Moura 2416c08760 Merge pull request #41 from antunsz/feature/add-folder-file-writer
adding file writer tool and documentation
2024-08-10 19:40:24 -07:00
João Moura fba480c582 Merge branch 'main' into feature/add-folder-file-writer 2024-08-10 19:40:03 -07:00
João Moura 50dc37ad5b adding dalle import 2024-08-10 23:35:46 -03:00
João Moura 1227c3fc7c Merge pull request #35 from antunsz/feature/add-mysql-tool
Feature/add mysql tool
2024-08-10 19:35:21 -07:00
João Moura 2da8cfcf99 Merge branch 'main' into feature/add-mysql-tool 2024-08-10 19:35:08 -07:00
João Moura e7078f6502 Merge pull request #83 from crewAIInc/feat/add-vision-tool
feat: Add Vision tool to the CrewAI tool
2024-08-10 19:22:01 -07:00
rafaelsideguide a2e38b6121 Improvements on default values and description 2024-08-06 13:56:44 -03:00
Eduardo Chiarotti 4835c2bf68 feat: Add Vision tool to the CrewAI tool 2024-07-31 17:10:26 -03:00
João Moura d28dba453e Merge pull request #82 from crewAIInc/feat/dall-e-tool
feat: Add Dall-E tool to generate images
2024-07-30 18:37:34 -07:00
Eduardo Chiarotti 0070df7451 docs: Add documentation for the DallETool 2024-07-30 22:29:45 -03:00
Eduardo Chiarotti b343c71b9b feat: Add Dall-E tool to generate images 2024-07-30 22:17:23 -03:00
Eduardo Chiarotti 88becbd6e1 Merge pull request #80 from crewAIInc/feat/NL2SQL-tool
feat: Add nl2sql tool to run and execute sql queries in databases
2024-07-26 14:25:01 -03:00
Dheeraj Unni 225ee06030 Corrected the acronym 'RAG' 2024-07-26 17:05:58 +05:30
Eduardo Chiarotti 18a28261a4 docs: Add documentation for NL2SqlTool 2024-07-25 15:25:48 -03:00
Eduardo Chiarotti c372641be8 feat: format code 2024-07-24 21:39:49 -03:00
Eduardo Chiarotti 6fd02cdf82 feat: remove unecessary code 2024-07-24 21:38:52 -03:00
Eduardo Chiarotti 2df29f3dde feat: Add nl2sql tool to run and execute sql queries in databases 2024-07-24 21:37:22 -03:00
João Moura 8506505301 Merge pull request #78 from wuloi/main
fixing serply_api_tool
2024-07-19 09:33:11 -07:00
ai.flyingwheel 25343727fd fixing serply_api_tool 2024-07-19 23:11:10 +08:00
João Moura 0386120a5a fixing serper tool 2024-07-19 00:28:27 -04:00
Carlos Antunes 21342fa0f6 adding the proper imports into __init__.py files, and fixing the folder name 2024-07-15 13:00:06 -03:00
Carlos Antunes d5e6b95817 adding the appropriate imports on the __init__.py files 2024-07-15 12:41:53 -03:00
João Moura d8c98f2e64 Merge pull request #38 from mishushakov/main
updated browserbase tool
2024-07-14 17:10:42 -07:00
João Moura 33a0f05804 Merge pull request #42 from WilliamEspegren/main
Added Spider Tool
2024-07-14 15:24:27 -07:00
João Moura d9ad8c62b9 Merge branch 'main' into main 2024-07-14 15:23:27 -07:00
João Moura 3f3ef03395 Merge pull request #44 from SuperMuel/add-more-parameters-to-serperdev-search-payload
Add more parameters to serperdev search payload
2024-07-14 14:00:02 -07:00
João Moura f447f71a8e Update serper_dev_tool.py 2024-07-14 17:59:17 -03:00
João Moura ac3ee8576d Merge branch 'main' into add-more-parameters-to-serperdev-search-payload 2024-07-14 13:48:54 -07:00
João Moura 7227a0e740 Merge pull request #45 from mazen-r/main
Add Scrapfly website scrape tool
2024-07-14 13:46:19 -07:00
João Moura 1111a1ac6b Merge branch 'main' into main 2024-07-14 13:46:10 -07:00
João Moura 7dd33e0b3a Merge pull request #51 from smsajjadzaidi/fix/serper_dev_tool
fixed use of arg n_results
2024-07-14 13:39:20 -07:00
João Moura 75ee346d18 Merge pull request #53 from googio/adding-serply-api
Adding Serply API
2024-07-14 13:37:03 -07:00
João Moura 2bcb9e7000 Merge branch 'main' into adding-serply-api 2024-07-14 13:36:25 -07:00
João Moura c9d22489b8 Merge pull request #58 from strnad/fix-ragtool-parameters
fix: Ensure tools handle parameters passed post-creation correctly
2024-07-14 12:08:11 -07:00
João Moura 1a676c6340 Merge pull request #64 from sethcoast/pdf-search-tool-query-fix
Limit PDF search results to the provided PDF (IF a PDF is provided)
2024-07-14 12:07:34 -07:00
João Moura 1cf2ebb07b Merge pull request #55 from theCyberTech/patch-2
Update serper_dev_tool.py
2024-07-14 11:31:14 -07:00
João Moura acf776f91a Merge pull request #61 from celobusana/busana/fix-selenium-firefox-options
Fix: Selenium incorrect firefox options import
2024-07-14 11:30:46 -07:00
João Moura f0d924fab1 Merge pull request #71 from strnad/add_tools_params_description
arguments descriptions added to tool description
2024-07-14 11:30:02 -07:00
João Moura fc52061bc9 Merge pull request #60 from MULTI-ON/main
add multion tool
2024-07-12 09:10:01 -07:00
João Moura 3be455e971 Merge pull request #73 from strnad/fix_ScrapeWebsiteTool_encoding
bugfix: ScrapeWebsiteTool encoding
2024-07-12 09:09:27 -07:00
Naman Garg 676e714c8b Merge branch 'main' into main 2024-07-08 15:12:25 -07:00
Naman Garg 6f45c6ed09 Updated Readme 2024-07-08 15:11:04 -07:00
Jakub Strnad 65855cbe56 bugfix: ScrapeWebsiteTool encoding
fixed problem with garbage output of ScrapeWebsiteTool on some websites
2024-07-08 15:24:26 +02:00
João Moura f056764132 adding firecrawl imports 2024-07-08 01:15:00 -04:00
Jakub cb1dc13a9d fixed intendation 2024-07-05 18:42:16 +02:00
Jakub Strnad a5d2839431 arguments descriptions added to tool description
so now the agent knows how to use the tools params
2024-07-05 16:30:41 +02:00
João Moura cf67b424c2 Merge pull request #70 from joaomdmoura/fix/code-interpreter-description
fix: fix type hinting, add container name and handle exception and returned old description
2024-07-04 12:59:29 -07:00
Eduardo Chiarotti ba05d18ab1 fix: fix type hinting, add container name and handle exception and returned old description 2024-07-04 16:42:29 -03:00
João Moura b4d91d1ce0 adding new result_as_answer options 2024-07-04 00:10:31 -04:00
João Moura a801f1cd24 Merge pull request #34 from rafaelsideguide/added-firecrawl-tools
added Firecrawl tools
2024-07-03 14:46:44 -07:00
João Moura f2063d01fa Merge pull request #69 from joaomdmoura/fix/import-code-tool
fix: add code interpreter tool
2024-07-02 09:00:11 -07:00
Eduardo Chiarotti d000bd2fc8 fix: add code interpreter tool 2024-07-02 12:00:04 -03:00
João Moura f743a5ce61 Merge pull request #62 from angrybayblade/feat/composio-tool
Add `composio` CrewAI tool wrapper
2024-07-01 18:12:53 -07:00
João Moura 241dc37ba3 Merge branch 'main' into feat/composio-tool 2024-07-01 18:12:45 -07:00
João Moura f79c385bf7 revamping code interpreter 2024-07-01 00:55:21 -07:00
João Moura 00e573c960 Merge pull request #67 from MervinPraison/main
Update __init__.py to Add CodeInterpreterTool
2024-06-30 20:38:12 -07:00
Mervin Praison a3d3a70b5a Update __init__.py to Add CodeInterpreterTool 2024-07-01 04:34:39 +01:00
angrybayblade 9a8d88b8aa fix: merge from_app and from_use_case 2024-06-27 13:35:57 +05:30
angrybayblade 58354ec638 chore: update README 2024-06-27 12:23:05 +05:30
angrybayblade 369c03a257 feat: add check for auth accounts 2024-06-27 12:16:22 +05:30
angrybayblade 7ffd8f5129 Merge branch 'main' into feat/composio-tool 2024-06-27 11:56:55 +05:30
angrybayblade ab484172ef chore: update readme 2024-06-27 11:40:02 +05:30
angrybayblade be6e1a79dd feat: add search utility methods 2024-06-27 11:39:42 +05:30
angrybayblade 41478abdf5 feat: define ComposioTool in the top level imports 2024-06-27 11:36:52 +05:30
João Moura 7a6e588c58 Merge pull request #59 from joaomdmoura/feat/code-interpreter
Feat: Code Interpreter tool
2024-06-27 02:25:25 -03:00
João Moura 25339f3ee1 Merge branch 'main' into feat/code-interpreter 2024-06-27 02:25:18 -03:00
Seth Donaldson a95f5c27c6 Create PDFEmbedchainAdapter class and utilize it in PDFSearchTool 2024-06-26 15:52:54 -04:00
Seth Donaldson f5d092f6a3 clean copy of embedchain_adapter.py 2024-06-26 15:46:14 -04:00
angrybayblade d4449ee5f0 feat: add composio CrewAI tool wrapper 2024-06-24 20:49:09 +05:30
Marcelo Busana f9c803a8c1 Fix: Selenium incorrect firefox options import 2024-06-23 15:33:55 -03:00
Naman Garg d84a616572 update local option description in readme 2024-06-21 15:01:08 -07:00
Naman Garg c97678bb11 add multion tool 2024-06-21 14:48:24 -07:00
Jakub Strnad 2f80840c74 fix: Ensure tools handle parameters passed post-creation correctly (#3)
- Fixed an issue where multiple tools failed to function if parameters were provided after tool creation.
- Updated tools to correctly process source file/URL passed by the agent post-creation as per documentation.

Closes #<47>
2024-06-21 15:06:17 +02:00
Eduardo Chiarotti 161c72b29f feat: update README 2024-06-20 21:55:25 -03:00
Eduardo Chiarotti 61cce93fd0 feat: remove unused Makefile, update README and update code 2024-06-20 21:41:12 -03:00
Eduardo Chiarotti 94e6651b55 feat: add code-interpreter tool to init and add unit tests 2024-06-20 20:43:19 -03:00
Eduardo Chiarotti 1a4ac76b1e feat: update code 2024-06-20 20:24:47 -03:00
Eduardo Chiarotti da75d51fe8 feat: add Dockerfile, Makefile and update version of code 2024-06-20 20:24:26 -03:00
João Moura bd13b55afd Adding new PDFTextWritingTool 2024-06-20 12:56:35 -03:00
Serply 0f703950d9 Merge branch 'main' into adding-serply-api 2024-06-20 08:22:18 -04:00
Eduardo Chiarotti 2b47377a78 feat: add code-interpreter tool 2024-06-19 20:45:04 -03:00
João Moura f3bf13e1b1 Merge pull request #50 from jerryjliu/jerry/add_llamaindex_tool
add llamaindex tool
2024-06-14 01:12:41 -03:00
teampen 806f884956 using GET in markdown 2024-06-14 01:43:25 +00:00
Rip&Tear 5e8e711170 Update serper_dev_tool.py
Added two additional functionalities:

1) added the ability to save the server results to a file
2) added the ability to  set the number of results returned

Can be used as follows:

serper_tool = SerperDevTool(file_save=True, n_results=20)
2024-06-13 12:53:35 +08:00
teampen 2c0f90dd22 adding serply job search tool 2024-06-11 13:03:17 -04:00
teampen ffe3829cef adding webpage to markdown 2024-06-10 21:34:53 -04:00
teampen d8b8edab08 adding google search, sholar, and news 2024-06-10 21:15:21 -04:00
smsajjadzaidi ff80e6cb79 fixed use of arg n_results 2024-06-10 02:54:21 +05:00
Jerry Liu 7ee7d846e2 cr 2024-06-08 21:42:28 -07:00
Mazen Ramadan 53e9b40725 Add Scrapfly website scrape tool 2024-05-27 14:48:38 +03:00
WilliamEspegren ad965357ce refined spider_tool.py 2024-05-25 22:40:48 +02:00
WilliamEspegren f0f1ab175a remove unecessary os import 2024-05-25 22:36:30 +02:00
WilliamEspegren 7d40c98434 remove full tool import 2024-05-25 22:28:48 +02:00
WilliamEspegren 56146b7df4 remove full tool, refined tool 2024-05-25 22:22:50 +02:00
SuperMuel 438c979a2e Add n_results, country, location and locale parameters to payload 2024-05-23 13:51:17 +02:00
WilliamEspegren 5b7276c0bb x 2024-05-23 12:03:48 +02:00
WilliamEspegren 70b5a3ab85 fixed white space 2024-05-22 17:05:46 +02:00
WilliamEspegren 60eb6e7c6f spider_tool working, not spider_full_tool 2024-05-21 23:34:05 +02:00
WilliamEspegren dd15dab111 added full params 2024-05-21 21:26:12 +02:00
WilliamEspegren 0b49403635 remove print from testing 2024-05-21 12:06:08 +02:00
WilliamEspegren 4e1425665c spider tool 2024-05-21 11:48:52 +02:00
Carlos Antunes 1f08d74015 adding file writer tool and documentation 2024-05-20 22:00:34 -03:00
Mish Ushakov bedbac2aaf updated browserbase tool readme 2024-05-20 09:02:55 +00:00
Mish Ushakov 5c2d8c4cfa updated browserbase tool 2024-05-20 08:58:25 +00:00
Carlos Antunes a11cc57345 adding MySQLSearcherTool 2024-05-18 16:58:40 -03:00
Carlos Antunes e36af697cd adding MySQLSearchTool README 2024-05-18 16:56:06 -03:00
rafaelsideguide a51a7000c5 added Firecrawl tools 2024-05-16 11:20:36 -03:00
João Moura 53c7d815ae preapring new verison with new version of Exa tool 2024-05-13 21:30:34 -03:00
João Moura 4b11881a70 Merge pull request #32 from slavakurilyak/feature/fix-docx-search-tool
Fix TypeError in DOCXSearchTool Schema
2024-05-08 17:20:03 -03:00
Slava Kurilyak (slavakurilyak.eth) cecfde6608 Fix TypeError in FixedDOCXSearchToolSchema by correcting Optional usage with Field 2024-05-06 15:21:23 -03:00
Slava Kurilyak (slavakurilyak.eth) b14f2d4bf1 Revert "Fix TypeError in FixedDOCXSearchToolSchema by correcting Optional usage with Field"
This reverts commit e0840e4826.
2024-05-06 15:21:07 -03:00
Slava Kurilyak (slavakurilyak.eth) e0840e4826 Fix TypeError in FixedDOCXSearchToolSchema by correcting Optional usage with Field 2024-05-06 15:19:37 -03:00
João Moura 7c6b1249fb cutring new version with improved docs search 2024-05-06 14:02:09 -03:00
João Moura 037e80c6a3 cutting new verison with exa search tool 2024-05-02 23:15:32 -03:00
João Moura 59d9d9eb1f moving EXA env dependency to tool execution 2024-05-02 04:12:45 -03:00
João Moura cf6231384c quick fix 2024-05-02 03:56:14 -03:00
João Moura a95cbfdc6a TYPO 2024-05-02 03:04:48 -03:00
João Moura cf96d5579f Update README.md 2024-05-02 02:54:18 -03:00
João Moura 768bb74a2c renaming exa tool 2024-05-02 02:50:54 -03:00
João Moura ffd5942b31 pushing initial exa search tool 2024-05-02 02:48:21 -03:00
João Moura 5fb9ddfa2a updating serperdev to allow for query and search_query 2024-05-02 02:37:47 -03:00
João Moura b992238a5d Merge pull request #13 from eltociear/main
Update serper_dev_tool.py
2024-05-02 02:28:24 -03:00
João Moura a474745b67 Merge pull request #18 from jeroen-vet/jeroen-vet-patch-1
Update serper_dev_tool.py consider n_results parameter
2024-05-02 02:26:55 -03:00
João Moura 5d64a5c41c Merge branch 'main' into jeroen-vet-patch-1 2024-05-02 02:26:48 -03:00
João Moura d4fc993f1e Update serper_dev_tool.py 2024-05-02 02:25:55 -03:00
João Moura 843c982ba9 Merge pull request #19 from Tavernari/main
Improve File Reading Robustness in FileReadTool
2024-05-02 02:24:54 -03:00
João Moura e6da49754d Merge pull request #28 from mishushakov/main
Updated Browserbase load tool
2024-05-02 02:23:41 -03:00
Mish Ushakov f78011e68c added args_schema to browserbase tool 2024-04-29 11:53:10 +02:00
Mish Ushakov 39aba4cb48 updated browserbase load tool 2024-04-25 12:15:31 +00:00
João Moura ed58694675 Merge pull request #25 from mishushakov/main
added BrowserbaseLoadTool
2024-04-24 00:03:04 -03:00
Mish Ushakov e0d799c075 updated browserbase integration 2024-04-19 11:40:03 +00:00
Mish Ushakov b80dd1ca8b added BrowserbaseLoadTool 2024-04-17 13:36:21 +00:00
João Moura 031fe500fb Merge pull request #24 from Christian24/patch-1
Fix wrong comments / descriptions for SerperDevTool
2024-04-16 10:42:05 -03:00
Christian24 aab3acbaa6 Fix wrong comments / descriptions for SerperDevTool 2024-04-15 22:14:16 +02:00
João Moura 3aa1bc3894 Merge pull request #23 from joaomdmoura/gui/fix-descriptions
Fix tool descriptions
2024-04-10 11:49:28 -03:00
Gui Vieira c5fd5196e2 Fix tool descriptions 2024-04-10 11:48:23 -03:00
João Moura be1a60554f TYPO 2024-04-07 18:22:09 -03:00
João Moura 873112d696 fxing docs 2024-04-07 18:12:16 -03:00
João Moura 9f41fb4057 Adding timeout to scrapping website tool 2024-04-07 14:18:41 -03:00
João Moura dd2349a90a Merge pull request #22 from joaomdmoura/gui/fix-github-search-tool
Fix GithubSearchTool
2024-04-05 18:06:09 -03:00
Gui Vieira 776826ec99 Fix GithubSearchTool 2024-04-05 18:04:45 -03:00
João Moura 9c98ad455d Merge pull request #21 from joaomdmoura/gui/fix-rag-tools
Fix RAG tools
2024-04-04 13:45:28 -03:00
Gui Vieira 4e9709b8fb Fix RAG tools 2024-04-04 13:42:30 -03:00
Victor C Tavernari 92abe0b726 Enhance file reading with error handling
- Wrapped the file reading functionality inside a `_run` method.
- Added error handling to return a descriptive error message if an exception occurs during file reading.
2024-03-31 23:41:02 +01:00
João Moura 80f9613959 Adding two default arguments to cache function 2024-03-27 15:04:45 -03:00
Jeroen Vet 3b77de7b21 Update serper_dev_tool.py consider n_results parameter
In original code n_results is always None so you always get only 10 results from Serper. With this change, when you explicitly set the n_results parameter when creating a SerperDevTool object it is taken into account.
2024-03-23 18:36:08 +01:00
João Moura f17057898d Merge pull request #17 from joaomdmoura/gui/custom-model-docs
Custom model docs
2024-03-22 03:01:52 -03:00
Gui Vieira 95fb44be88 Custom model docs 2024-03-21 21:13:36 -03:00
Gui Vieira 1c8d010601 Custom model config for RAG tools 2024-03-19 18:47:13 -03:00
João Moura 73cae1997d Merge pull request #15 from joaomdmoura/joaomdmoura/cache-option
adding cache_function to base_tool
2024-03-19 13:42:08 -03:00
João Moura b8e86b0fb4 adding cache_function to base_tool 2024-03-19 13:33:20 -03:00
Ikko Eltociear Ashimine c09f62cf47 Update serper_dev_tool.py
stirng -> string
2024-03-17 12:32:08 +09:00
João Moura cf4f49c6e9 cutting new version 2024-03-07 20:32:18 -03:00
João Moura 37aa8d6b63 Adding docs for all tools 2024-03-03 22:14:30 -03:00
João Moura 8ffbd9665b avoinding organic error on serper dev tool 2024-03-03 12:32:13 -03:00
João Moura 7f683b21f5 preparring new version 2024-03-03 12:29:46 -03:00
João Moura d19814d7a3 fixing TYPO 2024-03-03 12:29:32 -03:00
João Moura 51358b3cc4 updating scrapping tool 2024-03-02 12:41:55 -03:00
João Moura ec97e15a3a Adding new description generator 2024-02-29 03:10:11 -03:00
João Moura 640b5a9461 adding intial selenium scrapping tool 2024-02-29 03:10:11 -03:00
João Moura f2dfa07221 Merge pull request #5 from slavakurilyak/fix-none-type-query-error
Fix NoneType object has no attribute 'query' error by updating app attribute
2024-02-27 23:38:51 -03:00
Slava Kurilyak (slavakurilyak.eth) 467b05532f Fix NoneType object has no attribute 'query' error by updating app attribute 2024-02-27 22:33:04 -03:00
João Moura 79eec51c9a Cutting new version with improved scrapping 2024-02-26 06:52:22 -03:00
João Moura cff6082f1c improving scrapping tools 2024-02-26 06:20:15 -03:00
João Moura 9e560ff951 adding new scrapping tools 2024-02-26 06:15:15 -03:00
João Moura 80942bf38c properly adding serper tool 2024-02-26 06:01:05 -03:00
João Moura 50bae27948 revamping crewai tool 2024-02-25 21:11:09 -03:00
João Moura 7c99e9ab50 preparing new verion and adding new tools 2024-02-24 03:13:17 -03:00
João Moura f3c693a5bb very much work in progress version 2024-02-22 19:56:42 -03:00
João Moura e94fd2cad2 quick fixes 2024-02-15 18:27:38 -03:00
João Moura b4f270ad1f quick fixes 2024-02-15 18:26:15 -03:00
João Moura 7ee9926f2e quick fixes 2024-02-15 18:24:16 -03:00
João Moura a20481d023 adding RAG spefic readme and implementing specific helpers 2024-02-15 18:01:53 -03:00
João Moura aa7e336989 adding assets 2024-02-15 14:03:58 -03:00
João Moura db5d371769 Quick tools reorganization 2024-02-15 14:02:42 -03:00
João Moura a232bfbe60 Merge pull request #1 from joaomdmoura/gui/rag-tool
First take on a rag tool
2024-02-15 13:22:52 -03:00
Gui Vieira c1182eb322 First take on a rag tool 2024-02-13 20:10:56 -03:00
João Moura 54e4554f49 first commit 2024-01-14 11:54:26 -03:00
1096 changed files with 63211 additions and 20905 deletions

No files matched your search

+1 -1
View File
@@ -33,7 +33,7 @@ jobs:
- name: Install dependencies and populate cache
run: |
echo "Building global UV cache for Python ${{ matrix.python-version }}..."
uv sync --all-groups --all-extras --no-install-project
uv sync --all-groups --all-extras
echo "Cache populated successfully"
- name: Save uv caches
+1 -1
View File
@@ -38,7 +38,7 @@ jobs:
enable-cache: false
- name: Install dependencies
run: uv sync --all-groups --all-extras --no-install-project
run: uv sync --all-packages --all-extras --no-install-project
- name: Get Changed Python Files
id: changed-files
+32 -31
View File
@@ -25,17 +25,17 @@ jobs:
with:
fetch-depth: 0 # Fetch all history for proper diff
- name: Restore global uv cache
id: cache-restore
uses: actions/cache/restore@v4
with:
path: |
~/.cache/uv
~/.local/share/uv
.venv
key: uv-main-py${{ matrix.python-version }}-${{ hashFiles('uv.lock') }}
restore-keys: |
uv-main-py${{ matrix.python-version }}-
# - name: Restore global uv cache
# id: cache-restore
# uses: actions/cache/restore@v4
# with:
# path: |
# ~/.cache/uv
# ~/.local/share/uv
# .venv
# key: uv-main-py${{ matrix.python-version }}-${{ hashFiles('uv.lock') }}
# restore-keys: |
# uv-main-py${{ matrix.python-version }}-
- name: Install uv
uses: astral-sh/setup-uv@v6
@@ -45,24 +45,24 @@ jobs:
enable-cache: false
- name: Install the project
run: uv sync --all-groups --all-extras
run: uv sync --all-packages --all-extras
- name: Restore test durations
uses: actions/cache/restore@v4
with:
path: .test_durations_py*
key: test-durations-py${{ matrix.python-version }}
# - name: Restore test durations
# uses: actions/cache/restore@v4
# with:
# path: .test_durations_py*
# key: test-durations-py${{ matrix.python-version }}
- name: Run tests (group ${{ matrix.group }} of 8)
run: |
PYTHON_VERSION_SAFE=$(echo "${{ matrix.python-version }}" | tr '.' '_')
DURATION_FILE=".test_durations_py${PYTHON_VERSION_SAFE}"
# Temporarily always skip cached durations to fix test splitting
# When durations don't match, pytest-split runs duplicate tests instead of splitting
echo "Using even test splitting (duration cache disabled until fix merged)"
DURATIONS_ARG=""
# Original logic (disabled temporarily):
# if [ ! -f "$DURATION_FILE" ]; then
# echo "No cached durations found, tests will be split evenly"
@@ -74,8 +74,8 @@ jobs:
# echo "No test changes detected, using cached test durations for optimal splitting"
# DURATIONS_ARG="--durations-path=${DURATION_FILE}"
# fi
uv run pytest \
uv run pytest lib/crewai \
--block-network \
--timeout=30 \
-vv \
@@ -84,14 +84,15 @@ jobs:
$DURATIONS_ARG \
--durations=10 \
-n auto \
--maxfail=3
--maxfail=3 \
-m "not requires_local_services"
- name: Save uv caches
if: steps.cache-restore.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
path: |
~/.cache/uv
~/.local/share/uv
.venv
key: uv-main-py${{ matrix.python-version }}-${{ hashFiles('uv.lock') }}
# - name: Save uv caches
# if: steps.cache-restore.outputs.cache-hit != 'true'
# uses: actions/cache/save@v4
# with:
# path: |
# ~/.cache/uv
# ~/.local/share/uv
# .venv
# key: uv-main-py${{ matrix.python-version }}-${{ hashFiles('uv.lock') }}
+1 -1
View File
@@ -40,7 +40,7 @@ jobs:
enable-cache: false
- name: Install dependencies
run: uv sync --all-groups --all-extras
run: uv sync --all-packages --all-extras
- name: Get changed Python files
id: changed-files
-1
View File
@@ -2,7 +2,6 @@
.pytest_cache
__pycache__
dist/
lib/
.env
assets/*
.idea
+6 -1
View File
@@ -6,14 +6,19 @@ repos:
entry: uv run ruff check
language: system
types: [python]
files: ^lib/crewai/src/
exclude: ^lib/crewai/
- id: ruff-format
name: ruff-format
entry: uv run ruff format
language: system
types: [python]
files: ^lib/crewai/src/
exclude: ^lib/crewai/
- id: mypy
name: mypy
entry: uv run mypy
language: system
types: [python]
exclude: ^tests/
files: ^lib/crewai/src/
exclude: ^lib/crewai/
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

+1
View File
@@ -0,0 +1 @@
3.13
File renamed without changes.
+124
View File
@@ -0,0 +1,124 @@
[project]
name = "crewai"
dynamic = ["version"]
description = ""
readme = "README.md"
authors = [
{ name = "Greyson Lalonde", email = "greyson.r.lalonde@gmail.com" }
]
keywords = [
"crewai",
"ai",
"agents",
"framework",
"orchestration",
"llm",
"core",
"typed",
]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Software Development :: Libraries :: Python Modules",
"Typing :: Typed",
]
requires-python = ">=3.10, <3.14"
dependencies = [
# Core Dependencies
"crewai",
"pydantic>=2.11.9",
"openai>=1.13.3",
"litellm==1.74.9",
"instructor>=1.3.3",
# Text Processing
"pdfplumber>=0.11.4",
"regex>=2024.9.11",
# Telemetry and Monitoring
"opentelemetry-api>=1.30.0",
"opentelemetry-sdk>=1.30.0",
"opentelemetry-exporter-otlp-proto-http>=1.30.0",
"tokenizers>=0.20.3",
"openpyxl>=3.1.5",
"pyvis>=0.3.2",
# Authentication and Security
"python-dotenv>=1.1.1",
"pyjwt>=2.9.0",
# Configuration and Utils
"click>=8.1.7",
"appdirs>=1.4.4",
"jsonref>=1.1.0",
"json-repair==0.25.2",
"tomli-w>=1.1.0",
"tomli>=2.0.2",
"blinker>=1.9.0",
"json5>=0.10.0",
"portalocker==2.7.0",
"chromadb~=1.1.0",
"pydantic-settings>=2.10.1",
"uv>=0.4.25",
]
[project.optional-dependencies]
tools = [
"crewai-tools",
]
embeddings = [
"tiktoken~=0.8.0"
]
pdfplumber = [
"pdfplumber>=0.11.4",
]
pandas = [
"pandas>=2.2.3",
]
openpyxl = [
"openpyxl>=3.1.5",
]
mem0 = ["mem0ai>=0.1.94"]
docling = [
"docling>=2.12.0",
]
aisuite = [
"aisuite>=0.1.10",
]
qdrant = [
"qdrant-client[fastembed]>=1.14.3",
]
aws = [
"boto3>=1.40.38",
]
watson = [
"ibm-watsonx-ai>=1.3.39",
]
voyageai = [
"voyageai>=0.3.5",
]
[project.scripts]
crewai = "crewai.cli.cli:crewai"
[project.urls]
Homepage = "https://crewai.com"
Documentation = "https://docs.crewai.com"
Repository = "https://github.com/crewAIInc/crewAI"
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "strict"
asyncio_default_fixture_loop_scope = "function"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.version]
path = "src/crewai/__init__.py"
[tool.hatch.build.targets.wheel]
packages = ["src/crewai"]
@@ -40,7 +40,7 @@ def _suppress_pydantic_deprecation_warnings() -> None:
_suppress_pydantic_deprecation_warnings()
__version__ = "0.201.1"
__version__ = "1.0.0a0"
_telemetry_submitted = False
@@ -5,12 +5,13 @@ from collections.abc import Callable, Sequence
from typing import (
Any,
Literal,
cast,
)
from pydantic import Field, InstanceOf, PrivateAttr, model_validator
from crewai.agents import CacheHandler
from crewai.agents.agent_builder.base_agent import BaseAgent
from crewai.agents.agent_builder.base_agent import BaseAgent, PlatformAppOrAction
from crewai.agents.crew_agent_executor import CrewAgentExecutor
from crewai.events.event_bus import crewai_event_bus
from crewai.events.types.agent_events import (
@@ -78,6 +79,7 @@ class Agent(BaseAgent):
step_callback: Callback to be executed after each step of the agent execution.
knowledge_sources: Knowledge sources for the agent.
embedder: Embedder configuration for the agent.
apps: List of applications that the agent can access through CrewAI Platform.
"""
_times_executed: int = PrivateAttr(default=0)
@@ -174,7 +176,7 @@ class Agent(BaseAgent):
)
@model_validator(mode="before")
def validate_from_repository(cls, v): # noqa: N805
def validate_from_repository(cls, v): # noqa: N805
if v is not None and (from_repository := v.get("from_repository")):
return load_agent_from_repository(from_repository) | v
return v
@@ -271,11 +273,7 @@ class Agent(BaseAgent):
# Add the reasoning plan to the task description
task.description += f"\n\nReasoning Plan:\n{reasoning_output.plan.plan}"
except Exception as e:
if hasattr(self, "_logger"):
self._logger.log("error", f"Error during reasoning process: {e!s}")
else:
print(f"Error during reasoning process: {e!s}")
self._logger.log("error", f"Error during reasoning process: {e!s}")
self._inject_date_to_task(task)
if self.tools_handler:
@@ -327,7 +325,7 @@ class Agent(BaseAgent):
agent=self,
task=task,
)
memory = contextual_memory.build_context_for_task(task, context) # type: ignore[arg-type]
memory = contextual_memory.build_context_for_task(task, context or "")
if memory.strip() != "":
task_prompt += self.i18n.slice("memory").format(memory=memory)
@@ -579,7 +577,7 @@ class Agent(BaseAgent):
agent=self,
crew=self.crew,
tools=parsed_tools,
prompt=prompt, # type: ignore[arg-type]
prompt=cast(dict[str, str], prompt),
original_tools=raw_tools,
stop_words=stop_words,
max_iter=self.max_iter,
@@ -599,6 +597,17 @@ class Agent(BaseAgent):
agent_tools = AgentTools(agents=agents)
return agent_tools.tools()
def get_platform_tools(self, apps: list[PlatformAppOrAction]) -> list[BaseTool]:
try:
from crewai_tools import ( # type: ignore[import-not-found]
CrewaiPlatformTools, # type: ignore[import-untyped]
)
return CrewaiPlatformTools(apps=apps)
except Exception as e:
self._logger.log("error", f"Error getting platform tools: {e!s}")
return []
def get_multimodal_tools(self) -> Sequence[BaseTool]:
from crewai.tools.agent_tools.add_image_tool import AddImageTool
@@ -606,7 +615,9 @@ class Agent(BaseAgent):
def get_code_execution_tools(self):
try:
from crewai_tools import CodeInterpreterTool # type: ignore
from crewai_tools import ( # type: ignore[import-not-found]
CodeInterpreterTool,
)
# Set the unsafe_mode based on the code_execution_mode attribute
unsafe_mode = self.code_execution_mode == "unsafe"
@@ -695,14 +706,15 @@ class Agent(BaseAgent):
def _validate_docker_installation(self) -> None:
"""Check if Docker is installed and running."""
if not shutil.which("docker"):
docker_path = shutil.which("docker")
if not docker_path:
raise RuntimeError(
f"Docker is not installed. Please install Docker to use code execution with agent: {self.role}"
)
try:
subprocess.run(
["/usr/bin/docker", "info"],
subprocess.run( # noqa: S603
[docker_path, "info"],
check=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
@@ -711,6 +723,10 @@ class Agent(BaseAgent):
raise RuntimeError(
f"Docker is not running. Please start Docker to use code execution with agent: {self.role}"
) from e
except subprocess.TimeoutExpired as e:
raise RuntimeError(
f"Docker command timed out. Please check your Docker installation for agent: {self.role}"
) from e
def __repr__(self):
return f"Agent(role={self.role}, goal={self.goal}, backstory={self.backstory})"
File renamed without changes.
@@ -3,7 +3,7 @@ from abc import ABC, abstractmethod
from collections.abc import Callable
from copy import copy as shallow_copy
from hashlib import md5
from typing import Any, TypeVar
from typing import Any, Literal, TypeVar
from pydantic import (
UUID4,
@@ -31,6 +31,27 @@ from crewai.utilities.string_utils import interpolate_only
T = TypeVar("T", bound="BaseAgent")
PlatformApp = Literal[
"asana",
"box",
"clickup",
"github",
"gmail",
"google_calendar",
"google_sheets",
"hubspot",
"jira",
"linear",
"notion",
"salesforce",
"shopify",
"slack",
"stripe",
"zendesk",
]
PlatformAppOrAction = PlatformApp | str
class BaseAgent(ABC, BaseModel):
"""Abstract Base Class for all third party agents compatible with CrewAI.
@@ -41,11 +62,11 @@ class BaseAgent(ABC, BaseModel):
goal (str): Objective of the agent.
backstory (str): Backstory of the agent.
cache (bool): Whether the agent should use a cache for tool usage.
config (Optional[Dict[str, Any]]): Configuration for the agent.
config (dict[str, Any] | None): Configuration for the agent.
verbose (bool): Verbose mode for the Agent Execution.
max_rpm (Optional[int]): Maximum number of requests per minute for the agent execution.
max_rpm (int | None): Maximum number of requests per minute for the agent execution.
allow_delegation (bool): Allow delegation of tasks to agents.
tools (Optional[List[Any]]): Tools at the agent's disposal.
tools (list[Any] | None): Tools at the agent's disposal.
max_iter (int): Maximum iterations for an agent to execute a task.
agent_executor (InstanceOf): An instance of the CrewAgentExecutor class.
llm (Any): Language model that will run the agent.
@@ -57,18 +78,22 @@ class BaseAgent(ABC, BaseModel):
knowledge_sources: Knowledge sources for the agent.
knowledge_storage: Custom knowledge storage for the agent.
security_config: Security configuration for the agent, including fingerprinting.
apps: List of enterprise applications that the agent can access through CrewAI Enterprise Tools.
actions: List of actions that the agent can access through CrewAI Enterprise Tools.
Methods:
execute_task(task: Any, context: Optional[str] = None, tools: Optional[List[BaseTool]] = None) -> str:
execute_task(task: Any, context: str | None = None, tools: list[BaseTool] | None = None) -> str:
Abstract method to execute a task.
create_agent_executor(tools=None) -> None:
Abstract method to create an agent executor.
get_delegation_tools(agents: List["BaseAgent"]):
get_delegation_tools(agents: list["BaseAgent"]):
Abstract method to set the agents task tools for handling delegation and question asking to other agents in crew.
get_platform_tools(apps: list[PlatformAppOrAction]):
Abstract method to get platform tools for the specified list of applications and/or application/action combinations.
get_output_converter(llm, model, instructions):
Abstract method to get the converter class for the agent to create json/pydantic outputs.
interpolate_inputs(inputs: Dict[str, Any]) -> None:
interpolate_inputs(inputs: dict[str, Any]) -> None:
Interpolate inputs into the agent description and backstory.
set_cache_handler(cache_handler: CacheHandler) -> None:
Set the cache handler for the agent.
@@ -161,6 +186,10 @@ class BaseAgent(ABC, BaseModel):
default=None,
description="Knowledge configuration for the agent such as limits and threshold",
)
apps: list[PlatformAppOrAction] | None = Field(
default=None,
description="List of applications or application/action combinations that the agent can access through CrewAI Platform. Can contain app names (e.g., 'gmail') or specific actions (e.g., 'gmail/send_email')",
)
@model_validator(mode="before")
@classmethod
@@ -196,6 +225,24 @@ class BaseAgent(ABC, BaseModel):
)
return processed_tools
@field_validator("apps")
@classmethod
def validate_apps(
cls, apps: list[PlatformAppOrAction] | None
) -> list[PlatformAppOrAction] | None:
if not apps:
return apps
validated_apps = []
for app in apps:
if app.count("/") > 1:
raise ValueError(
f"Invalid app format '{app}'. Apps can only have one '/' for app/action format (e.g., 'gmail/send_email')"
)
validated_apps.append(app)
return list(set(validated_apps))
@model_validator(mode="after")
def validate_and_set_attributes(self):
# Validate required fields
@@ -266,6 +313,10 @@ class BaseAgent(ABC, BaseModel):
def get_delegation_tools(self, agents: list["BaseAgent"]) -> list[BaseTool]:
"""Set the task tools that init BaseAgenTools class."""
@abstractmethod
def get_platform_tools(self, apps: list[PlatformAppOrAction]) -> list[BaseTool]:
"""Get platform tools for the specified list of applications and/or application/action combinations."""
def copy(self: T) -> T: # type: ignore # Signature of "copy" incompatible with supertype "BaseModel"
"""Create a deep copy of the Agent."""
exclude = {
@@ -282,6 +333,8 @@ class BaseAgent(ABC, BaseModel):
"knowledge_sources",
"knowledge_storage",
"knowledge",
"apps",
"actions",
}
# Copy llm
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,7 +1,6 @@
from crewai import Agent, Crew, Process, Task
from crewai.project import CrewBase, agent, crew, task
from crewai.agents.agent_builder.base_agent import BaseAgent
from typing import List
from crewai.project import CrewBase, agent, crew, task
# If you want to run a snippet of code before or after the crew starts,
# you can use the @before_kickoff and @after_kickoff decorators
@@ -12,8 +11,8 @@ from typing import List
class PoemCrew:
"""Poem Crew"""
agents: List[BaseAgent]
tasks: List[Task]
agents: list[BaseAgent]
tasks: list[Task]
# Learn more about YAML configuration files here:
# Agents: https://docs.crewai.com/concepts/agents#yaml-configuration-recommended
@@ -1,7 +1,6 @@
from typing import Type
from pydantic import BaseModel, Field
from crewai.tools import BaseTool
from pydantic import BaseModel, Field
class MyCustomToolInput(BaseModel):
@@ -12,10 +11,8 @@ class MyCustomToolInput(BaseModel):
class MyCustomTool(BaseTool):
name: str = "Name of my tool"
description: str = (
"Clear description for what this tool is useful for, your agent will need this information to use it."
)
args_schema: Type[BaseModel] = MyCustomToolInput
description: str = "Clear description for what this tool is useful for, your agent will need this information to use it."
args_schema: type[BaseModel] = MyCustomToolInput
def _run(self, argument: str) -> str:
# Implementation goes here
Loaded 100 of 1096 files, more files were not shown because too many files have changed in this diff. Show more