> ## 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 에이전트는 이제 코드를 작성하고 실행할 수 있는 강력한 기능을 갖추게 되었다. 이 기능은 특히 계산적이거나 프로그래밍적 해결이 필요한 작업에 매우 유용하다.

## 코드 실행 활성화

에이전트가 코드를 실행할 수 있도록 하려면, 에이전트를 생성할 때 `allow_code_execution` 매개변수를 `True`로 설정한다.

예제는 다음과 같다:

```python theme={null}
from crewai import Agent

coding_agent = Agent(
    role="Senior Python Developer",
    goal="Craft well-designed and thought-out code",
    backstory="You are a senior Python developer with extensive experience in software architecture and best practices.",
    allow_code_execution=True
)
```

<Note>
  `allow_code_execution` 매개변수의 기본값은 `False`이다.
</Note>

## 주요 고려사항

1. **모델 선택**: 코드 실행 기능을 활성화할 때는 Claude 3.5 Sonnet이나 GPT-4와 같은 고성능 모델을 사용하는 것을 강력히 권장한다.
   이 모델들은 프로그래밍 개념을 더 잘 이해하며, 정확하고 효율적인 코드를 생성할 가능성이 높다.

2. **오류 처리**: 코드 실행 기능에는 오류 처리 기능이 포함되어 있다. 실행 중인 코드에서 예외가 발생하면, 에이전트가 오류 메시지를 받아 코드를 수정하거나
   대안을 제공할 수 있다. `max_retry_limit` 매개변수는 기본값이 2이며, 이는 작업의 최대 재시도 횟수를 제어한다.

3. **의존성**: 코드 실행 기능을 사용하려면 `crewai_tools` 패키지를 설치해야 한다. 설치되지 않은 경우, 에이전트는 "코딩 도구를 사용할 수 없습니다. crewai\_tools를 설치하세요."라는 정보 메시지를 기록한다.

## 코드 실행 프로세스

코드 실행 기능이 활성화된 에이전트가 프로그래밍이 필요한 작업을 만나면 다음과 같은 과정을 거친다:

<Steps>
  <Step title="작업 분석">
    에이전트는 작업을 분석하고 코드 실행이 필요하다고 판단한다.
  </Step>

  <Step title="코드 작성">
    문제를 해결하기 위해 필요한 파이썬 코드를 작성한다.
  </Step>

  <Step title="코드 실행">
    작성한 코드를 내부 코드 실행 도구(`CodeInterpreterTool`)로 전송한다.
  </Step>

  <Step title="결과 해석">
    에이전트는 실행 결과를 해석하고 이를 응답에 반영하거나 추가 문제 해결에 활용한다.
  </Step>
</Steps>

## 예제 사용법

코드 실행 기능을 가진 에이전트를 생성하고 이를 작업에 활용하는 구체적인 예제를 살펴보자.

```python theme={null}
from crewai import Agent, Task, Crew

# 코드 실행이 가능한 에이전트 생성
coding_agent = Agent(
    role="Python 데이터 분석가",
    goal="Python을 사용해 데이터를 분석하고 인사이트 제공",
    backstory="Python 실력이 뛰어난 경험 많은 데이터 분석가.",
    allow_code_execution=True
)

# 코드 실행이 필요한 작업 생성
data_analysis_task = Task(
    description="주어진 데이터셋을 분석하고 참가자들의 평균 나이를 계산하라.",
    agent=coding_agent
)

# 크루 생성 후 작업 추가
analysis_crew = Crew(
    agents=[coding_agent],
    tasks=[data_analysis_task]
)

# 크루 실행
result = analysis_crew.kickoff()

print(result)
```

이 예제에서 `coding_agent`는 데이터 분석 작업을 수행하기 위해 Python 코드를 작성하고 실행할 수 있다.
