> ## Documentation Index
> Fetch the complete documentation index at: https://crewai.burt.pe.kr/llms.txt
> Use this file to discover all available pages before exploring further.

# 커스텀 에이전트 설정

> CrewAI 프레임워크 내에서 특정 역할과 작업에 맞게 에이전트를 조정하고 고급 커스텀 설정을 적용하는 포괄적인 가이드입니다.

## 커스터마이징 가능한 속성

효율적인 CrewAI 팀을 구성하려면 각 프로젝트의 특수한 요구사항에 맞게 AI 에이전트를 동적으로 조정할 수 있어야 한다. 이 섹션에서는 커스터마이징할 수 있는 기본 속성에 대해 설명한다.

### 커스터마이징을 위한 주요 속성

| 속성                       | 설명                                                                      |
| :----------------------- | :---------------------------------------------------------------------- |
| **역할**                   | '분석가'나 '고객 서비스 담당자'와 같이 에이전트가 팀 내에서 수행하는 직무를 지정한다.                      |
| **목표**                   | 에이전트의 목표를 정의하며, 역할과 팀의 전체적인 미션에 맞춰 설정한다.                                |
| **배경**                   | 에이전트의 성격에 깊이를 더해 동기와 팀 내 상호작용을 강화한다.                                    |
| **도구** *(선택사항)*          | 간단한 기능부터 복잡한 통합까지, 에이전트가 작업을 수행하는 데 사용하는 능력이나 방법을 나타낸다.                 |
| **캐시** *(선택사항)*          | 도구 사용 시 캐시를 사용할지 여부를 결정한다.                                              |
| **최대 RPM**               | 외부 서비스에 대한 최대 요청 수를 분당(`max_rpm`)으로 설정한다. 무제한 요청을 위해 `None`으로 설정할 수 있다. |
| **상세 로깅** *(선택사항)*       | 실행 과정에 대한 통찰력을 제공하며, 디버깅과 최적화를 위해 상세한 로깅을 활성화한다.                        |
| **위임 허용** *(선택사항)*       | 다른 에이전트에게 작업을 위임할지 여부를 제어한다. 기본값은 `False`이다.                            |
| **최대 반복 횟수** *(선택사항)*    | 무한 루프를 방지하기 위해 작업의 최대 반복 횟수(`max_iter`)를 제한한다. 기본값은 25이다.               |
| **최대 실행 시간** *(선택사항)*    | 에이전트가 작업을 완료하기 위해 허용되는 최대 시간을 설정한다.                                     |
| **시스템 템플릿** *(선택사항)*     | 에이전트의 시스템 형식을 정의한다.                                                     |
| **프롬프트 템플릿** *(선택사항)*    | 에이전트의 프롬프트 형식을 정의한다.                                                    |
| **응답 템플릿** *(선택사항)*      | 에이전트의 응답 형식을 정의한다.                                                      |
| **시스템 프롬프트 사용** *(선택사항)* | 작업 실행 중 시스템 프롬프트를 사용할지 여부를 제어한다.                                        |
| **컨텍스트 윈도우 존중**          | 기본적으로 슬라이딩 컨텍스트 윈도우를 활성화해 컨텍스트 크기를 유지한다.                                |
| **최대 재시도 횟수**            | 오류 발생 시 에이전트가 재시도할 수 있는 최대 횟수(`max_retry_limit`)를 설정한다.                 |

## 고급 커스텀 옵션

기본 속성 외에도, CrewAI는 에이전트의 동작과 기능을 크게 향상시키는 더 깊은 수준의 커스텀을 지원한다.

### 언어 모델 커스터마이제이션

에이전트는 특정 언어 모델(`llm`)과 함수 호출 언어 모델(`function_calling_llm`)을 사용해 커스터마이즈할 수 있다. 이를 통해 처리 및 의사결정 능력을 세밀하게 조절할 수 있다. `function_calling_llm`을 설정하면 기본 크루 함수 호출 언어 모델을 재정의할 수 있어 더 높은 수준의 커스터마이제이션이 가능하다.

