- Updated the Task class to ensure that guardrails can only be used when an agent is provided, improving error handling and validation.
- Introduced a smart task factory function to automatically assign a mock agent when guardrails are present, maintaining backward compatibility.
- Updated tests to utilize the new smart task factory, ensuring proper functionality with and without guardrails.
This update enhances the robustness of task execution and guardrail integration, ensuring better control over task validation outcomes.
- Updated the type annotation for the `guardrails` field in the Task class from `list` to `Sequence` to enhance type safety and compatibility with various sequence types.
- This change improves type checking and aligns with best practices for handling callable functions and string descriptions in guardrail validation.
This update contributes to the overall robustness and maintainability of the Task class.
- Added a new `guardrails` field to the Task class to allow for multiple guardrail functions or string descriptions for output validation.
- Implemented a model validator to ensure guardrails are processed correctly, supporting both callable functions and string descriptions.
- Updated the task execution flow to invoke guardrails sequentially, handling validation and retry logic.
- Added comprehensive tests for various guardrail scenarios, including sequential processing, validation failures, and mixed return types.
This update improves the flexibility and robustness of task output validation, ensuring better control over task execution outcomes.
- Bumped the `crewai` version in `__init__.py` to 0.203.1.
- Updated the dependency versions in the crew, flow, and tool templates' `pyproject.toml` files to reflect the new `crewai` version.
- Updated the `crewai-tools` dependency in `pyproject.toml` and `uv.lock` to version 0.76.0.
- Updated the `crewai` version in `__init__.py` to 0.203.0.
- Updated the dependency versions in the crew, flow, and tool templates to reflect the new `crewai` version.
* feat: enhance knowledge event handling in Agent class
- Updated the Agent class to include task context in knowledge retrieval events.
- Emitted new events for knowledge retrieval and query processes, capturing task and agent details.
- Refactored knowledge event classes to inherit from a base class for better structure and maintainability.
- Added tracing for knowledge events in the TraceCollectionListener to improve observability.
This change improves the tracking and management of knowledge queries and retrievals, facilitating better debugging and performance monitoring.
* refactor: remove task_id from knowledge event emissions in Agent class
- Removed the task_id parameter from various knowledge event emissions in the Agent class to streamline event handling.
- This change simplifies the event structure and focuses on the essential context of knowledge retrieval and query processes.
This refactor enhances the clarity of knowledge events and aligns with the recent improvements in event handling.
* surface association for guardrail events
* fix: improve LLM selection logic in converter
- Updated the logic for selecting the LLM in the convert_with_instructions function to handle cases where the agent may not have a function_calling_llm attribute.
- This change ensures that the converter can still function correctly by falling back to the standard LLM if necessary, enhancing robustness and preventing potential errors.
This fix improves the reliability of the conversion process when working with different agent configurations.
* fix test
* fix: enforce valid LLM instance requirement in converter
- Updated the convert_with_instructions function to ensure that a valid LLM instance is provided by the agent.
- If neither function_calling_llm nor the standard llm is available, a ValueError is raised, enhancing error handling and robustness.
- Improved error messaging for conversion failures to provide clearer feedback on issues encountered during the conversion process.
This change strengthens the reliability of the conversion process by ensuring that agents are properly configured with a valid LLM.
- prefix provider env vars with embeddings_
- rename watson → watsonx in providers
- add deprecation warning and alias for legacy 'watson' key (to be removed in v1.0.0)
- Bump CrewAI version to 0.201.0 in __init__.py
- Update dependency versions in pyproject.toml for crew, flow, and tool templates to require CrewAI 0.201.0
- Remove unnecessary blank line in pyproject.toml
- update imports and include handling for chromadb v1.1.0
- fix mypy and typing_compat issues (required, typeddict, voyageai)
- refine embedderconfig typing and allow base provider instances
- handle mem0 as special case for external memory storage
- bump tools and clean up redundant deps
- introduce baseembeddingsprovider and helper for embedding functions
- add core embedding types and migrate providers, factory, and storage modules
- remove unused type aliases and fix pydantic schema error
- update providers with env var support and related fixes
- add batch_size field to baseragconfig (default=100)
- update chromadb/qdrant clients and factories to use batch_size
- extract and filter batch_size from embedder config in knowledgestorage
- fix large csv files exceeding embedder token limits (#3574)
- remove unneeded conditional for type
Co-authored-by: Vini Brasil <vini@hey.com>
- support nested config format with embedderconfig typeddict
- fix parsing for model/model_name compatibility
- add validation, typing_extensions, and improved type hints
- enhance embedding factory with env var injection and provider support
- add tests for openai, azure, and all embedding providers
- misc fixes: test file rename, updated mocking patterns
* fix: Make 'ready' parameter optional in _create_reasoning_plan function
This PR fixes Issue #3466 where the _create_reasoning_plan function was missing
the 'ready' parameter when called by the LLM. The fix makes the 'ready' parameter
optional with a default value of False, which allows the function to be called
with only the 'plan' argument.
Fixes#3466
* Change default value of 'ready' parameter to True
---------
Co-authored-by: João Moura <joaomdmoura@gmail.com>
* chore: update dependencies and versioning for CrewAI
- Bump `crewai-tools` dependency version from `0.71.0` to `0.73.0` in `pyproject.toml`.
- Update CrewAI version from `0.186.1` to `0.193.0` in `__init__.py`.
- Adjust dependency versions in CLI templates for crew, flow, and tool to reflect the new CrewAI version.
This update ensures compatibility with the latest features and improvements in CrewAI.
* remove embedchain mock
* fix: remove last embedchain mocks
* fix: remove langchain_openai from tests
---------
Co-authored-by: Greyson LaLonde <greyson.r.lalonde@gmail.com>
* feat(tracing): enhance first-time trace display and auto-open browser
* avoinding line breaking
* set tracing if user enables it
* linted
---------
Co-authored-by: lorenzejay <lorenzejaytech@gmail.com>
- Refactor the default embedding function to utilize OpenAI's embedding function with API key support.
- Import necessary OpenAI embedding function and configure it with the environment variable for the API key.
- Ensure compatibility with existing ChromaDB configuration model.
- Add limit and score_threshold to BaseRagConfig, propagate to clients
- Update default search params in RAG storage, knowledge, and memory (limit=5, threshold=0.6)
- Fix linting (ruff, mypy, PERF203) and refactor save logic
- Update tests for new defaults and ChromaDB behavior
* feat(tracing): implement first-time trace handling and improve event management
- Added FirstTimeTraceHandler for managing first-time user trace collection and display.
- Enhanced TraceBatchManager to support ephemeral trace URLs and improved event buffering.
- Updated TraceCollectionListener to utilize the new FirstTimeTraceHandler.
- Refactored type annotations across multiple files for consistency and clarity.
- Improved error handling and logging for trace-related operations.
- Introduced utility functions for trace viewing prompts and first execution checks.
* brought back crew finalize batch events
* refactor(trace): move instance variables to __init__ in TraceBatchManager
- Refactored TraceBatchManager to initialize instance variables in the constructor instead of as class variables.
- Improved clarity and encapsulation of the class state.
* fix(tracing): improve error handling in user data loading and saving
- Enhanced error handling in _load_user_data and _save_user_data functions to log warnings for JSON decoding and file access issues.
- Updated documentation for trace usage to clarify the addition of tracing parameters in Crew and Flow initialization.
- Refined state management in Flow class to ensure proper handling of state IDs when persistence is enabled.
* add some tests
* fix test
* fix tests
* refactor(tracing): enhance user input handling for trace viewing
- Replaced signal-based timeout handling with threading for user input in prompt_user_for_trace_viewing function.
- Improved user experience by allowing a configurable timeout for viewing execution traces.
- Updated tests to mock threading behavior and verify timeout handling correctly.
* fix(tracing): improve machine ID retrieval with error handling
- Added error handling to the _get_machine_id function to log warnings when retrieving the machine ID fails.
- Ensured that the function continues to provide a stable, privacy-preserving machine fingerprint even in case of errors.
* refactor(flow): streamline state ID assignment in Flow class
- Replaced direct attribute assignment with setattr for improved flexibility in handling state IDs.
- Enhanced code readability by simplifying the logic for setting the state ID when persistence is enabled.