diff --git a/docs/ko/enterprise/guides/deploy-crew.mdx b/docs/ko/enterprise/guides/deploy-crew.mdx deleted file mode 100644 index 720e5e2f7..000000000 --- a/docs/ko/enterprise/guides/deploy-crew.mdx +++ /dev/null @@ -1,305 +0,0 @@ ---- -title: "Crew 배포" -description: "CrewAI 엔터프라이즈에서 Crew 배포하기" -icon: "rocket" -mode: "wide" ---- - - - 로컬에서 또는 Crew Studio를 통해 crew를 생성한 후, 다음 단계는 이를 CrewAI AMP - 플랫폼에 배포하는 것입니다. 본 가이드에서는 다양한 배포 방법을 다루며, - 여러분의 워크플로우에 가장 적합한 방식을 선택할 수 있도록 안내합니다. - - -## 사전 준비 사항 - - - - 작동 중인 crew가 로컬에서 빌드되었거나 Crew Studio를 통해 생성되어 있어야 - 합니다. - - - crew 코드가 GitHub 저장소에 있어야 합니다(GitHub 연동 방식의 경우). - - - -## 옵션 1: CrewAI CLI를 사용한 배포 - -CLI는 로컬에서 개발된 crew를 Enterprise 플랫폼에 가장 빠르게 배포할 수 있는 방법을 제공합니다. - - - - 아직 설치하지 않았다면 CrewAI CLI를 설치하세요: - - ```bash - pip install crewai[tools] - ``` - - - CLI는 기본 CrewAI 패키지에 포함되어 있지만, `[tools]` 추가 옵션을 사용하면 모든 배포 종속성을 함께 설치할 수 있습니다. - - - - - - 먼저, CrewAI AMP 플랫폼에 CLI를 인증해야 합니다: - - ```bash - # 이미 CrewAI AMP 계정이 있거나 새로 생성하고 싶을 때: - crewai login - ``` - - 위 명령어를 실행하면 CLI가 다음을 진행합니다: - 1. URL과 고유 기기 코드를 표시합니다 - 2. 브라우저를 열어 인증 페이지로 이동합니다 - 3. 기기 확인을 요청합니다 - 4. 인증 과정을 완료합니다 - - 인증이 성공적으로 완료되면 터미널에 확인 메시지가 표시됩니다! - - - - - - 프로젝트 디렉터리에서 다음 명령어를 실행하세요: - - ```bash - crewai deploy create - ``` - - 이 명령어는 다음을 수행합니다: - 1. GitHub 저장소 정보를 감지합니다 - 2. 로컬 `.env` 파일의 환경 변수를 식별합니다 - 3. 이러한 변수를 Enterprise 플랫폼으로 안전하게 전송합니다 - 4. 고유 식별자가 부여된 새 배포를 만듭니다 - - 성공적으로 생성되면 다음과 같은 메시지가 표시됩니다: - ```shell - Deployment created successfully! - Name: your_project_name - Deployment ID: 01234567-89ab-cdef-0123-456789abcdef - Current Status: Deploy Enqueued - ``` - - - - - - 다음 명령어로 배포 상태를 추적할 수 있습니다: - - ```bash - crewai deploy status - ``` - - 빌드 과정의 상세 로그가 필요하다면: - - ```bash - crewai deploy logs - ``` - - - 첫 배포는 컨테이너 이미지를 빌드하므로 일반적으로 10~15분 정도 소요됩니다. 이후 배포는 훨씬 빠릅니다. - - - - - -## 추가 CLI 명령어 - -CrewAI CLI는 배포를 관리하기 위한 여러 명령어를 제공합니다: - -```bash -# 모든 배포 목록 확인 -crewai deploy list - -# 배포 상태 확인 -crewai deploy status - -# 배포 로그 보기 -crewai deploy logs - -# 코드 변경 후 업데이트 푸시 -crewai deploy push - -# 배포 삭제 -crewai deploy remove -``` - -## 옵션 2: 웹 인터페이스를 통한 직접 배포 - -GitHub 계정을 연결하여 CrewAI AMP 웹 인터페이스를 통해 crews를 직접 배포할 수도 있습니다. 이 방법은 로컬 머신에서 CLI를 사용할 필요가 없습니다. - - - - - -crew를 GitHub 저장소에 푸시해야 합니다. 아직 crew를 만들지 않았다면, [이 튜토리얼](/ko/quickstart)을 따라할 수 있습니다. - - - - - - 1. [CrewAI AMP](https://app.crewai.com)에 로그인합니다. - 2. "Connect GitHub" 버튼을 클릭합니다. - - - ![Connect GitHub Button](/images/enterprise/connect-github.png) - - - - - - - GitHub 계정을 연결한 후 배포할 저장소를 선택할 수 있습니다: - - - ![Select Repository](/images/enterprise/select-repo.png) - - - - - - - 배포 전에, LLM 제공업체 또는 기타 서비스에 연결할 환경 변수를 설정해야 합니다: - - 1. 변수를 개별적으로 또는 일괄적으로 추가할 수 있습니다. - 2. 환경 변수는 `KEY=VALUE` 형식(한 줄에 하나씩)으로 입력합니다. - - - ![Set Environment Variables](/images/enterprise/set-env-variables.png) - - - - - - - 1. "Deploy" 버튼을 클릭하여 배포 프로세스를 시작합니다. - 2. 진행 바를 통해 진행 상황을 모니터링할 수 있습니다. - 3. 첫 번째 배포에는 일반적으로 약 10-15분 정도 소요되며, 이후 배포는 더 빠릅니다. - - - ![Deploy Progress](/images/enterprise/deploy-progress.png) - - - 배포가 완료되면 다음을 확인할 수 있습니다: - - crew의 고유 URL - - crew API를 보호할 Bearer 토큰 - - 배포를 삭제해야 하는 경우 "Delete" 버튼 - - - - - -## ⚠️ 환경 변수 보안 요구사항 - - - **중요**: CrewAI AOP는 환경 변수 이름에 대한 보안 제한이 있으며, 이를 따르지 - 않을 경우 배포가 실패할 수 있습니다. - - -### 차단된 환경 변수 패턴 - -보안상의 이유로, 다음과 같은 환경 변수 명명 패턴은 **자동으로 필터링**되며 배포에 문제가 발생할 수 있습니다: - -**차단된 패턴:** - -- `_TOKEN`으로 끝나는 변수 (예: `MY_API_TOKEN`) -- `_PASSWORD`로 끝나는 변수 (예: `DB_PASSWORD`) -- `_SECRET`로 끝나는 변수 (예: `API_SECRET`) -- 특정 상황에서 `_KEY`로 끝나는 변수 - -**특정 차단 변수:** - -- `GITHUB_USER`, `GITHUB_TOKEN` -- `AWS_REGION`, `AWS_DEFAULT_REGION` -- 다양한 내부 CrewAI 시스템 변수 - -### 허용된 예외 - -일부 변수는 차단된 패턴과 일치하더라도 명시적으로 허용됩니다: - -- `AZURE_AD_TOKEN` -- `AZURE_OPENAI_AD_TOKEN` -- `ENTERPRISE_ACTION_TOKEN` -- `CREWAI_ENTEPRISE_TOOLS_TOKEN` - -### 네이밍 문제 해결 방법 - -환경 변수 제한으로 인해 배포가 실패하는 경우: - -```bash -# ❌ 이러한 이름은 배포 실패를 초래합니다 -OPENAI_TOKEN=sk-... -DATABASE_PASSWORD=mypassword -API_SECRET=secret123 - -# ✅ 대신 다음과 같은 네이밍 패턴을 사용하세요 -OPENAI_API_KEY=sk-... -DATABASE_CREDENTIALS=mypassword -API_CONFIG=secret123 -``` - -### 모범 사례 - -1. **표준 명명 규칙 사용**: `PROVIDER_TOKEN` 대신 `PROVIDER_API_KEY` 사용 -2. **먼저 로컬에서 테스트**: crew가 이름이 변경된 변수로 제대로 동작하는지 확인 -3. **코드 업데이트**: 이전 변수 이름을 참조하는 부분을 모두 변경 -4. **변경 내용 문서화**: 팀을 위해 이름이 변경된 변수를 기록 - - - 배포 실패 시, 환경 변수 에러 메시지가 난해하다면 먼저 변수 이름이 이 패턴을 - 따르는지 확인하세요. - - -### 배포된 Crew와 상호작용하기 - -배포가 완료되면 다음을 통해 crew에 접근할 수 있습니다: - -1. **REST API**: 플랫폼에서 아래의 주요 경로가 포함된 고유한 HTTPS 엔드포인트를 생성합니다: - - - `/inputs`: 필요한 입력 파라미터 목록 - - `/kickoff`: 제공된 입력값으로 실행 시작 - - `/status/{kickoff_id}`: 실행 상태 확인 - -2. **웹 인터페이스**: [app.crewai.com](https://app.crewai.com)에 방문하여 다음을 확인할 수 있습니다: - - **Status 탭**: 배포 정보, API 엔드포인트 세부 정보 및 인증 토큰 확인 - - **Run 탭**: crew 구조의 시각적 표현 - - **Executions 탭**: 모든 실행 내역 - - **Metrics 탭**: 성능 분석 - - **Traces 탭**: 상세 실행 인사이트 - -### 실행 트리거하기 - -Enterprise 대시보드에서 다음 작업을 수행할 수 있습니다: - -1. crew 이름을 클릭하여 상세 정보를 엽니다 -2. 관리 인터페이스에서 "Trigger Crew"를 선택합니다 -3. 나타나는 모달에 필요한 입력값을 입력합니다 -4. 파이프라인을 따라 실행의 진행 상황을 모니터링합니다 - -### 모니터링 및 분석 - -Enterprise 플랫폼은 포괄적인 가시성 기능을 제공합니다: - -- **실행 관리**: 활성 및 완료된 실행 추적 -- **트레이스**: 각 실행의 상세 분해 -- **메트릭**: 토큰 사용량, 실행 시간, 비용 -- **타임라인 보기**: 작업 시퀀스의 시각적 표현 - -### 고급 기능 - -Enterprise 플랫폼은 또한 다음을 제공합니다: - -- **환경 변수 관리**: API 키를 안전하게 저장 및 관리 -- **LLM 연결**: 다양한 LLM 공급자와의 통합 구성 -- **Custom Tools Repository**: 도구 생성, 공유 및 설치 -- **Crew Studio**: 코드를 작성하지 않고 채팅 인터페이스를 통해 crew 빌드 - - - Enterprise 플랫폼의 배포 문제 또는 문의 사항이 있으시면 지원팀에 연락해 - 주십시오. - diff --git a/docs/ko/enterprise/guides/deploy-to-amp.mdx b/docs/ko/enterprise/guides/deploy-to-amp.mdx new file mode 100644 index 000000000..5262701ee --- /dev/null +++ b/docs/ko/enterprise/guides/deploy-to-amp.mdx @@ -0,0 +1,438 @@ +--- +title: "AMP에 배포하기" +description: "Crew 또는 Flow를 CrewAI AMP에 배포하기" +icon: "rocket" +mode: "wide" +--- + + + 로컬에서 또는 Crew Studio를 통해 Crew나 Flow를 생성한 후, 다음 단계는 이를 CrewAI AMP + 플랫폼에 배포하는 것입니다. 본 가이드에서는 다양한 배포 방법을 다루며, + 여러분의 워크플로우에 가장 적합한 방식을 선택할 수 있도록 안내합니다. + + +## 사전 준비 사항 + + + + 로컬에서 성공적으로 실행되는 Crew 또는 Flow가 있어야 합니다. + [배포 준비 가이드](/ko/enterprise/guides/prepare-for-deployment)를 따라 프로젝트 구조를 확인하세요. + + + 코드가 GitHub 저장소에 있어야 합니다(GitHub 연동 방식의 경우). + + + + + **Crews vs Flows**: 두 프로젝트 유형 모두 CrewAI AMP에서 "자동화"로 배포할 수 있습니다. + 배포 과정은 동일하지만, 프로젝트 구조가 다릅니다. + 자세한 내용은 [배포 준비하기](/ko/enterprise/guides/prepare-for-deployment)를 참조하세요. + + +## 옵션 1: CrewAI CLI를 사용한 배포 + +CLI는 로컬에서 개발된 Crew 또는 Flow를 AMP 플랫폼에 가장 빠르게 배포할 수 있는 방법을 제공합니다. +CLI는 `pyproject.toml`에서 프로젝트 유형을 자동으로 감지하고 그에 맞게 빌드합니다. + + + + 아직 설치하지 않았다면 CrewAI CLI를 설치하세요: + + ```bash + pip install crewai[tools] + ``` + + + CLI는 기본 CrewAI 패키지에 포함되어 있지만, `[tools]` 추가 옵션을 사용하면 모든 배포 종속성을 함께 설치할 수 있습니다. + + + + + + 먼저, CrewAI AMP 플랫폼에 CLI를 인증해야 합니다: + + ```bash + # 이미 CrewAI AMP 계정이 있거나 새로 생성하고 싶을 때: + crewai login + ``` + + 위 명령어를 실행하면 CLI가 다음을 진행합니다: + 1. URL과 고유 기기 코드를 표시합니다 + 2. 브라우저를 열어 인증 페이지로 이동합니다 + 3. 기기 확인을 요청합니다 + 4. 인증 과정을 완료합니다 + + 인증이 성공적으로 완료되면 터미널에 확인 메시지가 표시됩니다! + + + + + + 프로젝트 디렉터리에서 다음 명령어를 실행하세요: + + ```bash + crewai deploy create + ``` + + 이 명령어는 다음을 수행합니다: + 1. GitHub 저장소 정보를 감지합니다 + 2. 로컬 `.env` 파일의 환경 변수를 식별합니다 + 3. 이러한 변수를 Enterprise 플랫폼으로 안전하게 전송합니다 + 4. 고유 식별자가 부여된 새 배포를 만듭니다 + + 성공적으로 생성되면 다음과 같은 메시지가 표시됩니다: + ```shell + Deployment created successfully! + Name: your_project_name + Deployment ID: 01234567-89ab-cdef-0123-456789abcdef + Current Status: Deploy Enqueued + ``` + + + + + + 다음 명령어로 배포 상태를 추적할 수 있습니다: + + ```bash + crewai deploy status + ``` + + 빌드 과정의 상세 로그가 필요하다면: + + ```bash + crewai deploy logs + ``` + + + 첫 배포는 컨테이너 이미지를 빌드하므로 일반적으로 10~15분 정도 소요됩니다. 이후 배포는 훨씬 빠릅니다. + + + + + +## 추가 CLI 명령어 + +CrewAI CLI는 배포를 관리하기 위한 여러 명령어를 제공합니다: + +```bash +# 모든 배포 목록 확인 +crewai deploy list + +# 배포 상태 확인 +crewai deploy status + +# 배포 로그 보기 +crewai deploy logs + +# 코드 변경 후 업데이트 푸시 +crewai deploy push + +# 배포 삭제 +crewai deploy remove +``` + +## 옵션 2: 웹 인터페이스를 통한 직접 배포 + +GitHub 계정을 연결하여 CrewAI AMP 웹 인터페이스를 통해 Crew 또는 Flow를 직접 배포할 수도 있습니다. 이 방법은 로컬 머신에서 CLI를 사용할 필요가 없습니다. 플랫폼은 자동으로 프로젝트 유형을 감지하고 적절하게 빌드를 처리합니다. + + + + + +Crew를 GitHub 저장소에 푸시해야 합니다. 아직 Crew를 만들지 않았다면, [이 튜토리얼](/ko/quickstart)을 따라할 수 있습니다. + + + + + + 1. [CrewAI AMP](https://app.crewai.com)에 로그인합니다. + 2. "Connect GitHub" 버튼을 클릭합니다. + + + ![Connect GitHub Button](/images/enterprise/connect-github.png) + + + + + + + GitHub 계정을 연결한 후 배포할 저장소를 선택할 수 있습니다: + + + ![Select Repository](/images/enterprise/select-repo.png) + + + + + + + 배포 전에, LLM 제공업체 또는 기타 서비스에 연결할 환경 변수를 설정해야 합니다: + + 1. 변수를 개별적으로 또는 일괄적으로 추가할 수 있습니다. + 2. 환경 변수는 `KEY=VALUE` 형식(한 줄에 하나씩)으로 입력합니다. + + + ![Set Environment Variables](/images/enterprise/set-env-variables.png) + + + + + + + 1. "Deploy" 버튼을 클릭하여 배포 프로세스를 시작합니다. + 2. 진행 바를 통해 진행 상황을 모니터링할 수 있습니다. + 3. 첫 번째 배포에는 일반적으로 약 10-15분 정도 소요되며, 이후 배포는 더 빠릅니다. + + + ![Deploy Progress](/images/enterprise/deploy-progress.png) + + + 배포가 완료되면 다음을 확인할 수 있습니다: + - Crew의 고유 URL + - Crew API를 보호할 Bearer 토큰 + - 배포를 삭제해야 하는 경우 "Delete" 버튼 + + + + + +## 옵션 3: API를 통한 재배포 (CI/CD 통합) + +CI/CD 파이프라인에서 자동화된 배포를 위해 CrewAI API를 사용하여 기존 crew의 재배포를 트리거할 수 있습니다. 이 방법은 GitHub Actions, Jenkins 또는 기타 자동화 워크플로우에 특히 유용합니다. + + + + + CrewAI AMP 계정 설정에서 API 토큰을 생성합니다: + + 1. [app.crewai.com](https://app.crewai.com)으로 이동합니다 + 2. **Settings** → **Account** → **Personal Access Token**을 클릭합니다 + 3. 새 토큰을 생성하고 안전하게 복사합니다 + 4. 이 토큰을 CI/CD 시스템의 시크릿으로 저장합니다 + + + + + + 배포된 crew의 고유 식별자를 찾습니다: + + 1. CrewAI AMP 대시보드에서 **Automations**로 이동합니다 + 2. 기존 automation/crew를 선택합니다 + 3. **Additional Details**를 클릭합니다 + 4. **UUID**를 복사합니다 - 이것이 특정 crew 배포를 식별합니다 + + + + + + Deploy API 엔드포인트를 사용하여 재배포를 트리거합니다: + + ```bash + curl -i -X POST \ + -H "Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN" \ + https://app.crewai.com/crewai_plus/api/v1/crews/YOUR-AUTOMATION-UUID/deploy + + # HTTP/2 200 + # content-type: application/json + # + # { + # "uuid": "your-automation-uuid", + # "status": "Deploy Enqueued", + # "public_url": "https://your-crew-deployment.crewai.com", + # "token": "your-bearer-token" + # } + ``` + + + Git에 연결되어 처음 생성된 automation의 경우, API가 재배포 전에 자동으로 저장소에서 최신 변경 사항을 가져옵니다. + + + + + + + 더 복잡한 배포 트리거가 있는 GitHub Actions 워크플로우 예시입니다: + + ```yaml + name: Deploy CrewAI Automation + + on: + push: + branches: [ main ] + pull_request: + types: [ labeled ] + release: + types: [ published ] + + jobs: + deploy: + runs-on: ubuntu-latest + if: | + (github.event_name == 'push' && github.ref == 'refs/heads/main') || + (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'deploy')) || + (github.event_name == 'release') + steps: + - name: Trigger CrewAI Redeployment + run: | + curl -X POST \ + -H "Authorization: Bearer ${{ secrets.CREWAI_PAT }}" \ + https://app.crewai.com/crewai_plus/api/v1/crews/${{ secrets.CREWAI_AUTOMATION_UUID }}/deploy + ``` + + + `CREWAI_PAT`와 `CREWAI_AUTOMATION_UUID`를 저장소 시크릿으로 추가하세요. PR 배포의 경우 "deploy" 라벨을 추가하여 워크플로우를 트리거합니다. + + + + + + +## 배포된 Automation과 상호작용하기 + +배포가 완료되면 다음을 통해 crew에 접근할 수 있습니다: + +1. **REST API**: 플랫폼에서 아래의 주요 경로가 포함된 고유한 HTTPS 엔드포인트를 생성합니다: + + - `/inputs`: 필요한 입력 파라미터 목록 + - `/kickoff`: 제공된 입력값으로 실행 시작 + - `/status/{kickoff_id}`: 실행 상태 확인 + +2. **웹 인터페이스**: [app.crewai.com](https://app.crewai.com)에 방문하여 다음을 확인할 수 있습니다: + - **Status 탭**: 배포 정보, API 엔드포인트 세부 정보 및 인증 토큰 확인 + - **Run 탭**: Crew 구조의 시각적 표현 + - **Executions 탭**: 모든 실행 내역 + - **Metrics 탭**: 성능 분석 + - **Traces 탭**: 상세 실행 인사이트 + +### 실행 트리거하기 + +Enterprise 대시보드에서 다음 작업을 수행할 수 있습니다: + +1. Crew 이름을 클릭하여 상세 정보를 엽니다 +2. 관리 인터페이스에서 "Trigger Crew"를 선택합니다 +3. 나타나는 모달에 필요한 입력값을 입력합니다 +4. 파이프라인을 따라 실행의 진행 상황을 모니터링합니다 + +### 모니터링 및 분석 + +Enterprise 플랫폼은 포괄적인 가시성 기능을 제공합니다: + +- **실행 관리**: 활성 및 완료된 실행 추적 +- **트레이스**: 각 실행의 상세 분해 +- **메트릭**: 토큰 사용량, 실행 시간, 비용 +- **타임라인 보기**: 작업 시퀀스의 시각적 표현 + +### 고급 기능 + +Enterprise 플랫폼은 또한 다음을 제공합니다: + +- **환경 변수 관리**: API 키를 안전하게 저장 및 관리 +- **LLM 연결**: 다양한 LLM 공급자와의 통합 구성 +- **Custom Tools Repository**: 도구 생성, 공유 및 설치 +- **Crew Studio**: 코드를 작성하지 않고 채팅 인터페이스를 통해 crew 빌드 + +## 배포 실패 문제 해결 + +배포가 실패하면 다음과 같은 일반적인 문제를 확인하세요: + +### 빌드 실패 + +#### uv.lock 파일 누락 + +**증상**: 의존성 해결 오류와 함께 빌드 초기에 실패 + +**해결책**: lock 파일을 생성하고 커밋합니다: + +```bash +uv lock +git add uv.lock +git commit -m "Add uv.lock for deployment" +git push +``` + + + `uv.lock` 파일은 모든 배포에 필수입니다. 이 파일이 없으면 플랫폼에서 + 의존성을 안정적으로 설치할 수 없습니다. + + +#### 잘못된 프로젝트 구조 + +**증상**: "Could not find entry point" 또는 "Module not found" 오류 + +**해결책**: 프로젝트가 예상 구조와 일치하는지 확인합니다: + +- **Crews와 Flows 모두**: 진입점이 `src/project_name/main.py`에 있어야 합니다 +- **Crews**: 진입점으로 `run()` 함수 사용 +- **Flows**: 진입점으로 `kickoff()` 함수 사용 + +자세한 구조 다이어그램은 [배포 준비하기](/ko/enterprise/guides/prepare-for-deployment)를 참조하세요. + +#### CrewBase 데코레이터 누락 + +**증상**: "Crew not found", "Config not found" 또는 agent/task 구성 오류 + +**해결책**: **모든** crew 클래스가 `@CrewBase` 데코레이터를 사용하는지 확인합니다: + +```python +from crewai.project import CrewBase, agent, crew, task + +@CrewBase # 이 데코레이터는 필수입니다 +class YourCrew(): + """Crew 설명""" + + @agent + def my_agent(self) -> Agent: + return Agent( + config=self.agents_config['my_agent'], # type: ignore[index] + verbose=True + ) + + # ... 나머지 crew 정의 +``` + + + 이것은 독립 실행형 Crews와 Flow 프로젝트 내에 포함된 crews 모두에 적용됩니다. + 모든 crew 클래스에 데코레이터가 필요합니다. + + +#### 잘못된 pyproject.toml 타입 + +**증상**: 빌드는 성공하지만 런타임에서 실패하거나 예상치 못한 동작 + +**해결책**: `[tool.crewai]` 섹션이 프로젝트 유형과 일치하는지 확인합니다: + +```toml +# Crew 프로젝트의 경우: +[tool.crewai] +type = "crew" + +# Flow 프로젝트의 경우: +[tool.crewai] +type = "flow" +``` + +### 런타임 실패 + +#### LLM 연결 실패 + +**증상**: API 키 오류, "model not found" 또는 인증 실패 + +**해결책**: +1. LLM 제공업체의 API 키가 환경 변수에 올바르게 설정되어 있는지 확인합니다 +2. 환경 변수 이름이 코드에서 예상하는 것과 일치하는지 확인합니다 +3. 배포 전에 동일한 환경 변수로 로컬에서 테스트합니다 + +#### Crew 실행 오류 + +**증상**: Crew가 시작되지만 실행 중에 실패 + +**해결책**: +1. AMP 대시보드에서 실행 로그를 확인합니다 (Traces 탭) +2. 모든 도구에 필요한 API 키가 구성되어 있는지 확인합니다 +3. `agents.yaml`의 agent 구성이 유효한지 확인합니다 +4. `tasks.yaml`의 task 구성에 구문 오류가 없는지 확인합니다 + + + 배포 문제 또는 AMP 플랫폼에 대한 문의 사항이 있으시면 지원팀에 연락해 주세요. + \ No newline at end of file diff --git a/docs/ko/enterprise/guides/prepare-for-deployment.mdx b/docs/ko/enterprise/guides/prepare-for-deployment.mdx new file mode 100644 index 000000000..9778dde4d --- /dev/null +++ b/docs/ko/enterprise/guides/prepare-for-deployment.mdx @@ -0,0 +1,305 @@ +--- +title: "배포 준비하기" +description: "Crew 또는 Flow가 CrewAI AMP에 배포될 준비가 되었는지 확인하기" +icon: "clipboard-check" +mode: "wide" +--- + + + CrewAI AMP에 배포하기 전에, 프로젝트가 올바르게 구성되어 있는지 확인하는 것이 중요합니다. + Crews와 Flows 모두 "자동화"로 배포할 수 있지만, 성공적인 배포를 위해 충족해야 하는 + 서로 다른 프로젝트 구조와 요구 사항이 있습니다. + + +## 자동화 이해하기 + +CrewAI AMP에서 **자동화(automations)**는 배포 가능한 Agentic AI 프로젝트의 총칭입니다. 자동화는 다음 중 하나일 수 있습니다: + +- **Crew**: 작업을 함께 수행하는 AI 에이전트들의 독립 실행형 팀 +- **Flow**: 여러 crew, 직접 LLM 호출 및 절차적 로직을 결합할 수 있는 오케스트레이션된 워크플로우 + +배포하는 유형을 이해하는 것은 프로젝트 구조와 진입점이 다르기 때문에 필수적입니다. + +## Crews vs Flows: 주요 차이점 + + + + 에이전트와 작업을 정의하는 `crew.py`가 있는 독립 실행형 AI 에이전트 팀. 집중적이고 협업적인 작업에 적합합니다. + + + `crews/` 폴더에 포함된 crew가 있는 오케스트레이션된 워크플로우. 복잡한 다단계 프로세스에 적합합니다. + + + +| 측면 | Crew | Flow | +|------|------|------| +| **프로젝트 구조** | `crew.py`가 있는 `src/project_name/` | `crews/` 폴더가 있는 `src/project_name/` | +| **메인 로직 위치** | `src/project_name/crew.py` | `src/project_name/main.py` (Flow 클래스) | +| **진입점 함수** | `main.py`의 `run()` | `main.py`의 `kickoff()` | +| **pyproject.toml 타입** | `type = "crew"` | `type = "flow"` | +| **CLI 생성 명령어** | `crewai create crew name` | `crewai create flow name` | +| **설정 위치** | `src/project_name/config/` | `src/project_name/crews/crew_name/config/` | +| **다른 crew 포함 가능** | 아니오 | 예 (`crews/` 폴더 내) | + +## 프로젝트 구조 참조 + +### Crew 프로젝트 구조 + +`crewai create crew my_crew`를 실행하면 다음 구조를 얻습니다: + +``` +my_crew/ +├── .gitignore +├── pyproject.toml # type = "crew"여야 함 +├── README.md +├── .env +├── uv.lock # 배포에 필수 +└── src/ + └── my_crew/ + ├── __init__.py + ├── main.py # run() 함수가 있는 진입점 + ├── crew.py # @CrewBase 데코레이터가 있는 Crew 클래스 + ├── tools/ + │ ├── custom_tool.py + │ └── __init__.py + └── config/ + ├── agents.yaml # 에이전트 정의 + └── tasks.yaml # 작업 정의 +``` + + + 중첩된 `src/project_name/` 구조는 Crews에 매우 중요합니다. + 잘못된 레벨에 파일을 배치하면 배포 실패의 원인이 됩니다. + + +### Flow 프로젝트 구조 + +`crewai create flow my_flow`를 실행하면 다음 구조를 얻습니다: + +``` +my_flow/ +├── .gitignore +├── pyproject.toml # type = "flow"여야 함 +├── README.md +├── .env +├── uv.lock # 배포에 필수 +└── src/ + └── my_flow/ + ├── __init__.py + ├── main.py # kickoff() 함수 + Flow 클래스가 있는 진입점 + ├── crews/ # 포함된 crews 폴더 + │ └── poem_crew/ + │ ├── __init__.py + │ ├── poem_crew.py # @CrewBase 데코레이터가 있는 Crew + │ └── config/ + │ ├── agents.yaml + │ └── tasks.yaml + └── tools/ + ├── __init__.py + └── custom_tool.py +``` + + + Crews와 Flows 모두 `src/project_name/` 구조를 사용합니다. + 핵심 차이점은 Flows는 포함된 crews를 위한 `crews/` 폴더가 있고, + Crews는 프로젝트 폴더에 직접 `crew.py`가 있다는 것입니다. + + +## 배포 전 체크리스트 + +이 체크리스트를 사용하여 프로젝트가 배포 준비가 되었는지 확인하세요. + +### 1. pyproject.toml 설정 확인 + +`pyproject.toml`에 올바른 `[tool.crewai]` 섹션이 포함되어야 합니다: + + + + ```toml + [tool.crewai] + type = "crew" + ``` + + + ```toml + [tool.crewai] + type = "flow" + ``` + + + + + `type`이 프로젝트 구조와 일치하지 않으면 빌드가 실패하거나 + 자동화가 올바르게 실행되지 않습니다. + + +### 2. uv.lock 파일 존재 확인 + +CrewAI는 의존성 관리를 위해 `uv`를 사용합니다. `uv.lock` 파일은 재현 가능한 빌드를 보장하며 배포에 **필수**입니다. + +```bash +# lock 파일 생성 또는 업데이트 +uv lock + +# 존재 여부 확인 +ls -la uv.lock +``` + +파일이 존재하지 않으면 `uv lock`을 실행하고 저장소에 커밋하세요: + +```bash +uv lock +git add uv.lock +git commit -m "Add uv.lock for deployment" +git push +``` + +### 3. CrewBase 데코레이터 사용 확인 + +**모든 crew 클래스는 `@CrewBase` 데코레이터를 사용해야 합니다.** 이것은 다음에 적용됩니다: + +- 독립 실행형 crew 프로젝트 +- Flow 프로젝트 내에 포함된 crews + +```python +from crewai import Agent, Crew, Process, Task +from crewai.project import CrewBase, agent, crew, task +from crewai.agents.agent_builder.base_agent import BaseAgent +from typing import List + +@CrewBase # 이 데코레이터는 필수입니다 +class MyCrew(): + """내 crew 설명""" + + agents: List[BaseAgent] + tasks: List[Task] + + @agent + def my_agent(self) -> Agent: + return Agent( + config=self.agents_config['my_agent'], # type: ignore[index] + verbose=True + ) + + @task + def my_task(self) -> Task: + return Task( + config=self.tasks_config['my_task'] # type: ignore[index] + ) + + @crew + def crew(self) -> Crew: + return Crew( + agents=self.agents, + tasks=self.tasks, + process=Process.sequential, + verbose=True, + ) +``` + + + `@CrewBase` 데코레이터를 잊으면 에이전트나 작업 구성이 누락되었다는 + 오류와 함께 배포가 실패합니다. + + +### 4. 프로젝트 진입점 확인 + +Crews와 Flows 모두 `src/project_name/main.py`에 진입점이 있습니다: + + + + 진입점은 `run()` 함수를 사용합니다: + + ```python + # src/my_crew/main.py + from my_crew.crew import MyCrew + + def run(): + """crew를 실행합니다.""" + inputs = {'topic': 'AI in Healthcare'} + result = MyCrew().crew().kickoff(inputs=inputs) + return result + + if __name__ == "__main__": + run() + ``` + + + 진입점은 Flow 클래스와 함께 `kickoff()` 함수를 사용합니다: + + ```python + # src/my_flow/main.py + from crewai.flow import Flow, listen, start + from my_flow.crews.poem_crew.poem_crew import PoemCrew + + class MyFlow(Flow): + @start() + def begin(self): + # Flow 로직 + result = PoemCrew().crew().kickoff(inputs={...}) + return result + + def kickoff(): + """flow를 실행합니다.""" + MyFlow().kickoff() + + if __name__ == "__main__": + kickoff() + ``` + + + +### 5. 환경 변수 준비 + +배포 전에 다음을 준비해야 합니다: + +1. **LLM API 키** (OpenAI, Anthropic, Google 등) +2. **도구 API 키** - 외부 도구를 사용하는 경우 (Serper 등) + + + 구성 문제를 조기에 발견하기 위해 배포 전에 동일한 환경 변수로 + 로컬에서 프로젝트를 테스트하세요. + + +## 빠른 검증 명령어 + +프로젝트 루트에서 다음 명령어를 실행하여 설정을 빠르게 확인하세요: + +```bash +# 1. pyproject.toml에서 프로젝트 타입 확인 +grep -A2 "\[tool.crewai\]" pyproject.toml + +# 2. uv.lock 존재 확인 +ls -la uv.lock || echo "오류: uv.lock이 없습니다! 'uv lock'을 실행하세요" + +# 3. src/ 구조 존재 확인 +ls -la src/*/main.py 2>/dev/null || echo "src/에서 main.py를 찾을 수 없습니다" + +# 4. Crews의 경우 - crew.py 존재 확인 +ls -la src/*/crew.py 2>/dev/null || echo "crew.py가 없습니다 (Crews에서 예상됨)" + +# 5. Flows의 경우 - crews/ 폴더 존재 확인 +ls -la src/*/crews/ 2>/dev/null || echo "crews/ 폴더가 없습니다 (Flows에서 예상됨)" + +# 6. CrewBase 사용 확인 +grep -r "@CrewBase" . --include="*.py" +``` + +## 일반적인 설정 실수 + +| 실수 | 증상 | 해결 방법 | +|------|------|----------| +| `uv.lock` 누락 | 의존성 해결 중 빌드 실패 | `uv lock` 실행 후 커밋 | +| pyproject.toml의 잘못된 `type` | 빌드 성공하지만 런타임 실패 | 올바른 타입으로 변경 | +| `@CrewBase` 데코레이터 누락 | "Config not found" 오류 | 모든 crew 클래스에 데코레이터 추가 | +| `src/` 대신 루트에 파일 배치 | 진입점을 찾을 수 없음 | `src/project_name/`으로 이동 | +| `run()` 또는 `kickoff()` 누락 | 자동화를 시작할 수 없음 | 올바른 진입 함수 추가 | + +## 다음 단계 + +프로젝트가 모든 체크리스트 항목을 통과하면 배포할 준비가 된 것입니다: + + + CLI, 웹 인터페이스 또는 CI/CD 통합을 사용하여 Crew 또는 Flow를 CrewAI AMP에 + 배포하려면 배포 가이드를 따르세요. + diff --git a/docs/pt-BR/enterprise/guides/deploy-crew.mdx b/docs/pt-BR/enterprise/guides/deploy-crew.mdx deleted file mode 100644 index 438703979..000000000 --- a/docs/pt-BR/enterprise/guides/deploy-crew.mdx +++ /dev/null @@ -1,304 +0,0 @@ ---- -title: "Deploy Crew" -description: "Implantando um Crew na CrewAI AMP" -icon: "rocket" -mode: "wide" ---- - - - Depois de criar um crew localmente ou pelo Crew Studio, o próximo passo é - implantá-lo na plataforma CrewAI AMP. Este guia cobre múltiplos métodos de - implantação para ajudá-lo a escolher a melhor abordagem para o seu fluxo de - trabalho. - - -## Pré-requisitos - - - - Você deve ter um crew funcional, criado localmente ou pelo Crew Studio - - - O código do seu crew deve estar em um repositório do GitHub (para o método - de integração com GitHub) - - - -## Opção 1: Implantar Usando o CrewAI CLI - -A CLI fornece a maneira mais rápida de implantar crews desenvolvidos localmente na plataforma Enterprise. - - - - Se ainda não tiver, instale o CrewAI CLI: - - ```bash - pip install crewai[tools] - ``` - - - A CLI vem com o pacote principal CrewAI, mas o extra `[tools]` garante todas as dependências de implantação. - - - - - - Primeiro, você precisa autenticar sua CLI com a plataforma CrewAI AMP: - - ```bash - # Se já possui uma conta CrewAI AMP, ou deseja criar uma: - crewai login - ``` - - Ao executar qualquer um dos comandos, a CLI irá: - 1. Exibir uma URL e um código de dispositivo único - 2. Abrir seu navegador para a página de autenticação - 3. Solicitar a confirmação do dispositivo - 4. Completar o processo de autenticação - - Após a autenticação bem-sucedida, você verá uma mensagem de confirmação no terminal! - - - - - - No diretório do seu projeto, execute: - - ```bash - crewai deploy create - ``` - - Este comando irá: - 1. Detectar informações do seu repositório GitHub - 2. Identificar variáveis de ambiente no seu arquivo `.env` local - 3. Transferir essas variáveis com segurança para a plataforma Enterprise - 4. Criar uma nova implantação com um identificador único - - Com a criação bem-sucedida, você verá uma mensagem como: - ```shell - Deployment created successfully! - Name: your_project_name - Deployment ID: 01234567-89ab-cdef-0123-456789abcdef - Current Status: Deploy Enqueued - ``` - - - - - - Acompanhe o status da implantação com: - - ```bash - crewai deploy status - ``` - - Para ver logs detalhados do processo de build: - - ```bash - crewai deploy logs - ``` - - - A primeira implantação normalmente leva de 10 a 15 minutos, pois as imagens dos containers são construídas. As próximas implantações são bem mais rápidas. - - - - - -## Comandos Adicionais da CLI - -O CrewAI CLI oferece vários comandos para gerenciar suas implantações: - -```bash -# Liste todas as suas implantações -crewai deploy list - -# Consulte o status de uma implantação -crewai deploy status - -# Veja os logs da implantação -crewai deploy logs - -# Envie atualizações após alterações no código -crewai deploy push - -# Remova uma implantação -crewai deploy remove -``` - -## Opção 2: Implantar Diretamente pela Interface Web - -Você também pode implantar seus crews diretamente pela interface web da CrewAI AMP conectando sua conta do GitHub. Esta abordagem não requer utilizar a CLI na sua máquina local. - - - - - -Você precisa subir seu crew para um repositório do GitHub. Caso ainda não tenha criado um crew, você pode [seguir este tutorial](/pt-BR/quickstart). - - - - - - 1. Faça login em [CrewAI AMP](https://app.crewai.com) - 2. Clique no botão "Connect GitHub" - - - ![Botão Connect GitHub](/images/enterprise/connect-github.png) - - - - - - - Após conectar sua conta GitHub, você poderá selecionar qual repositório deseja implantar: - - - ![Selecionar Repositório](/images/enterprise/select-repo.png) - - - - - - - Antes de implantar, você precisará configurar as variáveis de ambiente para conectar ao seu provedor de LLM ou outros serviços: - - 1. Você pode adicionar variáveis individualmente ou em lote - 2. Digite suas variáveis no formato `KEY=VALUE` (uma por linha) - - - ![Definir Variáveis de Ambiente](/images/enterprise/set-env-variables.png) - - - - - - - 1. Clique no botão "Deploy" para iniciar o processo de implantação - 2. Você pode monitorar o progresso pela barra de progresso - 3. A primeira implantação geralmente demora de 10 a 15 minutos; as próximas serão mais rápidas - - - ![Progresso da Implantação](/images/enterprise/deploy-progress.png) - - - Após a conclusão, você verá: - - A URL exclusiva do seu crew - - Um Bearer token para proteger sua API crew - - Um botão "Delete" caso precise remover a implantação - - - - - -## ⚠️ Requisitos de Segurança para Variáveis de Ambiente - - - **Importante**: A CrewAI AMP possui restrições de segurança sobre os nomes de - variáveis de ambiente que podem causar falha na implantação caso não sejam - seguidas. - - -### Padrões de Variáveis de Ambiente Bloqueados - -Por motivos de segurança, os seguintes padrões de nome de variável de ambiente são **automaticamente filtrados** e causarão problemas de implantação: - -**Padrões Bloqueados:** - -- Variáveis terminando em `_TOKEN` (ex: `MY_API_TOKEN`) -- Variáveis terminando em `_PASSWORD` (ex: `DB_PASSWORD`) -- Variáveis terminando em `_SECRET` (ex: `API_SECRET`) -- Variáveis terminando em `_KEY` em certos contextos - -**Variáveis Bloqueadas Específicas:** - -- `GITHUB_USER`, `GITHUB_TOKEN` -- `AWS_REGION`, `AWS_DEFAULT_REGION` -- Diversas variáveis internas do sistema CrewAI - -### Exceções Permitidas - -Algumas variáveis são explicitamente permitidas mesmo coincidindo com os padrões bloqueados: - -- `AZURE_AD_TOKEN` -- `AZURE_OPENAI_AD_TOKEN` -- `ENTERPRISE_ACTION_TOKEN` -- `CREWAI_ENTEPRISE_TOOLS_TOKEN` - -### Como Corrigir Problemas de Nomeação - -Se sua implantação falhar devido a restrições de variáveis de ambiente: - -```bash -# ❌ Estas irão causar falhas na implantação -OPENAI_TOKEN=sk-... -DATABASE_PASSWORD=mysenha -API_SECRET=segredo123 - -# ✅ Utilize estes padrões de nomeação -OPENAI_API_KEY=sk-... -DATABASE_CREDENTIALS=mysenha -API_CONFIG=segredo123 -``` - -### Melhores Práticas - -1. **Use convenções padrão de nomenclatura**: `PROVIDER_API_KEY` em vez de `PROVIDER_TOKEN` -2. **Teste localmente primeiro**: Certifique-se de que seu crew funciona com as variáveis renomeadas -3. **Atualize seu código**: Altere todas as referências aos nomes antigos das variáveis -4. **Documente as mudanças**: Mantenha registro das variáveis renomeadas para seu time - - - Se você se deparar com falhas de implantação com erros enigmáticos de - variáveis de ambiente, confira primeiro os nomes das variáveis em relação a - esses padrões. - - -### Interaja com Seu Crew Implantado - -Após a implantação, você pode acessar seu crew por meio de: - -1. **REST API**: A plataforma gera um endpoint HTTPS exclusivo com estas rotas principais: - - - `/inputs`: Lista os parâmetros de entrada requeridos - - `/kickoff`: Inicia uma execução com os inputs fornecidos - - `/status/{kickoff_id}`: Consulta o status da execução - -2. **Interface Web**: Acesse [app.crewai.com](https://app.crewai.com) para visualizar: - - **Aba Status**: Informações da implantação, detalhes do endpoint da API e token de autenticação - - **Aba Run**: Visualização da estrutura do seu crew - - **Aba Executions**: Histórico de todas as execuções - - **Aba Metrics**: Análises de desempenho - - **Aba Traces**: Insights detalhados das execuções - -### Dispare uma Execução - -No dashboard Enterprise, você pode: - -1. Clicar no nome do seu crew para abrir seus detalhes -2. Selecionar "Trigger Crew" na interface de gerenciamento -3. Inserir os inputs necessários no modal exibido -4. Monitorar o progresso à medida que a execução avança pelo pipeline - -### Monitoramento e Análises - -A plataforma Enterprise oferece recursos abrangentes de observabilidade: - -- **Gestão das Execuções**: Acompanhe execuções ativas e concluídas -- **Traces**: Quebra detalhada de cada execução -- **Métricas**: Uso de tokens, tempos de execução e custos -- **Visualização em Linha do Tempo**: Representação visual das sequências de tarefas - -### Funcionalidades Avançadas - -A plataforma Enterprise também oferece: - -- **Gerenciamento de Variáveis de Ambiente**: Armazene e gerencie com segurança as chaves de API -- **Conexões com LLM**: Configure integrações com diversos provedores de LLM -- **Repositório Custom Tools**: Crie, compartilhe e instale ferramentas -- **Crew Studio**: Monte crews via interface de chat sem escrever código - - - Entre em contato com nossa equipe de suporte para ajuda com questões de - implantação ou dúvidas sobre a plataforma Enterprise. - diff --git a/docs/pt-BR/enterprise/guides/deploy-to-amp.mdx b/docs/pt-BR/enterprise/guides/deploy-to-amp.mdx new file mode 100644 index 000000000..c6dc35018 --- /dev/null +++ b/docs/pt-BR/enterprise/guides/deploy-to-amp.mdx @@ -0,0 +1,439 @@ +--- +title: "Deploy para AMP" +description: "Implante seu Crew ou Flow no CrewAI AMP" +icon: "rocket" +mode: "wide" +--- + + + Depois de criar um Crew ou Flow localmente (ou pelo Crew Studio), o próximo passo é + implantá-lo na plataforma CrewAI AMP. Este guia cobre múltiplos métodos de + implantação para ajudá-lo a escolher a melhor abordagem para o seu fluxo de trabalho. + + +## Pré-requisitos + + + + Você deve ter um Crew ou Flow funcionando localmente com sucesso. + Siga nosso [guia de preparação](/pt-BR/enterprise/guides/prepare-for-deployment) para verificar a estrutura do seu projeto. + + + Seu código deve estar em um repositório do GitHub (para o método de integração com GitHub). + + + + + **Crews vs Flows**: Ambos os tipos de projeto podem ser implantados como "automações" no CrewAI AMP. + O processo de implantação é o mesmo, mas eles têm estruturas de projeto diferentes. + Veja [Preparar para Implantação](/pt-BR/enterprise/guides/prepare-for-deployment) para detalhes. + + +## Opção 1: Implantar Usando o CrewAI CLI + +A CLI fornece a maneira mais rápida de implantar Crews ou Flows desenvolvidos localmente na plataforma AMP. +A CLI detecta automaticamente o tipo do seu projeto a partir do `pyproject.toml` e faz o build adequadamente. + + + + Se ainda não tiver, instale o CrewAI CLI: + + ```bash + pip install crewai[tools] + ``` + + + A CLI vem com o pacote principal CrewAI, mas o extra `[tools]` garante todas as dependências de implantação. + + + + + + Primeiro, você precisa autenticar sua CLI com a plataforma CrewAI AMP: + + ```bash + # Se já possui uma conta CrewAI AMP, ou deseja criar uma: + crewai login + ``` + + Ao executar qualquer um dos comandos, a CLI irá: + 1. Exibir uma URL e um código de dispositivo único + 2. Abrir seu navegador para a página de autenticação + 3. Solicitar a confirmação do dispositivo + 4. Completar o processo de autenticação + + Após a autenticação bem-sucedida, você verá uma mensagem de confirmação no terminal! + + + + + + No diretório do seu projeto, execute: + + ```bash + crewai deploy create + ``` + + Este comando irá: + 1. Detectar informações do seu repositório GitHub + 2. Identificar variáveis de ambiente no seu arquivo `.env` local + 3. Transferir essas variáveis com segurança para a plataforma Enterprise + 4. Criar uma nova implantação com um identificador único + + Com a criação bem-sucedida, você verá uma mensagem como: + ```shell + Deployment created successfully! + Name: your_project_name + Deployment ID: 01234567-89ab-cdef-0123-456789abcdef + Current Status: Deploy Enqueued + ``` + + + + + + Acompanhe o status da implantação com: + + ```bash + crewai deploy status + ``` + + Para ver logs detalhados do processo de build: + + ```bash + crewai deploy logs + ``` + + + A primeira implantação normalmente leva de 10 a 15 minutos, pois as imagens dos containers são construídas. As próximas implantações são bem mais rápidas. + + + + + +## Comandos Adicionais da CLI + +O CrewAI CLI oferece vários comandos para gerenciar suas implantações: + +```bash +# Liste todas as suas implantações +crewai deploy list + +# Consulte o status de uma implantação +crewai deploy status + +# Veja os logs da implantação +crewai deploy logs + +# Envie atualizações após alterações no código +crewai deploy push + +# Remova uma implantação +crewai deploy remove +``` + +## Opção 2: Implantar Diretamente pela Interface Web + +Você também pode implantar seus Crews ou Flows diretamente pela interface web do CrewAI AMP conectando sua conta do GitHub. Esta abordagem não requer utilizar a CLI na sua máquina local. A plataforma detecta automaticamente o tipo do seu projeto e trata o build adequadamente. + + + + + +Você precisa enviar seu crew para um repositório do GitHub. Caso ainda não tenha criado um crew, você pode [seguir este tutorial](/pt-BR/quickstart). + + + + + + 1. Faça login em [CrewAI AMP](https://app.crewai.com) + 2. Clique no botão "Connect GitHub" + + + ![Botão Connect GitHub](/images/enterprise/connect-github.png) + + + + + + + Após conectar sua conta GitHub, você poderá selecionar qual repositório deseja implantar: + + + ![Selecionar Repositório](/images/enterprise/select-repo.png) + + + + + + + Antes de implantar, você precisará configurar as variáveis de ambiente para conectar ao seu provedor de LLM ou outros serviços: + + 1. Você pode adicionar variáveis individualmente ou em lote + 2. Digite suas variáveis no formato `KEY=VALUE` (uma por linha) + + + ![Definir Variáveis de Ambiente](/images/enterprise/set-env-variables.png) + + + + + + + 1. Clique no botão "Deploy" para iniciar o processo de implantação + 2. Você pode monitorar o progresso pela barra de progresso + 3. A primeira implantação geralmente demora de 10 a 15 minutos; as próximas serão mais rápidas + + + ![Progresso da Implantação](/images/enterprise/deploy-progress.png) + + + Após a conclusão, você verá: + - A URL exclusiva do seu crew + - Um Bearer token para proteger sua API crew + - Um botão "Delete" caso precise remover a implantação + + + + + +## Opção 3: Reimplantar Usando API (Integração CI/CD) + +Para implantações automatizadas em pipelines CI/CD, você pode usar a API do CrewAI para acionar reimplantações de crews existentes. Isso é particularmente útil para GitHub Actions, Jenkins ou outros workflows de automação. + + + + + Navegue até as configurações da sua conta CrewAI AMP para gerar um token de API: + + 1. Acesse [app.crewai.com](https://app.crewai.com) + 2. Clique em **Settings** → **Account** → **Personal Access Token** + 3. Gere um novo token e copie-o com segurança + 4. Armazene este token como um secret no seu sistema CI/CD + + + + + + Localize o identificador único do seu crew implantado: + + 1. Acesse **Automations** no seu dashboard CrewAI AMP + 2. Selecione sua automação/crew existente + 3. Clique em **Additional Details** + 4. Copie o **UUID** - este identifica sua implantação específica do crew + + + + + + Use o endpoint da API de Deploy para acionar uma reimplantação: + + ```bash + curl -i -X POST \ + -H "Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN" \ + https://app.crewai.com/crewai_plus/api/v1/crews/YOUR-AUTOMATION-UUID/deploy + + # HTTP/2 200 + # content-type: application/json + # + # { + # "uuid": "your-automation-uuid", + # "status": "Deploy Enqueued", + # "public_url": "https://your-crew-deployment.crewai.com", + # "token": "your-bearer-token" + # } + ``` + + + Se sua automação foi criada originalmente conectada ao Git, a API automaticamente puxará as últimas alterações do seu repositório antes de reimplantar. + + + + + + + Aqui está um workflow do GitHub Actions com gatilhos de implantação mais complexos: + + ```yaml + name: Deploy CrewAI Automation + + on: + push: + branches: [ main ] + pull_request: + types: [ labeled ] + release: + types: [ published ] + + jobs: + deploy: + runs-on: ubuntu-latest + if: | + (github.event_name == 'push' && github.ref == 'refs/heads/main') || + (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'deploy')) || + (github.event_name == 'release') + steps: + - name: Trigger CrewAI Redeployment + run: | + curl -X POST \ + -H "Authorization: Bearer ${{ secrets.CREWAI_PAT }}" \ + https://app.crewai.com/crewai_plus/api/v1/crews/${{ secrets.CREWAI_AUTOMATION_UUID }}/deploy + ``` + + + Adicione `CREWAI_PAT` e `CREWAI_AUTOMATION_UUID` como secrets do repositório. Para implantações de PR, adicione um label "deploy" para acionar o workflow. + + + + + + +## Interaja com Sua Automação Implantada + +Após a implantação, você pode acessar seu crew através de: + +1. **REST API**: A plataforma gera um endpoint HTTPS exclusivo com estas rotas principais: + + - `/inputs`: Lista os parâmetros de entrada requeridos + - `/kickoff`: Inicia uma execução com os inputs fornecidos + - `/status/{kickoff_id}`: Consulta o status da execução + +2. **Interface Web**: Acesse [app.crewai.com](https://app.crewai.com) para visualizar: + - **Aba Status**: Informações da implantação, detalhes do endpoint da API e token de autenticação + - **Aba Run**: Visualização da estrutura do seu crew + - **Aba Executions**: Histórico de todas as execuções + - **Aba Metrics**: Análises de desempenho + - **Aba Traces**: Insights detalhados das execuções + +### Dispare uma Execução + +No dashboard Enterprise, você pode: + +1. Clicar no nome do seu crew para abrir seus detalhes +2. Selecionar "Trigger Crew" na interface de gerenciamento +3. Inserir os inputs necessários no modal exibido +4. Monitorar o progresso à medida que a execução avança pelo pipeline + +### Monitoramento e Análises + +A plataforma Enterprise oferece recursos abrangentes de observabilidade: + +- **Gestão das Execuções**: Acompanhe execuções ativas e concluídas +- **Traces**: Quebra detalhada de cada execução +- **Métricas**: Uso de tokens, tempos de execução e custos +- **Visualização em Linha do Tempo**: Representação visual das sequências de tarefas + +### Funcionalidades Avançadas + +A plataforma Enterprise também oferece: + +- **Gerenciamento de Variáveis de Ambiente**: Armazene e gerencie com segurança as chaves de API +- **Conexões com LLM**: Configure integrações com diversos provedores de LLM +- **Repositório Custom Tools**: Crie, compartilhe e instale ferramentas +- **Crew Studio**: Monte crews via interface de chat sem escrever código + +## Solução de Problemas em Falhas de Implantação + +Se sua implantação falhar, verifique estes problemas comuns: + +### Falhas de Build + +#### Arquivo uv.lock Ausente + +**Sintoma**: Build falha no início com erros de resolução de dependências + +**Solução**: Gere e faça commit do arquivo lock: + +```bash +uv lock +git add uv.lock +git commit -m "Add uv.lock for deployment" +git push +``` + + + O arquivo `uv.lock` é obrigatório para todas as implantações. Sem ele, a plataforma + não consegue instalar suas dependências de forma confiável. + + +#### Estrutura de Projeto Incorreta + +**Sintoma**: Erros "Could not find entry point" ou "Module not found" + +**Solução**: Verifique se seu projeto corresponde à estrutura esperada: + +- **Tanto Crews quanto Flows**: Devem ter ponto de entrada em `src/project_name/main.py` +- **Crews**: Usam uma função `run()` como ponto de entrada +- **Flows**: Usam uma função `kickoff()` como ponto de entrada + +Veja [Preparar para Implantação](/pt-BR/enterprise/guides/prepare-for-deployment) para diagramas de estrutura detalhados. + +#### Decorador CrewBase Ausente + +**Sintoma**: Erros "Crew not found", "Config not found" ou erros de configuração de agent/task + +**Solução**: Certifique-se de que **todas** as classes crew usam o decorador `@CrewBase`: + +```python +from crewai.project import CrewBase, agent, crew, task + +@CrewBase # Este decorador é OBRIGATÓRIO +class YourCrew(): + """Descrição do seu crew""" + + @agent + def my_agent(self) -> Agent: + return Agent( + config=self.agents_config['my_agent'], # type: ignore[index] + verbose=True + ) + + # ... resto da definição do crew +``` + + + Isso se aplica a Crews independentes E crews embutidos dentro de projetos Flow. + Toda classe crew precisa do decorador. + + +#### Tipo Incorreto no pyproject.toml + +**Sintoma**: Build tem sucesso mas falha em runtime, ou comportamento inesperado + +**Solução**: Verifique se a seção `[tool.crewai]` corresponde ao tipo do seu projeto: + +```toml +# Para projetos Crew: +[tool.crewai] +type = "crew" + +# Para projetos Flow: +[tool.crewai] +type = "flow" +``` + +### Falhas de Runtime + +#### Falhas de Conexão com LLM + +**Sintoma**: Erros de chave API, "model not found" ou falhas de autenticação + +**Solução**: +1. Verifique se a chave API do seu provedor LLM está corretamente definida nas variáveis de ambiente +2. Certifique-se de que os nomes das variáveis de ambiente correspondem ao que seu código espera +3. Teste localmente com exatamente as mesmas variáveis de ambiente antes de implantar + +#### Erros de Execução do Crew + +**Sintoma**: Crew inicia mas falha durante a execução + +**Solução**: +1. Verifique os logs de execução no dashboard AMP (aba Traces) +2. Verifique se todas as ferramentas têm as chaves API necessárias configuradas +3. Certifique-se de que as configurações de agents em `agents.yaml` são válidas +4. Verifique se há erros de sintaxe nas configurações de tasks em `tasks.yaml` + + + Entre em contato com nossa equipe de suporte para ajuda com questões de + implantação ou dúvidas sobre a plataforma AMP. + \ No newline at end of file diff --git a/docs/pt-BR/enterprise/guides/prepare-for-deployment.mdx b/docs/pt-BR/enterprise/guides/prepare-for-deployment.mdx new file mode 100644 index 000000000..bf81b8f7a --- /dev/null +++ b/docs/pt-BR/enterprise/guides/prepare-for-deployment.mdx @@ -0,0 +1,305 @@ +--- +title: "Preparar para Implantação" +description: "Certifique-se de que seu Crew ou Flow está pronto para implantação no CrewAI AMP" +icon: "clipboard-check" +mode: "wide" +--- + + + Antes de implantar no CrewAI AMP, é crucial verificar se seu projeto está estruturado corretamente. + Tanto Crews quanto Flows podem ser implantados como "automações", mas eles têm estruturas de projeto + e requisitos diferentes que devem ser atendidos para uma implantação bem-sucedida. + + +## Entendendo Automações + +No CrewAI AMP, **automações** é o termo geral para projetos de IA Agêntica implantáveis. Uma automação pode ser: + +- **Um Crew**: Uma equipe independente de agentes de IA trabalhando juntos em tarefas +- **Um Flow**: Um workflow orquestrado que pode combinar múltiplos crews, chamadas diretas de LLM e lógica procedural + +Entender qual tipo você está implantando é essencial porque eles têm estruturas de projeto e pontos de entrada diferentes. + +## Crews vs Flows: Principais Diferenças + + + + Equipes de agentes de IA independentes com `crew.py` definindo agentes e tarefas. Ideal para tarefas focadas e colaborativas. + + + Workflows orquestrados com crews embutidos em uma pasta `crews/`. Ideal para processos complexos de múltiplas etapas. + + + +| Aspecto | Crew | Flow | +|---------|------|------| +| **Estrutura do projeto** | `src/project_name/` com `crew.py` | `src/project_name/` com pasta `crews/` | +| **Localização da lógica principal** | `src/project_name/crew.py` | `src/project_name/main.py` (classe Flow) | +| **Função de ponto de entrada** | `run()` em `main.py` | `kickoff()` em `main.py` | +| **Tipo no pyproject.toml** | `type = "crew"` | `type = "flow"` | +| **Comando CLI de criação** | `crewai create crew name` | `crewai create flow name` | +| **Localização da configuração** | `src/project_name/config/` | `src/project_name/crews/crew_name/config/` | +| **Pode conter outros crews** | Não | Sim (na pasta `crews/`) | + +## Referência de Estrutura de Projeto + +### Estrutura de Projeto Crew + +Quando você executa `crewai create crew my_crew`, você obtém esta estrutura: + +``` +my_crew/ +├── .gitignore +├── pyproject.toml # Deve ter type = "crew" +├── README.md +├── .env +├── uv.lock # OBRIGATÓRIO para implantação +└── src/ + └── my_crew/ + ├── __init__.py + ├── main.py # Ponto de entrada com função run() + ├── crew.py # Classe Crew com decorador @CrewBase + ├── tools/ + │ ├── custom_tool.py + │ └── __init__.py + └── config/ + ├── agents.yaml # Definições de agentes + └── tasks.yaml # Definições de tarefas +``` + + + A estrutura aninhada `src/project_name/` é crítica para Crews. + Colocar arquivos no nível errado causará falhas na implantação. + + +### Estrutura de Projeto Flow + +Quando você executa `crewai create flow my_flow`, você obtém esta estrutura: + +``` +my_flow/ +├── .gitignore +├── pyproject.toml # Deve ter type = "flow" +├── README.md +├── .env +├── uv.lock # OBRIGATÓRIO para implantação +└── src/ + └── my_flow/ + ├── __init__.py + ├── main.py # Ponto de entrada com função kickoff() + classe Flow + ├── crews/ # Pasta de crews embutidos + │ └── poem_crew/ + │ ├── __init__.py + │ ├── poem_crew.py # Crew com decorador @CrewBase + │ └── config/ + │ ├── agents.yaml + │ └── tasks.yaml + └── tools/ + ├── __init__.py + └── custom_tool.py +``` + + + Tanto Crews quanto Flows usam a estrutura `src/project_name/`. + A diferença chave é que Flows têm uma pasta `crews/` para crews embutidos, + enquanto Crews têm `crew.py` diretamente na pasta do projeto. + + +## Checklist Pré-Implantação + +Use este checklist para verificar se seu projeto está pronto para implantação. + +### 1. Verificar Configuração do pyproject.toml + +Seu `pyproject.toml` deve incluir a seção `[tool.crewai]` correta: + + + + ```toml + [tool.crewai] + type = "crew" + ``` + + + ```toml + [tool.crewai] + type = "flow" + ``` + + + + + Se o `type` não corresponder à estrutura do seu projeto, o build falhará ou + a automação não funcionará corretamente. + + +### 2. Garantir que o Arquivo uv.lock Existe + +CrewAI usa `uv` para gerenciamento de dependências. O arquivo `uv.lock` garante builds reproduzíveis e é **obrigatório** para implantação. + +```bash +# Gerar ou atualizar o arquivo lock +uv lock + +# Verificar se existe +ls -la uv.lock +``` + +Se o arquivo não existir, execute `uv lock` e faça commit no seu repositório: + +```bash +uv lock +git add uv.lock +git commit -m "Add uv.lock for deployment" +git push +``` + +### 3. Validar Uso do Decorador CrewBase + +**Toda classe crew deve usar o decorador `@CrewBase`.** Isso se aplica a: + +- Projetos crew independentes +- Crews embutidos dentro de projetos Flow + +```python +from crewai import Agent, Crew, Process, Task +from crewai.project import CrewBase, agent, crew, task +from crewai.agents.agent_builder.base_agent import BaseAgent +from typing import List + +@CrewBase # Este decorador é OBRIGATÓRIO +class MyCrew(): + """Descrição do meu crew""" + + agents: List[BaseAgent] + tasks: List[Task] + + @agent + def my_agent(self) -> Agent: + return Agent( + config=self.agents_config['my_agent'], # type: ignore[index] + verbose=True + ) + + @task + def my_task(self) -> Task: + return Task( + config=self.tasks_config['my_task'] # type: ignore[index] + ) + + @crew + def crew(self) -> Crew: + return Crew( + agents=self.agents, + tasks=self.tasks, + process=Process.sequential, + verbose=True, + ) +``` + + + Se você esquecer o decorador `@CrewBase`, sua implantação falhará com + erros sobre configurações de agents ou tasks ausentes. + + +### 4. Verificar Pontos de Entrada do Projeto + +Tanto Crews quanto Flows têm seu ponto de entrada em `src/project_name/main.py`: + + + + O ponto de entrada usa uma função `run()`: + + ```python + # src/my_crew/main.py + from my_crew.crew import MyCrew + + def run(): + """Executa o crew.""" + inputs = {'topic': 'AI in Healthcare'} + result = MyCrew().crew().kickoff(inputs=inputs) + return result + + if __name__ == "__main__": + run() + ``` + + + O ponto de entrada usa uma função `kickoff()` com uma classe Flow: + + ```python + # src/my_flow/main.py + from crewai.flow import Flow, listen, start + from my_flow.crews.poem_crew.poem_crew import PoemCrew + + class MyFlow(Flow): + @start() + def begin(self): + # Lógica do Flow aqui + result = PoemCrew().crew().kickoff(inputs={...}) + return result + + def kickoff(): + """Executa o flow.""" + MyFlow().kickoff() + + if __name__ == "__main__": + kickoff() + ``` + + + +### 5. Preparar Variáveis de Ambiente + +Antes da implantação, certifique-se de ter: + +1. **Chaves de API de LLM** prontas (OpenAI, Anthropic, Google, etc.) +2. **Chaves de API de ferramentas** se estiver usando ferramentas externas (Serper, etc.) + + + Teste seu projeto localmente com as mesmas variáveis de ambiente antes de implantar + para detectar problemas de configuração antecipadamente. + + +## Comandos de Validação Rápida + +Execute estes comandos a partir da raiz do seu projeto para verificar rapidamente sua configuração: + +```bash +# 1. Verificar tipo do projeto no pyproject.toml +grep -A2 "\[tool.crewai\]" pyproject.toml + +# 2. Verificar se uv.lock existe +ls -la uv.lock || echo "ERRO: uv.lock ausente! Execute 'uv lock'" + +# 3. Verificar se estrutura src/ existe +ls -la src/*/main.py 2>/dev/null || echo "Nenhum main.py encontrado em src/" + +# 4. Para Crews - verificar se crew.py existe +ls -la src/*/crew.py 2>/dev/null || echo "Nenhum crew.py (esperado para Crews)" + +# 5. Para Flows - verificar se pasta crews/ existe +ls -la src/*/crews/ 2>/dev/null || echo "Nenhuma pasta crews/ (esperado para Flows)" + +# 6. Verificar uso do CrewBase +grep -r "@CrewBase" . --include="*.py" +``` + +## Erros Comuns de Configuração + +| Erro | Sintoma | Correção | +|------|---------|----------| +| `uv.lock` ausente | Build falha durante resolução de dependências | Execute `uv lock` e faça commit | +| `type` errado no pyproject.toml | Build bem-sucedido mas falha em runtime | Altere para o tipo correto | +| Decorador `@CrewBase` ausente | Erros "Config not found" | Adicione decorador a todas as classes crew | +| Arquivos na raiz ao invés de `src/` | Ponto de entrada não encontrado | Mova para `src/project_name/` | +| `run()` ou `kickoff()` ausente | Não é possível iniciar automação | Adicione a função de entrada correta | + +## Próximos Passos + +Uma vez que seu projeto passar por todos os itens do checklist, você está pronto para implantar: + + + Siga o guia de implantação para implantar seu Crew ou Flow no CrewAI AMP usando + a CLI, interface web ou integração CI/CD. +