## 성능 및 디버깅 설정

에이전트의 성능을 조정하고 작업을 모니터링하는 것은 효율적인 작업 실행에 매우 중요하다.

### 상세 모드와 RPM 제한

* **상세 모드**: 에이전트의 동작을 상세히 기록하는 디버깅 및 최적화에 유용한 기능이다. 에이전트 실행 과정에 대한 깊은 이해를 제공해 성능 최적화에 도움을 준다.
* **RPM 제한**: 분당 최대 요청 수(`max_rpm`)를 설정한다. 이 속성은 선택 사항이며, `None`으로 설정하면 제한 없이 외부 서비스에 무제한 쿼리를 보낼 수 있다.

### 작업 실행을 위한 최대 반복 횟수

`max_iter` 속성은 작업 하나를 위해 에이전트가 수행할 수 있는 최대 반복 횟수를 정의한다. 이를 통해 무한 루프나 지나치게 긴 실행을 방지할 수 있다. 기본값은 25로 설정되어 있으며, 이는 철저함과 효율성 사이의 균형을 제공한다. 에이전트가 이 횟수에 가까워지면 최선의 답변을 제공하려고 노력한다.

## 에이전트와 도구 커스터마이징

에이전트는 초기화 과정에서 속성과 도구를 정의해 커스터마이징한다. 도구는 에이전트가 특정 작업을 수행할 수 있게 하는 핵심 요소다. `tools` 속성은 에이전트가 사용할 수 있는 도구 배열로, 기본적으로 빈 리스트로 초기화된다. 새로운 요구 사항에 맞게 에이전트 초기화 후 도구를 추가하거나 수정할 수 있다.

```shell theme={null}
pip install 'crewai[tools]'
```

### 예제: 에이전트에게 도구 할당하기

```python theme={null}
import os
from crewai import Agent
from crewai_tools import SerperDevTool

# 도구 초기화를 위한 API 키 설정
os.environ["OPENAI_API_KEY"] = "Your Key"
os.environ["SERPER_API_KEY"] = "Your Key"

# 검색 도구 초기화
search_tool = SerperDevTool()

# 고급 옵션으로 에이전트 초기화
agent = Agent(
  role='리서치 애널리스트',
  goal='최신 시장 분석 제공',
  backstory='시장 동향에 대해 예리한 통찰력을 가진 전문 애널리스트.',
  tools=[search_tool],
  memory=True, # 메모리 활성화
  verbose=True,
  max_rpm=None, # 분당 요청 수 제한 없음
  max_iter=25, # 최대 반복 횟수 기본값
)
```

## 위임과 자율성

CrewAI 프레임워크 내에서 에이전트의 위임 능력이나 질문 기능을 제어하는 것은 자율성과 협업 역학을 조정하는 데 중요하다. 기본적으로 `allow_delegation` 속성은 `False`로 설정되어 있어, 에이전트가 필요에 따라 도움을 요청하거나 작업을 위임할 수 없다. 이 기본 동작은 CrewAI 생태계 내에서 협업 문제 해결과 효율성을 촉진하기 위해 변경할 수 있다. 필요에 따라 특정 운영 요구 사항에 맞게 위임 기능을 활성화할 수 있다.

### 예제: 에이전트의 위임 기능 비활성화

```python theme={null}
agent = Agent(
  role='콘텐츠 작가',
  goal='시장 동향에 관한 매력적인 콘텐츠 작성',
  backstory='시장 분석 전문 지식을 갖춘 경험 많은 작가',
  allow_delegation=True # 위임 기능 활성화
)
```

## 결론

CrewAI에서 에이전트를 커스터마이징할 때 역할, 목표, 배경 스토리, 도구를 설정하고, 언어 모델 커스터마이징, 메모리, 성능 설정, 위임 설정과 같은 고급 옵션을 추가하면 복잡한 문제를 해결할 수 있는 세밀하고 유능한 AI 팀을 구성할 수 있다.
