* 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
* 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
* 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
* 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>
* - 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>
* 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.
* 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
* 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
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
* 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
* 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
* 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
* 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>
* 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
* 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>
- 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
- 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