간단한 스크리닝 에이전트 구현: CrewAI 활용
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- Python 기반 자동화 도구 사용자
- AWS 문서 기반 인터뷰 질문 생성이 필요한 HR/Recruiter
- 중간 수준의 개발자 및 DevOps 엔지니어 (가상 환경 설정, CrewAI 활용 기초 지식 요구)
핵심 요약
- CrewAI를 활용한 스크리닝 에이전트 구현
- gemini/gemma-3n-e2b-it
모델을 사용한 AWS 문서 기반 질문 생성
- .env
파일을 통한 API 키 관리 및 LLM 설정
- 프로젝트 구조 정의
- uv init
으로 프로젝트 생성 후 가상 환경 설정 (uv venv
)
- agents.py
에서 Agent
정의, tasks.py
에서 Task
정의
- 자동화 흐름
- topics
입력을 통해 AWS Redshift, Glue, S3 주제별 질문 생성
- 결과는 output.md
파일에 저장
섹션별 세부 요약
1. 프로젝트 초기화 및 환경 설정
uv init screening_agent
명령어로 프로젝트 생성- 가상 환경 생성 및 활성화 (
uv venv
,source .venv/bin/activate
) pyproject.toml
에crewai==0.134.0
의존성 추가 및 설치 (uv lock
,uv sync
)
2. LLM 설정 및 API 키 관리
.env
파일에GOOGLE_API_KEY
설정llm.py
에서LLM
객체 정의:
```python
llm = LLM(model='gemini/gemma-3n-e2b-it', api_key=os.getenv('GOOGLE_API_KEY'), temperature=0.0)
```
3. 에이전트 정의
agents.py
에서Screening Agent
생성:
- 역할: AWS 공식 문서에서 주제별 정보 수집
- 목표: 각 주제당 10개 질문 생성 (1라인 질문 + 1라인 답변 + 참조 링크 포함)
- topics
파라미터 동적 전달 지원
4. 태스크 정의
tasks.py
에서Task
생성:
- 설명: 비기술자도 이해할 수 있는 질문 생성 (HR 사용 목적)
- 예상 출력: 10개 섹션 (질문, 답변, 참조 링크)
- topics
파라미터 동적 전달
5. 메인 실행 파일 구조
main.py
에서Crew
정의:
```python
crew = Crew(agents=[screening_agent], tasks=[screening_task])
result = crew.kickoff(inputs={"topics": "Redshift, Glue, S3"})
```
- 결과를 output.md
파일로 저장
결론
- CrewAI를 활용한 자동화 흐름:
- uv
도구로 프로젝트 생성 후 가상 환경 설정 → LLM 및 에이전트 정의 → topics
입력을 통해 자동 생성
- 추천사항: topics
파라미터를 사용자 입력으로 확장하거나, RAG 기반 질문 생성 로직 추가 가능
- 예시 실행: uv run main.py
명령어로 실행 후 output.md
파일에서 질문 결과 확인 가능