diff --git a/docs/docs.json b/docs/docs.json index 907c9d174..015a24529 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -341,11 +341,12 @@ "groups": [ { "group": "Getting Started", - "pages": ["en/api-reference/introduction"] - }, - { - "group": "Endpoints", - "openapi": "https://raw.githubusercontent.com/crewAIInc/crewAI/main/docs/enterprise-api.en.yaml" + "pages": [ + "en/api-reference/introduction", + "en/api-reference/inputs", + "en/api-reference/kickoff", + "en/api-reference/status" + ] } ] }, @@ -680,11 +681,12 @@ "groups": [ { "group": "Começando", - "pages": ["pt-BR/api-reference/introduction"] - }, - { - "group": "Endpoints", - "openapi": "https://raw.githubusercontent.com/crewAIInc/crewAI/main/docs/enterprise-api.pt-BR.yaml" + "pages": [ + "pt-BR/api-reference/introduction", + "pt-BR/api-reference/inputs", + "pt-BR/api-reference/kickoff", + "pt-BR/api-reference/status" + ] } ] }, @@ -1026,11 +1028,12 @@ "groups": [ { "group": "시작 안내", - "pages": ["ko/api-reference/introduction"] - }, - { - "group": "Endpoints", - "openapi": "https://raw.githubusercontent.com/crewAIInc/crewAI/main/docs/enterprise-api.ko.yaml" + "pages": [ + "ko/api-reference/introduction", + "ko/api-reference/inputs", + "ko/api-reference/kickoff", + "ko/api-reference/status" + ] } ] }, @@ -1081,6 +1084,10 @@ "indexing": "all" }, "redirects": [ + { + "source": "/api-reference", + "destination": "/en/api-reference/introduction" + }, { "source": "/introduction", "destination": "/en/introduction" @@ -1133,6 +1140,18 @@ "source": "/api-reference/:path*", "destination": "/en/api-reference/:path*" }, + { + "source": "/en/api-reference", + "destination": "/en/api-reference/introduction" + }, + { + "source": "/pt-BR/api-reference", + "destination": "/pt-BR/api-reference/introduction" + }, + { + "source": "/ko/api-reference", + "destination": "/ko/api-reference/introduction" + }, { "source": "/examples/:path*", "destination": "/en/examples/:path*" diff --git a/docs/en/api-reference/inputs.mdx b/docs/en/api-reference/inputs.mdx new file mode 100644 index 000000000..0f177e5ad --- /dev/null +++ b/docs/en/api-reference/inputs.mdx @@ -0,0 +1,7 @@ +--- +title: "GET /inputs" +description: "Get required inputs for your crew" +openapi: "/enterprise-api.en.yaml GET /inputs" +--- + + diff --git a/docs/en/api-reference/kickoff.mdx b/docs/en/api-reference/kickoff.mdx new file mode 100644 index 000000000..1a879f7df --- /dev/null +++ b/docs/en/api-reference/kickoff.mdx @@ -0,0 +1,7 @@ +--- +title: "POST /kickoff" +description: "Start a crew execution" +openapi: "/enterprise-api.en.yaml POST /kickoff" +--- + + diff --git a/docs/en/api-reference/status.mdx b/docs/en/api-reference/status.mdx new file mode 100644 index 000000000..a07894346 --- /dev/null +++ b/docs/en/api-reference/status.mdx @@ -0,0 +1,7 @@ +--- +title: "GET /status/{kickoff_id}" +description: "Get execution status" +openapi: "/enterprise-api.en.yaml GET /status/{kickoff_id}" +--- + + diff --git a/docs/en/concepts/training.mdx b/docs/en/concepts/training.mdx index a6a3fd447..a70506ab7 100644 --- a/docs/en/concepts/training.mdx +++ b/docs/en/concepts/training.mdx @@ -21,13 +21,17 @@ To use the training feature, follow these steps: 3. Run the following command: ```shell -crewai train -n (optional) +crewai train -n -f ``` Replace `` with the desired number of training iterations and `` with the appropriate filename ending with `.pkl`. -### Training Your Crew Programmatically + + If you omit `-f`, the output defaults to `trained_agents_data.pkl` in the current working directory. You can pass an absolute path to control where the file is written. + + +### Training your Crew programmatically To train your crew programmatically, use the following steps: @@ -51,19 +55,65 @@ except Exception as e: raise Exception(f"An error occurred while training the crew: {e}") ``` -### Key Points to Note +## How trained data is used by agents -- **Positive Integer Requirement:** Ensure that the number of iterations (`n_iterations`) is a positive integer. The code will raise a `ValueError` if this condition is not met. -- **Filename Requirement:** Ensure that the filename ends with `.pkl`. The code will raise a `ValueError` if this condition is not met. -- **Error Handling:** The code handles subprocess errors and unexpected exceptions, providing error messages to the user. +CrewAI uses the training artifacts in two ways: during training to incorporate your human feedback, and after training to guide agents with consolidated suggestions. -It is important to note that the training process may take some time, depending on the complexity of your agents and will also require your feedback on each iteration. +### Training data flow -Once the training is complete, your agents will be equipped with enhanced capabilities and knowledge, ready to tackle complex tasks and provide more consistent and valuable insights. +```mermaid +flowchart TD + A["Start training
CLI: crewai train -n -f
or Python: crew.train(...)"] --> B["Setup training mode
- task.human_input = true
- disable delegation
- init training_data.pkl + trained file"] -Remember to regularly update and retrain your agents to ensure they stay up-to-date with the latest information and advancements in the field. + subgraph "Iterations" + direction LR + C["Iteration i
initial_output"] --> D["User human_feedback"] + D --> E["improved_output"] + E --> F["Append to training_data.pkl
by agent_id and iteration"] + end -Happy training with CrewAI! 🚀 + B --> C + F --> G{"More iterations?"} + G -- "Yes" --> C + G -- "No" --> H["Evaluate per agent
aggregate iterations"] + + H --> I["Consolidate
suggestions[] + quality + final_summary"] + I --> J["Save by agent role to trained file
(default: trained_agents_data.pkl)"] + + J --> K["Normal (non-training) runs"] + K --> L["Auto-load suggestions
from trained_agents_data.pkl"] + L --> M["Append to prompt
for consistent improvements"] +``` + +### During training runs + +- On each iteration, the system records for every agent: + - `initial_output`: the agent’s first answer + - `human_feedback`: your inline feedback when prompted + - `improved_output`: the agent’s follow-up answer after feedback +- This data is stored in a working file named `training_data.pkl` keyed by the agent’s internal ID and iteration. +- While training is active, the agent automatically appends your prior human feedback to its prompt to enforce those instructions on subsequent attempts within the training session. + Training is interactive: tasks set `human_input = true`, so running in a non-interactive environment will block on user input. + +### After training completes + +- When `train(...)` finishes, CrewAI evaluates the collected training data per agent and produces a consolidated result containing: + - `suggestions`: clear, actionable instructions distilled from your feedback and the difference between initial/improved outputs + - `quality`: a 0–10 score capturing improvement + - `final_summary`: a step-by-step set of action items for future tasks +- These consolidated results are saved to the filename you pass to `train(...)` (default via CLI is `trained_agents_data.pkl`). Entries are keyed by the agent’s `role` so they can be applied across sessions. +- During normal (non-training) execution, each agent automatically loads its consolidated `suggestions` and appends them to the task prompt as mandatory instructions. This gives you consistent improvements without changing your agent definitions. + +### File summary + +- `training_data.pkl` (ephemeral, per-session): + - Structure: `agent_id -> { iteration_number: { initial_output, human_feedback, improved_output } }` + - Purpose: capture raw data and human feedback during training + - Location: saved in the current working directory (CWD) +- `trained_agents_data.pkl` (or your custom filename): + - Structure: `agent_role -> { suggestions: string[], quality: number, final_summary: string }` + - Purpose: persist consolidated guidance for future runs + - Location: written to the CWD by default; use `-f` to set a custom (including absolute) path ## Small Language Model Considerations @@ -129,3 +179,18 @@ Happy training with CrewAI! 🚀 + +### Key Points to Note + +- **Positive Integer Requirement:** Ensure that the number of iterations (`n_iterations`) is a positive integer. The code will raise a `ValueError` if this condition is not met. +- **Filename Requirement:** Ensure that the filename ends with `.pkl`. The code will raise a `ValueError` if this condition is not met. +- **Error Handling:** The code handles subprocess errors and unexpected exceptions, providing error messages to the user. +- Trained guidance is applied at prompt time; it does not modify your Python/YAML agent configuration. +- Agents automatically load trained suggestions from a file named `trained_agents_data.pkl` located in the current working directory. If you trained to a different filename, either rename it to `trained_agents_data.pkl` before running, or adjust the loader in code. +- You can change the output filename when calling `crewai train` with `-f/--filename`. Absolute paths are supported if you want to save outside the CWD. + +It is important to note that the training process may take some time, depending on the complexity of your agents and will also require your feedback on each iteration. + +Once the training is complete, your agents will be equipped with enhanced capabilities and knowledge, ready to tackle complex tasks and provide more consistent and valuable insights. + +Remember to regularly update and retrain your agents to ensure they stay up-to-date with the latest information and advancements in the field. diff --git a/docs/ko/api-reference/inputs.mdx b/docs/ko/api-reference/inputs.mdx new file mode 100644 index 000000000..b9c0d5f1e --- /dev/null +++ b/docs/ko/api-reference/inputs.mdx @@ -0,0 +1,7 @@ +--- +title: "GET /inputs" +description: "크루가 필요로 하는 입력 확인" +openapi: "/enterprise-api.ko.yaml GET /inputs" +--- + + diff --git a/docs/ko/api-reference/kickoff.mdx b/docs/ko/api-reference/kickoff.mdx new file mode 100644 index 000000000..b343466a2 --- /dev/null +++ b/docs/ko/api-reference/kickoff.mdx @@ -0,0 +1,7 @@ +--- +title: "POST /kickoff" +description: "크루 실행 시작" +openapi: "/enterprise-api.ko.yaml POST /kickoff" +--- + + diff --git a/docs/ko/api-reference/status.mdx b/docs/ko/api-reference/status.mdx new file mode 100644 index 000000000..7a7dbefad --- /dev/null +++ b/docs/ko/api-reference/status.mdx @@ -0,0 +1,7 @@ +--- +title: "GET /status/{kickoff_id}" +description: "실행 상태 조회" +openapi: "/enterprise-api.ko.yaml GET /status/{kickoff_id}" +--- + + diff --git a/docs/pt-BR/api-reference/inputs.mdx b/docs/pt-BR/api-reference/inputs.mdx new file mode 100644 index 000000000..c89b79d2a --- /dev/null +++ b/docs/pt-BR/api-reference/inputs.mdx @@ -0,0 +1,7 @@ +--- +title: "GET /inputs" +description: "Obter entradas necessárias para sua crew" +openapi: "/enterprise-api.pt-BR.yaml GET /inputs" +--- + + diff --git a/docs/pt-BR/api-reference/kickoff.mdx b/docs/pt-BR/api-reference/kickoff.mdx new file mode 100644 index 000000000..224969acf --- /dev/null +++ b/docs/pt-BR/api-reference/kickoff.mdx @@ -0,0 +1,7 @@ +--- +title: "POST /kickoff" +description: "Iniciar a execução da crew" +openapi: "/enterprise-api.pt-BR.yaml POST /kickoff" +--- + + diff --git a/docs/pt-BR/api-reference/status.mdx b/docs/pt-BR/api-reference/status.mdx new file mode 100644 index 000000000..d1af05493 --- /dev/null +++ b/docs/pt-BR/api-reference/status.mdx @@ -0,0 +1,7 @@ +--- +title: "GET /status/{kickoff_id}" +description: "Obter o status da execução" +openapi: "/enterprise-api.pt-BR.yaml GET /status/{kickoff_id}" +--- + +