코딩 에이전트

코딩 에이전트 (코드 작성·실행)

CrewAI 에이전트는 이제 코드를 직접 작성하고 실행할 수 있는데요, 이런 능력이 특히 계산이나 프로그래밍이 필요한 태스크에서 문제 해결력을 크게 키워줘요. 에이전트를 만들 때 allow_code_execution=True만 켜면 내부적으로 코드를 실행하는 도구가 붙어요. 다만 기본값이 False라서 명시적으로 켜 줘야 한다는 점, 그리고 더 강력한 모델을 쓰는 편이 좋다는 점을 기억해 두면 좋아요.

출처: 공식문서

본문

코드 실행 활성화

에이전트를 생성할 때 allow_code_execution 파라미터를 True로 설정하면 코드 실행이 켜져요.

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
)

allow_code_execution 파라미터는 기본값이 False예요.

중요 고려 사항

  1. 모델 선택: 코드 실행을 켤 때는 Claude 3.5 Sonnet, GPT-4 같은 더 유능한 모델을 권장해요. 이런 모델은 프로그래밍 개념을 더 잘 이해하고 올바르고 효율적인 코드를 만들 가능성이 높아요.
  2. 오류 처리: 코드 실행에는 오류 처리가 포함돼요. 실행된 코드가 예외를 던지면 에이전트는 오류 메시지를 받고 코드를 고치거나 대안을 제시할 수 있어요. max_retry_limit 파라미터(기본값 2)가 태스크의 최대 재시도 횟수를 제어해요.
  3. 의존성: 코드 실행을 쓰려면 crewai_tools 패키지를 설치해야 해요. 설치돼 있지 않으면 에이전트가 "Coding tools not available. Install crewai_tools." 같은 info 메시지를 남겨요.

코드 실행 프로세스

코드 실행이 켜진 에이전트가 프로그래밍이 필요한 태스크를 만나면 이렇게 진행돼요:

  1. 태스크 분석(Task Analysis): 에이전트가 태스크를 분석해 코드 실행이 필요하다고 판단해요.
  2. 코드 작성(Code Formulation): 문제를 풀기 위한 파이썬 코드를 작성해요.
  3. 코드 실행(Code Execution): 코드가 내부 코드 실행 도구(CodeInterpreterTool)로 전송돼요.
  4. 결과 해석(Result Interpretation): 에이전트가 결과를 해석해 응답에 반영하거나 이후 문제 해결에 사용해요.

예제 사용법

코드 실행이 가능한 에이전트를 만들고 태스크에서 사용하는 전체 예시예요.

from crewai import Agent, Task, Crew

# Create an agent with code execution enabled
coding_agent = Agent(
    role="Python Data Analyst",
    goal="Analyze data and provide insights using Python",
    backstory="You are an experienced data analyst with strong Python skills.",
    allow_code_execution=True
)

# Create a task that requires code execution
data_analysis_task = Task(
    description="Analyze the given dataset and calculate the average age of participants.",
    agent=coding_agent
)

# Create a crew and add the task
analysis_crew = Crew(
    agents=[coding_agent],
    tasks=[data_analysis_task]
)

# Execute the crew
result = analysis_crew.kickoff()

print(result)

이 예시에서 coding_agent는 파이썬 코드를 작성·실행해 데이터 분석 태스크를 수행해요.

더 알아보기