From d4213cecb7f26caeb3f2cc9a9f9e64961976e3d8 Mon Sep 17 00:00:00 2001 From: Tony Kipkemboi Date: Wed, 16 Oct 2024 10:57:41 -0400 Subject: [PATCH] Upgrade docs to mirror change from `Poetry` to `UV` (#1451) * Update docs to use instead of * Add Flows YouTube tutorial & link images --- docs/concepts/flows.mdx | 15 +- docs/concepts/pipeline.mdx | 277 ------------------ ...e-a-New-CrewAI-Pipeline-Template-Method.md | 163 ----------- ...rt-a-New-CrewAI-Project-Template-Method.md | 236 --------------- docs/how-to/agentops-observability.mdx | 8 +- docs/how-to/langtrace-observability.mdx | 8 +- docs/images/crewai-run-poetry-error.png | Bin 0 -> 106690 bytes docs/images/crewai-update.png | Bin 0 -> 50843 bytes docs/installation.mdx | 33 ++- docs/introduction.mdx | 2 +- docs/mint.json | 9 +- docs/quickstart.mdx | 73 ++++- 12 files changed, 116 insertions(+), 708 deletions(-) delete mode 100644 docs/concepts/pipeline.mdx delete mode 100644 docs/getting-started/Create-a-New-CrewAI-Pipeline-Template-Method.md delete mode 100644 docs/getting-started/Start-a-New-CrewAI-Project-Template-Method.md create mode 100644 docs/images/crewai-run-poetry-error.png create mode 100644 docs/images/crewai-update.png diff --git a/docs/concepts/flows.mdx b/docs/concepts/flows.mdx index 1ea9db094..65cbb95c2 100644 --- a/docs/concepts/flows.mdx +++ b/docs/concepts/flows.mdx @@ -653,4 +653,17 @@ If you're interested in exploring additional examples of flows, we have a variet 4. **Meeting Assistant Flow**: This flow demonstrates how to broadcast one event to trigger multiple follow-up actions. For instance, after a meeting is completed, the flow can update a Trello board, send a Slack message, and save the results. It's a great example of handling multiple outcomes from a single event, making it ideal for comprehensive task management and notification systems. [View Example](https://github.com/crewAIInc/crewAI-examples/tree/main/meeting_assistant_flow) -By exploring these examples, you can gain insights into how to leverage CrewAI Flows for various use cases, from automating repetitive tasks to managing complex, multi-step processes with dynamic decision-making and human feedback. \ No newline at end of file +By exploring these examples, you can gain insights into how to leverage CrewAI Flows for various use cases, from automating repetitive tasks to managing complex, multi-step processes with dynamic decision-making and human feedback. + +Also, check out our YouTube video on how to use flows in CrewAI below! + + \ No newline at end of file diff --git a/docs/concepts/pipeline.mdx b/docs/concepts/pipeline.mdx deleted file mode 100644 index 67dae8cc0..000000000 --- a/docs/concepts/pipeline.mdx +++ /dev/null @@ -1,277 +0,0 @@ ---- -title: Pipelines -description: Understanding and utilizing pipelines in the crewAI framework for efficient multi-stage task processing. -icon: timeline-arrow ---- - -## What is a Pipeline? - -A pipeline in CrewAI represents a structured workflow that allows for the sequential or parallel execution of multiple crews. It provides a way to organize complex processes involving multiple stages, where the output of one stage can serve as input for subsequent stages. - -## Key Terminology - -Understanding the following terms is crucial for working effectively with pipelines: - -- **Stage**: A distinct part of the pipeline, which can be either sequential (a single crew) or parallel (multiple crews executing concurrently). -- **Kickoff**: A specific execution of the pipeline for a given set of inputs, representing a single instance of processing through the pipeline. -- **Branch**: Parallel executions within a stage (e.g., concurrent crew operations). -- **Trace**: The journey of an individual input through the entire pipeline, capturing the path and transformations it undergoes. - -Example pipeline structure: - -```bash Pipeline -crew1 >> [crew2, crew3] >> crew4 -``` - -This represents a pipeline with three stages: - -1. A sequential stage (crew1) -2. A parallel stage with two branches (crew2 and crew3 executing concurrently) -3. Another sequential stage (crew4) - -Each input creates its own kickoff, flowing through all stages of the pipeline. Multiple kickoffs can be processed concurrently, each following the defined pipeline structure. - -## Pipeline Attributes - -| Attribute | Parameters | Description | -| :--------- | :---------- | :----------------------------------------------------------------------------------------------------------------- | -| **Stages** | `stages` | A list of `PipelineStage` (crews, lists of crews, or routers) representing the stages to be executed in sequence. | - -## Creating a Pipeline - -When creating a pipeline, you define a series of stages, each consisting of either a single crew or a list of crews for parallel execution. -The pipeline ensures that each stage is executed in order, with the output of one stage feeding into the next. - -### Example: Assembling a Pipeline - -```python -from crewai import Crew, Process, Pipeline - -# Define your crews -research_crew = Crew( - agents=[researcher], - tasks=[research_task], - process=Process.sequential -) - -analysis_crew = Crew( - agents=[analyst], - tasks=[analysis_task], - process=Process.sequential -) - -writing_crew = Crew( - agents=[writer], - tasks=[writing_task], - process=Process.sequential -) - -# Assemble the pipeline -my_pipeline = Pipeline( - stages=[research_crew, analysis_crew, writing_crew] -) -``` - -## Pipeline Methods - -| Method | Description | -| :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **kickoff** | Executes the pipeline, processing all stages and returning the results. This method initiates one or more kickoffs through the pipeline, handling the flow of data between stages. | -| **process_runs** | Runs the pipeline for each input provided, handling the flow and transformation of data between stages. | - -## Pipeline Output - -The output of a pipeline in the CrewAI framework is encapsulated within the `PipelineKickoffResult` class. -This class provides a structured way to access the results of the pipeline's execution, including various formats such as raw strings, JSON, and Pydantic models. - -### Pipeline Output Attributes - -| Attribute | Parameters | Type | Description | -| :-------------- | :------------ | :------------------------ | :-------------------------------------------------------------------------------------------------------- | -| **ID** | `id` | `UUID4` | A unique identifier for the pipeline output. | -| **Run Results** | `run_results` | `List[PipelineRunResult]` | A list of `PipelineRunResult` objects, each representing the output of a single run through the pipeline. | - -### Pipeline Output Methods - -| Method/Property | Description | -| :----------------- | :----------------------------------------------------- | -| **add_run_result** | Adds a `PipelineRunResult` to the list of run results. | - -### Pipeline Run Result Attributes - -| Attribute | Parameters | Type | Description | -| :---------------- | :-------------- | :------------------------- | :-------------------------------------------------------------------------------------------- | -| **ID** | `id` | `UUID4` | A unique identifier for the run result. | -| **Raw** | `raw` | `str` | The raw output of the final stage in the pipeline kickoff. | -| **Pydantic** | `pydantic` | `Any` | A Pydantic model object representing the structured output of the final stage, if applicable. | -| **JSON Dict** | `json_dict` | `Union[Dict[str, Any], None]` | A dictionary representing the JSON output of the final stage, if applicable. | -| **Token Usage** | `token_usage` | `Dict[str, UsageMetrics]` | A summary of token usage across all stages of the pipeline kickoff. | -| **Trace** | `trace` | `List[Any]` | A trace of the journey of inputs through the pipeline kickoff. | -| **Crews Outputs** | `crews_outputs` | `List[CrewOutput]` | A list of `CrewOutput` objects, representing the outputs from each crew in the pipeline kickoff. | - -### Pipeline Run Result Methods and Properties - -| Method/Property | Description | -| :-------------- | :------------------------------------------------------------------------------------------------------- | -| **json** | Returns the JSON string representation of the run result if the output format of the final task is JSON. | -| **to_dict** | Converts the JSON and Pydantic outputs to a dictionary. | -| **str** | Returns the string representation of the run result, prioritizing Pydantic, then JSON, then raw. | - -### Accessing Pipeline Outputs - -Once a pipeline has been executed, its output can be accessed through the `PipelineOutput` object returned by the `process_runs` method. -The `PipelineOutput` class provides access to individual `PipelineRunResult` objects, each representing a single run through the pipeline. - -#### Example - -```python -# Define input data for the pipeline -input_data = [ - {"initial_query": "Latest advancements in AI"}, - {"initial_query": "Future of robotics"} -] - -# Execute the pipeline -pipeline_output = await my_pipeline.process_runs(input_data) - -# Access the results -for run_result in pipeline_output.run_results: - print(f"Run ID: {run_result.id}") - print(f"Final Raw Output: {run_result.raw}") - if run_result.json_dict: - print(f"JSON Output: {json.dumps(run_result.json_dict, indent=2)}") - if run_result.pydantic: - print(f"Pydantic Output: {run_result.pydantic}") - print(f"Token Usage: {run_result.token_usage}") - print(f"Trace: {run_result.trace}") - print("Crew Outputs:") - for crew_output in run_result.crews_outputs: - print(f" Crew: {crew_output.raw}") - print("\n") -``` - -This example demonstrates how to access and work with the pipeline output, including individual run results and their associated data. - -## Using Pipelines - -Pipelines are particularly useful for complex workflows that involve multiple stages of processing, analysis, or content generation. They allow you to: - -1. **Sequence Operations**: Execute crews in a specific order, ensuring that the output of one crew is available as input to the next. -2. **Parallel Processing**: Run multiple crews concurrently within a stage for increased efficiency. -3. **Manage Complex Workflows**: Break down large tasks into smaller, manageable steps executed by specialized crews. - -### Example: Running a Pipeline - -```python -# Define input data for the pipeline -input_data = [{"initial_query": "Latest advancements in AI"}] - -# Execute the pipeline, initiating a run for each input -results = await my_pipeline.process_runs(input_data) - -# Access the results -for result in results: - print(f"Final Output: {result.raw}") - print(f"Token Usage: {result.token_usage}") - print(f"Trace: {result.trace}") # Shows the path of the input through all stages -``` - -## Advanced Features - -### Parallel Execution within Stages - -You can define parallel execution within a stage by providing a list of crews, creating multiple branches: - -```python -parallel_analysis_crew = Crew(agents=[financial_analyst], tasks=[financial_analysis_task]) -market_analysis_crew = Crew(agents=[market_analyst], tasks=[market_analysis_task]) - -my_pipeline = Pipeline( - stages=[ - research_crew, - [parallel_analysis_crew, market_analysis_crew], # Parallel execution (branching) - writing_crew - ] -) -``` - -### Routers in Pipelines - -Routers are a powerful feature in crewAI pipelines that allow for dynamic decision-making and branching within your workflow. -They enable you to direct the flow of execution based on specific conditions or criteria, making your pipelines more flexible and adaptive. - -#### What is a Router? - -A router in crewAI is a special component that can be included as a stage in your pipeline. It evaluates the input data and determines which path the execution should take next. -This allows for conditional branching in your pipeline, where different crews or sub-pipelines can be executed based on the router's decision. - -#### Key Components of a Router - -1. **Routes**: A dictionary of named routes, each associated with a condition and a pipeline to execute if the condition is met. -2. **Default Route**: A fallback pipeline that is executed if none of the defined route conditions are met. - -#### Creating a Router - -Here's an example of how to create a router: - -```python -from crewai import Router, Route, Pipeline, Crew, Agent, Task - -# Define your agents -classifier = Agent(name="Classifier", role="Email Classifier") -urgent_handler = Agent(name="Urgent Handler", role="Urgent Email Processor") -normal_handler = Agent(name="Normal Handler", role="Normal Email Processor") - -# Define your tasks -classify_task = Task(description="Classify the email based on its content and metadata.") -urgent_task = Task(description="Process and respond to urgent email quickly.") -normal_task = Task(description="Process and respond to normal email thoroughly.") - -# Define your crews -classification_crew = Crew(agents=[classifier], tasks=[classify_task]) # classify email between high and low urgency 1-10 -urgent_crew = Crew(agents=[urgent_handler], tasks=[urgent_task]) -normal_crew = Crew(agents=[normal_handler], tasks=[normal_task]) - -# Create pipelines for different urgency levels -urgent_pipeline = Pipeline(stages=[urgent_crew]) -normal_pipeline = Pipeline(stages=[normal_crew]) - -# Create a router -email_router = Router( - routes={ - "high_urgency": Route( - condition=lambda x: x.get("urgency_score", 0) > 7, - pipeline=urgent_pipeline - ), - "low_urgency": Route( - condition=lambda x: x.get("urgency_score", 0) <= 7, - pipeline=normal_pipeline - ) - }, - default=Pipeline(stages=[normal_pipeline]) # Default to just normal if no urgency score -) - -# Use the router in a main pipeline -main_pipeline = Pipeline(stages=[classification_crew, email_router]) - -inputs = [{"email": "..."}, {"email": "..."}] # List of email data - -main_pipeline.kickoff(inputs=inputs) -``` - -In this example, the router decides between an urgent pipeline and a normal pipeline based on the urgency score of the email. If the urgency score is greater than 7, -it routes to the urgent pipeline; otherwise, it uses the normal pipeline. If the input doesn't include an urgency score, it defaults to just the classification crew. - -#### Benefits of Using Routers - -1. **Dynamic Workflow**: Adapt your pipeline's behavior based on input characteristics or intermediate results. -2. **Efficiency**: Route urgent tasks to quicker processes, reserving more thorough pipelines for less time-sensitive inputs. -3. **Flexibility**: Easily modify or extend your pipeline's logic without changing the core structure. -4. **Scalability**: Handle a wide range of email types and urgency levels with a single pipeline structure. - -### Error Handling and Validation - -The `Pipeline` class includes validation mechanisms to ensure the robustness of the pipeline structure: - -- Validates that stages contain only Crew instances or lists of Crew instances. -- Prevents double nesting of stages to maintain a clear structure. \ No newline at end of file diff --git a/docs/getting-started/Create-a-New-CrewAI-Pipeline-Template-Method.md b/docs/getting-started/Create-a-New-CrewAI-Pipeline-Template-Method.md deleted file mode 100644 index 6f30698c2..000000000 --- a/docs/getting-started/Create-a-New-CrewAI-Pipeline-Template-Method.md +++ /dev/null @@ -1,163 +0,0 @@ -# Creating a CrewAI Pipeline Project - -Welcome to the comprehensive guide for creating a new CrewAI pipeline project. This document will walk you through the steps to create, customize, and run your CrewAI pipeline project, ensuring you have everything you need to get started. - -To learn more about CrewAI pipelines, visit the [CrewAI documentation](https://docs.crewai.com/core-concepts/Pipeline/). - -## Prerequisites - -Before getting started with CrewAI pipelines, make sure that you have installed CrewAI via pip: - -```shell -$ pip install crewai crewai-tools -``` - -The same prerequisites for virtual environments and Code IDEs apply as in regular CrewAI projects. - -## Creating a New Pipeline Project - -To create a new CrewAI pipeline project, you have two options: - -1. For a basic pipeline template: - -```shell -$ crewai create pipeline -``` - -2. For a pipeline example that includes a router: - -```shell -$ crewai create pipeline --router -``` - -These commands will create a new project folder with the following structure: - -``` -/ -├── README.md -├── uv.lock -├── pyproject.toml -├── src/ -│ └── / -│ ├── __init__.py -│ ├── main.py -│ ├── crews/ -│ │ ├── crew1/ -│ │ │ ├── crew1.py -│ │ │ └── config/ -│ │ │ ├── agents.yaml -│ │ │ └── tasks.yaml -│ │ ├── crew2/ -│ │ │ ├── crew2.py -│ │ │ └── config/ -│ │ │ ├── agents.yaml -│ │ │ └── tasks.yaml -│ ├── pipelines/ -│ │ ├── __init__.py -│ │ ├── pipeline1.py -│ │ └── pipeline2.py -│ └── tools/ -│ ├── __init__.py -│ └── custom_tool.py -└── tests/ -``` - -## Customizing Your Pipeline Project - -To customize your pipeline project, you can: - -1. Modify the crew files in `src//crews/` to define your agents and tasks for each crew. -2. Modify the pipeline files in `src//pipelines/` to define your pipeline structure. -3. Modify `src//main.py` to set up and run your pipelines. -4. Add your environment variables into the `.env` file. - -## Example 1: Defining a Two-Stage Sequential Pipeline - -Here's an example of how to define a pipeline with sequential stages in `src//pipelines/pipeline.py`: - -```python -from crewai import Pipeline -from crewai.project import PipelineBase -from ..crews.research_crew.research_crew import ResearchCrew -from ..crews.write_x_crew.write_x_crew import WriteXCrew - -@PipelineBase -class SequentialPipeline: - def __init__(self): - # Initialize crews - self.research_crew = ResearchCrew().crew() - self.write_x_crew = WriteXCrew().crew() - - def create_pipeline(self): - return Pipeline( - stages=[ - self.research_crew, - self.write_x_crew - ] - ) - - async def kickoff(self, inputs): - pipeline = self.create_pipeline() - results = await pipeline.kickoff(inputs) - return results -``` - -## Example 2: Defining a Two-Stage Pipeline with Parallel Execution - -```python -from crewai import Pipeline -from crewai.project import PipelineBase -from ..crews.research_crew.research_crew import ResearchCrew -from ..crews.write_x_crew.write_x_crew import WriteXCrew -from ..crews.write_linkedin_crew.write_linkedin_crew import WriteLinkedInCrew - -@PipelineBase -class ParallelExecutionPipeline: - def __init__(self): - # Initialize crews - self.research_crew = ResearchCrew().crew() - self.write_x_crew = WriteXCrew().crew() - self.write_linkedin_crew = WriteLinkedInCrew().crew() - - def create_pipeline(self): - return Pipeline( - stages=[ - self.research_crew, - [self.write_x_crew, self.write_linkedin_crew] # Parallel execution - ] - ) - - async def kickoff(self, inputs): - pipeline = self.create_pipeline() - results = await pipeline.kickoff(inputs) - return results -``` - -### Annotations - -The main annotation you'll use for pipelines is `@PipelineBase`. This annotation is used to decorate your pipeline classes, similar to how `@CrewBase` is used for crews. - -## Installing Dependencies - -To install the dependencies for your project, use `uv` the install command is optional because when running `crewai run`, it will automatically install the dependencies for you: - -```shell -$ cd -$ crewai install (optional) -``` - -## Running Your Pipeline Project - -To run your pipeline project, use the following command: - -```shell -$ crewai run -``` - -This will initialize your pipeline and begin task execution as defined in your `main.py` file. - -## Deploying Your Pipeline Project - -Pipelines can be deployed in the same way as regular CrewAI projects. The easiest way is through [CrewAI+](https://www.crewai.com/crewaiplus), where you can deploy your pipeline in a few clicks. - -Remember, when working with pipelines, you're orchestrating multiple crews to work together in a sequence or parallel fashion. This allows for more complex workflows and information processing tasks. diff --git a/docs/getting-started/Start-a-New-CrewAI-Project-Template-Method.md b/docs/getting-started/Start-a-New-CrewAI-Project-Template-Method.md deleted file mode 100644 index a0482c175..000000000 --- a/docs/getting-started/Start-a-New-CrewAI-Project-Template-Method.md +++ /dev/null @@ -1,236 +0,0 @@ ---- - -title: Starting a New CrewAI Project - Using Template - -description: A comprehensive guide to starting a new CrewAI project, including the latest updates and project setup methods. ---- - -# Starting Your CrewAI Project - -Welcome to the ultimate guide for starting a new CrewAI project. This document will walk you through the steps to create, customize, and run your CrewAI project, ensuring you have everything you need to get started. - -Before we start, there are a couple of things to note: - -1. CrewAI is a Python package and requires Python >=3.10 and <=3.13 to run. -2. The preferred way of setting up CrewAI is using the `crewai create crew` command. This will create a new project folder and install a skeleton template for you to work on. - -## Prerequisites - -Before getting started with CrewAI, make sure that you have installed it via pip: - -```shell -$ pip install 'crewai[tools]' -``` - -## Creating a New Project - -In this example, we will be using `uv` as our virtual environment manager. - -To create a new CrewAI project, run the following CLI command: - -```shell -$ crewai create crew -``` - -This command will create a new project folder with the following structure: - -```shell -my_project/ -├── .gitignore -├── pyproject.toml -├── README.md -└── src/ - └── my_project/ - ├── __init__.py - ├── main.py - ├── crew.py - ├── tools/ - │ ├── custom_tool.py - │ └── __init__.py - └── config/ - ├── agents.yaml - └── tasks.yaml -``` - -You can now start developing your project by editing the files in the `src/my_project` folder. The `main.py` file is the entry point of your project, and the `crew.py` file is where you define your agents and tasks. - -## Customizing Your Project - -To customize your project, you can: -- Modify `src/my_project/config/agents.yaml` to define your agents. -- Modify `src/my_project/config/tasks.yaml` to define your tasks. -- Modify `src/my_project/crew.py` to add your own logic, tools, and specific arguments. -- Modify `src/my_project/main.py` to add custom inputs for your agents and tasks. -- Add your environment variables into the `.env` file. - -### Example: Defining Agents and Tasks - -#### agents.yaml - -```yaml -researcher: - role: > - Job Candidate Researcher - goal: > - Find potential candidates for the job - backstory: > - You are adept at finding the right candidates by exploring various online - resources. Your skill in identifying suitable candidates ensures the best - match for job positions. -``` - -#### tasks.yaml - -```yaml -research_candidates_task: - description: > - Conduct thorough research to find potential candidates for the specified job. - Utilize various online resources and databases to gather a comprehensive list of potential candidates. - Ensure that the candidates meet the job requirements provided. - - Job Requirements: - {job_requirements} - expected_output: > - A list of 10 potential candidates with their contact information and brief profiles highlighting their suitability. - agent: researcher # THIS NEEDS TO MATCH THE AGENT NAME IN THE AGENTS.YAML FILE AND THE AGENT DEFINED IN THE crew.py FILE - context: # THESE NEED TO MATCH THE TASK NAMES DEFINED ABOVE AND THE TASKS.YAML FILE AND THE TASK DEFINED IN THE crew.py FILE - - researcher -``` - -### Referencing Variables: - -Your defined functions with the same name will be used. For example, you can reference the agent for specific tasks from `tasks.yaml` file. Ensure your annotated agent and function name are the same; otherwise, your task won't recognize the reference properly. - -#### Example References - -`agents.yaml` - -```yaml -email_summarizer: - role: > - Email Summarizer - goal: > - Summarize emails into a concise and clear summary - backstory: > - You will create a 5 bullet point summary of the report - llm: mixtal_llm -``` - -`tasks.yaml` - -```yaml -email_summarizer_task: - description: > - Summarize the email into a 5 bullet point summary - expected_output: > - A 5 bullet point summary of the email - agent: email_summarizer - context: - - reporting_task - - research_task -``` - -Use the annotations to properly reference the agent and task in the `crew.py` file. - -### Annotations include: - -* `@agent` -* `@task` -* `@crew` -* `@tool` -* `@callback` -* `@output_json` -* `@output_pydantic` -* `@cache_handler` - -`crew.py` - -```python -# ... -@agent -def email_summarizer(self) -> Agent: - return Agent( - config=self.agents_config["email_summarizer"], - ) - -@task -def email_summarizer_task(self) -> Task: - return Task( - config=self.tasks_config["email_summarizer_task"], - ) -# ... -``` - -## Installing Dependencies - -To install the dependencies for your project, you can use `uv`. Running the following command is optional since when running `crewai run`, it will automatically install the dependencies for you. - -```shell -$ cd my_project -$ crewai install (optional) -``` - -This will install the dependencies specified in the `pyproject.toml` file. - -## Interpolating Variables - -Any variable interpolated in your `agents.yaml` and `tasks.yaml` files like `{variable}` will be replaced by the value of the variable in the `main.py` file. - -#### tasks.yaml - -```yaml -research_task: - description: > - Conduct a thorough research about the customer and competitors in the context - of {customer_domain}. - Make sure you find any interesting and relevant information given the - current year is 2024. - expected_output: > - A complete report on the customer and their customers and competitors, - including their demographics, preferences, market positioning and audience engagement. -``` - -#### main.py - -```python -# main.py -def run(): - inputs = { - "customer_domain": "crewai.com" - } - MyProjectCrew(inputs).crew().kickoff(inputs=inputs) -``` - -## Running Your Project - -To run your project, use the following command: - -```shell -$ crewai run -``` - -This will initialize your crew of AI agents and begin task execution as defined in your configuration in the `main.py` file. - -### Replay Tasks from Latest Crew Kickoff - -CrewAI now includes a replay feature that allows you to list the tasks from the last run and replay from a specific one. To use this feature, run: - -```shell -$ crewai replay -``` - -Replace `` with the ID of the task you want to replay. - -### Reset Crew Memory - -If you need to reset the memory of your crew before running it again, you can do so by calling the reset memory feature: - -```shell -$ crewai reset-memory -``` - -This will clear the crew's memory, allowing for a fresh start. - -## Deploying Your Project - -The easiest way to deploy your crew is through [CrewAI+](https://www.crewai.com/crewaiplus), where you can deploy your crew in a few clicks. diff --git a/docs/how-to/agentops-observability.mdx b/docs/how-to/agentops-observability.mdx index 605cfda14..ce50d1fc5 100644 --- a/docs/how-to/agentops-observability.mdx +++ b/docs/how-to/agentops-observability.mdx @@ -25,9 +25,9 @@ It provides a dashboard for tracking agent performance, session replays, and cus Additionally, AgentOps provides session drilldowns for viewing Crew agent interactions, LLM calls, and tool usage in real-time. This feature is useful for debugging and understanding how agents interact with users as well as other agents. -![Overview of a select series of agent session runs](images/agentops-overview.png) -![Overview of session drilldowns for examining agent runs](images/agentops-session.png) -![Viewing a step-by-step agent replay execution graph](images/agentops-replay.png) +![Overview of a select series of agent session runs](/images/agentops-overview.png) +![Overview of session drilldowns for examining agent runs](/images/agentops-session.png) +![Viewing a step-by-step agent replay execution graph](/images/agentops-replay.png) ### Features @@ -123,4 +123,4 @@ For feature requests or bug reports, please reach out to the AgentOps team on th   •   🖇️ AgentOps Dashboard   •   -📙 Documentation \ No newline at end of file +📙 Documentation diff --git a/docs/how-to/langtrace-observability.mdx b/docs/how-to/langtrace-observability.mdx index fddb2cd65..c8bb15259 100644 --- a/docs/how-to/langtrace-observability.mdx +++ b/docs/how-to/langtrace-observability.mdx @@ -10,9 +10,9 @@ Langtrace is an open-source, external tool that helps you set up observability a While not built directly into CrewAI, Langtrace can be used alongside CrewAI to gain deep visibility into the cost, latency, and performance of your CrewAI Agents. This integration allows you to log hyperparameters, monitor performance regressions, and establish a process for continuous improvement of your Agents. -![Overview of a select series of agent session runs](images/langtrace1.png) -![Overview of agent traces](images/langtrace2.png) -![Overview of llm traces in details](images/langtrace3.png) +![Overview of a select series of agent session runs](/images/langtrace1.png) +![Overview of agent traces](/images/langtrace2.png) +![Overview of llm traces in details](/images/langtrace3.png) ## Setup Instructions @@ -69,4 +69,4 @@ This integration allows you to log hyperparameters, monitor performance regressi 6. **Testing and Evaluations** - - Set up automated tests for your CrewAI agents and tasks. \ No newline at end of file + - Set up automated tests for your CrewAI agents and tasks. diff --git a/docs/images/crewai-run-poetry-error.png b/docs/images/crewai-run-poetry-error.png new file mode 100644 index 0000000000000000000000000000000000000000..07d3a1d903f0ef5566b580bda5eb15952c0789e2 GIT binary patch literal 106690 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

994*c8cPMt4&*6x-E-tBgK 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 literal 0 HcmV?d00001 diff --git a/docs/installation.mdx b/docs/installation.mdx index b5d3ef901..ec3da38b7 100644 --- a/docs/installation.mdx +++ b/docs/installation.mdx @@ -1,11 +1,9 @@ --- -title: Installation & Setup +title: Installation description: icon: wrench --- -## Install CrewAI - This guide will walk you through the installation process for CrewAI and its dependencies. CrewAI is a flexible and powerful AI framework that enables you to create and manage AI agents, tools, and tasks efficiently. Let's get started! 🚀 @@ -15,17 +13,8 @@ Let's get started! 🚀 - - First, if you haven't already, install [Poetry](https://python-poetry.org/). - CrewAI uses Poetry for dependency management and package handling, offering a seamless setup and execution experience. - - ```shell Terminal - pip install poetry - ``` - - - Then, install the main CrewAI package: + Install the main CrewAI package with the following command: ```shell Terminal pip install crewai @@ -45,15 +34,29 @@ Let's get started! 🚀 - To upgrade CrewAI and CrewAI Tools to the latest version, run the following command: + To upgrade CrewAI and CrewAI Tools to the latest version, run the following command ```shell Terminal pip install --upgrade crewai crewai-tools ``` + + 1. If you're using an older version of CrewAI, you may receive a warning about using `Poetry` for dependency management. + ![Error from older versions](./images/crewai-run-poetry-error.png) + + 2. In this case, you'll need to run the command below to update your project. + This command will migrate your project to use [UV](https://github.com/astral-sh/uv) and update the necessary files. + ```shell Terminal + crewai update + ``` + 3. After running the command above, you should see the following output: + ![Successfully migrated to UV](./images/crewai-update.png) + + 4. You're all set! You can now proceed to the next step! 🎉 + - To verify that `crewai` and `crewai-tools` are installed correctly, run the following command: + To verify that `crewai` and `crewai-tools` are installed correctly, run the following command ```shell Terminal pip freeze | grep crewai diff --git a/docs/introduction.mdx b/docs/introduction.mdx index 4e2bdca31..d657c9fb2 100644 --- a/docs/introduction.mdx +++ b/docs/introduction.mdx @@ -45,5 +45,5 @@ By fostering collaborative intelligence, CrewAI empowers agents to work together ## Next Step -- [Install CrewAI](/installation) +- [Install CrewAI](/installation) to get started with your first agent. diff --git a/docs/mint.json b/docs/mint.json index e57397ce4..3ea9f5baf 100644 --- a/docs/mint.json +++ b/docs/mint.json @@ -66,18 +66,17 @@ "pages": [ "concepts/agents", "concepts/tasks", - "concepts/tools", - "concepts/processes", "concepts/crews", + "concepts/flows", + "concepts/llms", + "concepts/processes", "concepts/collaboration", - "concepts/pipeline", "concepts/training", "concepts/memory", "concepts/planning", "concepts/testing", - "concepts/flows", "concepts/cli", - "concepts/llms", + "concepts/tools", "concepts/langchain-tools", "concepts/llamaindex-tools" ] diff --git a/docs/quickstart.mdx b/docs/quickstart.mdx index 2f39066b8..49a690093 100644 --- a/docs/quickstart.mdx +++ b/docs/quickstart.mdx @@ -26,6 +26,7 @@ Follow the steps below to get crewing! 🚣‍♂️ You can also modify the agents as needed to fit your use case or copy and paste as is to your project. + Any variable interpolated in your `agents.yaml` and `tasks.yaml` files like `{topic}` will be replaced by the value of the variable in the `main.py` file. ```yaml agents.yaml # src/latest_ai_development/config/agents.yaml @@ -124,7 +125,7 @@ Follow the steps below to get crewing! 🚣‍♂️ ``` - For example, you can pass the `topic` input to your crew to customize the research and reporting to medical llms or any other topic. + For example, you can pass the `topic` input to your crew to customize the research and reporting. ```python main.py #!/usr/bin/env python # src/latest_ai_development/main.py @@ -233,6 +234,74 @@ Follow the steps below to get crewing! 🚣‍♂️ +### Note on Consistency in Naming + +The names you use in your YAML files (`agents.yaml` and `tasks.yaml`) should match the method names in your Python code. +For example, you can reference the agent for specific tasks from `tasks.yaml` file. +This naming consistency allows CrewAI to automatically link your configurations with your code; otherwise, your task won't recognize the reference properly. + +#### Example References + + + Note how we use the same name for the agent in the `agents.yaml` (`email_summarizer`) file as the method name in the `crew.py` (`email_summarizer`) file. + + +```yaml agents.yaml +email_summarizer: + role: > + Email Summarizer + goal: > + Summarize emails into a concise and clear summary + backstory: > + You will create a 5 bullet point summary of the report + llm: mixtal_llm +``` + + + Note how we use the same name for the agent in the `tasks.yaml` (`email_summarizer_task`) file as the method name in the `crew.py` (`email_summarizer_task`) file. + + +```yaml tasks.yaml +email_summarizer_task: + description: > + Summarize the email into a 5 bullet point summary + expected_output: > + A 5 bullet point summary of the email + agent: email_summarizer + context: + - reporting_task + - research_task +``` + +Use the annotations to properly reference the agent and task in the `crew.py` file. + +### Annotations include: + +* `@agent` +* `@task` +* `@crew` +* `@tool` +* `@callback` +* `@output_json` +* `@output_pydantic` +* `@cache_handler` + +```python crew.py +# ... +@agent +def email_summarizer(self) -> Agent: + return Agent( + config=self.agents_config["email_summarizer"], + ) + +@task +def email_summarizer_task(self) -> Task: + return Task( + config=self.tasks_config["email_summarizer_task"], + ) +# ... +``` + In addition to the [sequential process](../how-to/sequential-process), you can use the [hierarchical process](../how-to/hierarchical-process), which automatically assigns a manager to the defined crew to properly coordinate the planning and execution of tasks through delegation and validation of results. @@ -241,7 +310,7 @@ You can learn more about the core concepts [here](/concepts). ### Replay Tasks from Latest Crew Kickoff -CrewAI now includes a replay feature that allows you to list the tasks from the last run and replay from a specific one. To use this feature, run: +CrewAI now includes a replay feature that allows you to list the tasks from the last run and replay from a specific one. To use this feature, run. ```shell crewai replay