* Add reasoning attribute to Agent class
Co-Authored-By: Joe Moura <joao@crewai.com>
* Address PR feedback: improve type hints, error handling, refactor reasoning handler, and enhance tests and docs
Co-Authored-By: Joe Moura <joao@crewai.com>
* Implement function calling for reasoning and move prompts to translations
Co-Authored-By: Joe Moura <joao@crewai.com>
* Simplify function calling implementation with better error handling
Co-Authored-By: Joe Moura <joao@crewai.com>
* Enhance system prompts to leverage agent context (role, goal, backstory)
Co-Authored-By: Joe Moura <joao@crewai.com>
* Fix lint and type-checker issues
Co-Authored-By: Joe Moura <joao@crewai.com>
* Enhance system prompts to better leverage agent context
Co-Authored-By: Joe Moura <joao@crewai.com>
* Fix backstory access in reasoning handler for Python 3.12 compatibility
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>
Co-authored-by: João Moura <joaomdmoura@gmail.com>
* feat: implement knowledge retrieval events in Agent
This commit introduces a series of knowledge retrieval events in the Agent class, enhancing its ability to handle knowledge queries. New events include KnowledgeRetrievalStartedEvent, KnowledgeRetrievalCompletedEvent, KnowledgeQueryGeneratedEvent, KnowledgeQueryFailedEvent, and KnowledgeSearchQueryCompletedEvent. The Agent now emits these events during knowledge retrieval processes, allowing for better tracking and handling of knowledge queries. Additionally, the console formatter has been updated to handle these new events, providing visual feedback during knowledge retrieval operations.
* refactor: update knowledge query handling in Agent
This commit refines the knowledge query processing in the Agent class by renaming variables for clarity and optimizing the query rewriting logic. The system prompt has been updated in the translation file to enhance clarity and context for the query rewriting process. These changes aim to improve the overall readability and maintainability of the code.
* fix: add missing newline at end of en.json file
* fix broken tests
* refactor: rename knowledge query events and enhance retrieval handling
This commit renames the KnowledgeQueryGeneratedEvent to KnowledgeQueryStartedEvent to better reflect its purpose. It also updates the event handling in the EventListener and ConsoleFormatter classes to accommodate the new event structure. Additionally, the retrieval knowledge is now included in the KnowledgeRetrievalCompletedEvent, improving the overall knowledge retrieval process.
* docs for transparancy
* refactor: improve error handling in knowledge query processing
This commit refactors the knowledge query handling in the Agent class by changing the order of checks for LLM compatibility. It now logs a warning and emits a failure event if the LLM is not an instance of BaseLLM before attempting to call the LLM. Additionally, the task_prompt attribute has been removed from the KnowledgeQueryFailedEvent, simplifying the event structure.
* test: add unit test for knowledge search query and VCR cassette
This commit introduces a new test, `test_get_knowledge_search_query`, to verify that the `_get_knowledge_search_query` method in the Agent class correctly interacts with the LLM using the appropriate prompts. Additionally, a VCR cassette is added to record the interactions with the OpenAI API for this test, ensuring consistent and reliable test results.
* WIP
* WIP
* wip
* wip
* WIP
* More WIP
* Its working but needs a massive clean up
* output type works now
* Usage metrics fixed
* more testing
* WIP
* cleaning up
* Update logger
* 99% done. Need to make docs match new example
* cleanup
* drop hard coded examples
* docs
* Clean up
* Fix errors
* Trying to fix CI issues
* more type checker fixes
* More type checking fixes
* Update LiteAgent documentation for clarity and consistency; replace WebsiteSearchTool with SerperDevTool, and improve formatting in examples.
* fix fingerprinting issues
* fix type-checker
* Fix type-checker issue by adding type ignore comment for cache read in ToolUsage class
* Add optional agent parameter to CrewAgentParser and enhance action handling logic
* Remove unused parameters from ToolUsage instantiation in tests and clean up debug print statement in CrewAgentParser.
* Remove deprecated test files and examples for LiteAgent; add comprehensive tests for LiteAgent functionality, including tool usage and structured output handling.
* Remove unused variable 'result' from ToolUsage class to clean up code.
* Add initialization for 'result' variable in ToolUsage class to resolve type-checker warnings
* Refactor agent_utils.py by removing unused event imports and adding missing commas in function definitions. Update test_events.py to reflect changes in expected event counts and adjust assertions accordingly. Modify test_tools_emits_error_events.yaml to include new headers and update response content for consistency with recent API changes.
* Enhance tests in crew_test.py by verifying cache behavior in test_tools_with_custom_caching and ensuring proper agent initialization with added commas in test_crew_kickoff_for_each_works_with_manager_agent_copy.
* Update agent tests to reflect changes in expected call counts and improve response formatting in YAML cassette. Adjusted mock call count from 2 to 3 and refined interaction formats for clarity and consistency.
* Refactor agent tests to update model versions and improve response formatting in YAML cassettes. Changed model references from 'o1-preview' to 'o3-mini' and adjusted interaction formats for consistency. Enhanced error handling in context length tests and refined mock setups for better clarity.
* Update tool usage logging to ensure tool arguments are consistently formatted as strings. Adjust agent test cases to reflect changes in maximum iterations and expected outputs, enhancing clarity in assertions. Update YAML cassettes to align with new response formats and improve overall consistency across tests.
* Update YAML cassette for LLM tests to reflect changes in response structure and model version. Adjusted request and response headers, including updated content length and user agent. Enhanced token limits and request counts for improved testing accuracy.
* Update tool usage logging to store tool arguments as native types instead of strings, enhancing data integrity and usability.
* Refactor agent tests by removing outdated test cases and updating YAML cassettes to reflect changes in tool usage and response formats. Adjusted request and response headers, including user agent and content length, for improved accuracy in testing. Enhanced interaction formats for consistency across tests.
* Add Excalidraw diagram file for visual representation of input-output flow
Created a new Excalidraw file that includes a diagram illustrating the input box, database, and output box with connecting arrows. This visual aid enhances understanding of the data flow within the application.
* Remove redundant error handling for action and final answer in CrewAgentParser. Update tests to reflect this change by deleting the corresponding test case.
---------
Co-authored-by: Lorenze Jay <63378463+lorenzejay@users.noreply.github.com>
Co-authored-by: Lorenze Jay <lorenzejaytech@gmail.com>
* imporve HITL
* fix failing test
* fix failing test part 2
* Drop extra logs that were causing confusion
---------
Co-authored-by: Lorenze Jay <63378463+lorenzejay@users.noreply.github.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
* Improving tool calling to pass dictionaries instead of strings
* Fix issues with parsing none/null
* remove prints and unnecessary comments
* Fix crew_test issues with function calling
* improve prompting
* add back in support for add_image
* add tests for tool validation
* revert back to figure out why tests are timing out
* Update cassette
* trying to find what is timing out
* add back in guardrails
* add back in manager delegation tests
* Trying to fix tests
* Force test to pass
* Trying to fix tests
* add in more role tests
* add back old tool validation
* updating tests
* vcr
* Fix tests
* improve function llm logic
* vcr 2
* drop llm
* Failing test
* add more tests back in
* Revert tool validation
* worked on foundation for new conversational crews. Now going to work on chatting.
* core loop should be working and ready for testing.
* high level chat working
* its alive!!
* Added in Joaos feedback to steer crew chats back towards the purpose of the crew
* properly return tool call result
* accessing crew directly instead of through uv commands
* everything is working for conversation now
* Fix linting
* fix llm_utils.py and other type errors
* fix more type errors
* fixing type error
* More fixing of types
* fix failing tests
* Fix more failing tests
* adding tests. cleaing up pr.
* improve
* drop old functions
* improve type hintings
* fix(manager_llm): handle coworker role name case/whitespace properly
- Add .strip() to agent name and role comparisons in base_agent_tools.py
- Add test case for varied role name cases and whitespace
- Fix issue #1503 with manager LLM delegation
Co-Authored-By: Joe Moura <joao@crewai.com>
* fix(manager_llm): improve error handling and add debug logging
- Add debug logging for better observability
- Add sanitize_agent_name helper method
- Enhance error messages with more context
- Add parameterized tests for edge cases:
- Embedded quotes
- Trailing newlines
- Multiple whitespace
- Case variations
- None values
- Improve error handling with specific exceptions
Co-Authored-By: Joe Moura <joao@crewai.com>
* style: fix import sorting in base_agent_tools and test_manager_llm_delegation
Co-Authored-By: Joe Moura <joao@crewai.com>
* fix(manager_llm): improve whitespace normalization in role name matching
Co-Authored-By: Joe Moura <joao@crewai.com>
* style: fix import sorting in base_agent_tools and test_manager_llm_delegation
Co-Authored-By: Joe Moura <joao@crewai.com>
* fix(manager_llm): add error message template for agent tool execution errors
Co-Authored-By: Joe Moura <joao@crewai.com>
* style: fix import sorting in test_manager_llm_delegation.py
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>
* v1 of HITL working
* Drop print statements
* HITL code more robust. Still needs to be refactored.
* refactor and more clear messages
* Fix type issue
* fix tests
* Fix test again
* Drop extra print
* V1 working
* clean up imports and prints
* more clean up and add tests
* fixing tests
* fix test
* fix linting
* Fix tests
* Fix linting
* add doc string as requested by eduardo
* rebuilding executor
* removing langchain
* Making all tests good
* fixing types and adding ability for nor using system prompts
* improving types
* pleasing the types gods
* pleasing the types gods
* fixing parser, tools and executor
* making sure all tests pass
* final pass
* fixing type
* Updating Docs
* preparing to cut new version
* Performed spell check across the entire documentation
Thank you once again!
* Performed spell check across the most of code base
Folders been checked:
- agents
- cli
- memory
- project
- tasks
- telemetry
- tools
- translations
* removed hyphen in co-workers
* Fix issue with AgentTool agent selection. The LLM included double quotes in the agent name which messed up the string comparison. Added additional types. Cleaned up error messaging.
* Remove duplicate import
* Improve explanation
* Revert poetry.lock changes
* Fix missing line in poetry.lock
---------
Co-authored-by: madmag77 <goncharov.artemv@gmail.com>
* feature: human input per task
* Update executor.py
* Update executor.py
* Update executor.py
* Update executor.py
* Update executor.py
* feat: change human input for unit testing
added documentation and unit test
* Create test_agent_human_input.yaml
add yaml for test
---------
Co-authored-by: João Moura <joaomdmoura@gmail.com>