- Modify test_events.py to use task_prompt instead of inputs
- Simplify event input validation in test case
- Align with recent event system refactoring
- Add new events for tool usage: ToolSelectionErrorEvent, ToolValidateInputErrorEvent
- Improve error tracking and event emission in ToolUsage and LLM classes
- Update AgentExecutionStartedEvent to use task_prompt instead of inputs
- Add comprehensive test coverage for new event types and error scenarios
- Introduce FlowPlotEvent to track flow plotting events
- Replace Telemetry method with event bus emission in Flow.plot()
- Update event bus to support new FlowPlotEvent type
- Add test case to validate flow plotting event emission
* Added functionality to have any llm run test functionality
* Fixed lint issues
* Fixed Linting issues
* Fixed unit test case
* Fixed unit test
* Fixed test case
* Fixed unit test case
---------
Co-authored-by: Brandon Hancock (bhancock_ai) <109994880+bhancockio@users.noreply.github.com>
- Replace all references to `event_bus` with `crewai_event_bus`
- Update import statements across multiple files
- Remove the old `event_bus.py` file
- Maintain existing event handling functionality
This commit implements a method for exporting the state of a flow into a
JSON-serializable dictionary.
The idea is producing a human-readable version of state that can be
inspected or consumed by other systems, hence JSON and not pickling or
marshalling.
I consider it an export because it's a one-way process, meaning it
cannot be loaded back into Python because of complex types.
- Modify test to assert 75 events instead of a single error event
- Remove pytest.raises() check, allowing crew kickoff to complete
- Adjust event validation to support broader event tracking
- Modify test to assert single error event with correct attributes
- Use pytest.raises() to verify error event generation
- Simplify error event validation in test case
- Uncomment pytest.raises() in test_events to verify exception handling
- Ensure test validates MethodExecutionFailedEvent emission during flow kickoff
- Introduce new MethodExecutionFailedEvent in flow_events module
- Update Flow class to catch and emit method execution failures
- Add event listener for method execution failure events
- Update event-related imports to include new event type
- Enhance test coverage for method execution failure handling
- Replace task and agent completion icons from 👍 to ✅
- Enhance readability of test output logging
- Maintain consistent test coverage for crew verbose output
- Enhance test_crew_verbose_output to check specific listener log messages
- Modify test_kickoff_for_each_invalid_input to use Pydantic validation error
- Improve test coverage for crew logging and input validation
- Remove unused imports from various event and flow-related files
- Reorder event imports to follow standard conventions
- Remove unnecessary event type references
- Simplify import statements in event and flow modules
- Remove telemetry-related imports and private attributes from Task class
- Remove `_telemetry` attribute from Flow class
- Update event handling to emit events without direct telemetry tracking
- Simplify task and flow execution by removing explicit telemetry spans
- Move telemetry-related event handling to EventListener
- Add crew name to failed event types (CrewKickoffFailedEvent, CrewTrainFailedEvent, CrewTestFailedEvent)
- Update Task events to remove redundant task and context attributes
- Refactor EventListener to use Logger for consistent event logging
- Add new event types for Crew train and test events
- Improve event bus event tracking in test cases
- Remove `event_emitter` from Flow class and replace with `event_bus.emit()`
- Update Flow and Agent tests to use event_bus event listeners
- Remove redundant event emissions in Flow methods
- Add debug print statements in Flow execution
- Simplify event tracking in test cases
- Improve type annotations for event bus and event types
- Add null checks for agent and task in event emissions
- Update import paths for base tool and base agent
- Refactor event listener type hints
- Remove unnecessary print statements
- Update test configurations to match new event handling
Previously, `@start` methods triggered a `FlowStartedEvent` but did not
emit a `MethodExecutionStartedEvent`. This was fine for a single entry
point but caused ambiguity when multiple `@start` methods existed.
This commit (1) emits events for starting points, (2) adds tests
ensuring ordering, (3) adds more fields to events.
- Move event_bus import to correct module paths
- Introduce BaseEventListener abstract base class
- Add AgentOpsListener for third-party event tracking
- Update event listener initialization and setup
- Clean up event-related imports and exports
- Emit AgentExecutionStarted and AgentExecutionError events
- Update CrewAgentExecutor to use event_bus for tracking agent execution
- Refactor error handling to include event emission
- Minor code formatting improvements in task.py and crew_agent_executor.py
- Fix a typo in test file
- Migrate from global `emit` function to `event_bus.emit`
- Add new event types for task failures, tool usage, and agent execution
- Update event listeners and event bus to support more granular event tracking
- Remove deprecated event emission methods
- Improve event type consistency and add more detailed event information
* fix: ensure proper message formatting for Anthropic models
- Add Anthropic-specific message formatting
- Add placeholder user message when required
- Add test case for Anthropic message formatting
Fixes#1869
Co-Authored-By: Joe Moura <joao@crewai.com>
* refactor: improve Anthropic model handling
- Add robust model detection with _is_anthropic_model
- Enhance message formatting with better edge cases
- Add type hints and improve documentation
- Improve test structure with fixtures
- Add edge case tests
Addresses review feedback on #2063
Co-Authored-By: Joe Moura <joao@crewai.com>
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Joe Moura <joao@crewai.com>
* clean up. fix type safety. address memory config docs
* improve manager
* Include fix for o1 models not supporting system messages
* more broad with o1
* address fix: Typo in expected_output string #2045
* drop prints
* drop prints
* wip
* wip
* fix failing memory tests
* Fix memory provider issue
* clean up short term memory
* revert ltm
* drop
* Added reset memories function inside crew class
* Fixed typos
* Refractored the code
* Refactor memory reset functionality in Crew class
- Improved error handling and logging for memory reset operations
- Added private methods to modularize memory reset logic
- Enhanced type hints and docstrings
- Updated CLI reset memories command to use new Crew method
- Added utility function to get crew instance in CLI utils
* fix linting issues
* knowledge: Add null check in reset method for storage
* cli: Update memory reset tests to use Crew's reset_memories method
* cli: Enhance memory reset command with improved error handling and validation
---------
Co-authored-by: Lorenze Jay <lorenzejaytech@gmail.com>
Co-authored-by: Brandon Hancock (bhancock_ai) <109994880+bhancockio@users.noreply.github.com>
* Fixing training while refactoring code
* improve prompts
* make sure to raise an error when missing training data
* Drop comment
* fix failing tests
* add clear
* drop bad code
* fix failing test
* Fix type issues pointed out by lorenze
* simplify training
* fixes interpolation issues when inputs are type dict,list specifically when defined on expected_output
* improvements with type hints, doc fixes and rm print statements
* more tests
* test passing
---------
Co-authored-by: Brandon Hancock <brandon@brandonhancock.io>
* fix breakage when cloning agent/crew using knowledge_sources
* fixed typo
* better
* ensure use of other knowledge storage works
* fix copy and custom storage
* added tests
* normalized name
* updated cassette
* fix test
* remove fixture
* fixed test
* fix
* add fixture to this
* add fixture to this
* patch twice since
* fix again
* with fixtures
* better mocks
* fix
* simple
* try
* another
* hopefully fixes test
* hopefully fixes test
* this should fix it !
* WIP: test check with prints
* try this
* exclude knowledge
* fixes
* just drop clone for now
* rm print statements
* printing agent_copy
* checker
* linted
* cleanup
* better docs
---------
Co-authored-by: Brandon Hancock (bhancock_ai) <109994880+bhancockio@users.noreply.github.com>
* wip
* More clean up
* Fix error
* clean up test
* Improve chat calling messages
* crewai chat improvements
* working but need to clean up
* Clean up chat
* fix: ensure persisted state overrides class defaults
- Remove early return in Flow.__init__ to allow proper state initialization
- Add test_flow_default_override.py to verify state override behavior
- Fix issue where default values weren't being overridden by persisted state
Fixes the issue where persisted state values weren't properly overriding
class defaults when restarting a flow with a previously saved state ID.
Co-Authored-By: Joe Moura <joao@crewai.com>
* test: improve state restoration verification with has_set_count flag
Co-Authored-By: Joe Moura <joao@crewai.com>
* test: add has_set_count field to PoemState
Co-Authored-By: Joe Moura <joao@crewai.com>
* refactoring test
* fix: ensure persisted state overrides class defaults
- Remove early return in Flow.__init__ to allow proper state initialization
- Add test_flow_default_override.py to verify state override behavior
- Fix issue where default values weren't being overridden by persisted state
Fixes the issue where persisted state values weren't properly overriding
class defaults when restarting a flow with a previously saved state ID.
Co-Authored-By: Joe Moura <joao@crewai.com>
* test: improve state restoration verification with has_set_count flag
Co-Authored-By: Joe Moura <joao@crewai.com>
* test: add has_set_count field to PoemState
Co-Authored-By: Joe Moura <joao@crewai.com>
* refactoring test
* Fixing flow state
* fixing peristed stateful flows
* linter
* type fix
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Joe Moura <joao@crewai.com>