CrewAI에서 특정 에이전트를 매니저로 설정하기

CrewAI는 사용자가 특정 에이전트를 크루의 매니저로 지정할 수 있게 해준다. 이를 통해 작업 관리와 조정에 더 많은 통제력을 가질 수 있다. 이 기능은 프로젝트 요구사항에 맞게 매니저 역할을 커스터마이징할 수 있게 한다.

manager_agent 속성 사용하기

커스텀 매니저 에이전트

manager_agent 속성을 사용하면 크루를 관리할 커스텀 에이전트를 정의할 수 있다. 이 에이전트는 전체 프로세스를 감독하며, 작업이 효율적으로 완료되고 최고 수준의 결과를 달성하도록 보장한다.

import os
from crewai import Agent, Task, Crew, Process

# 에이전트 정의
researcher = Agent(
    role="Researcher",
    goal="AI와 AI 에이전트에 대한 철저한 연구와 분석 수행",
    backstory="기술, 소프트웨어 엔지니어링, AI, 스타트업 분야의 전문 연구원으로, 프리랜서로 활동하며 새로운 클라이언트를 위해 연구 중이다.",
    allow_delegation=False,
)

writer = Agent(
    role="Senior Writer",
    goal="AI와 AI 에이전트에 관한 매력적인 콘텐츠 작성",
    backstory="기술, 소프트웨어 엔지니어링, AI, 스타트업 분야의 시니어 작가로, 프리랜서로 활동하며 새로운 클라이언트를 위해 콘텐츠를 작성 중이다.",
    allow_delegation=False,
)

# 작업 정의
task = Task(
    description="기사에 대한 5가지 흥미로운 아이디어를 생성하고, 각 아이디어에 대해 전체 기사의 잠재력을 보여줄 수 있는 매력적인 단락을 작성한다. 아이디어 목록과 각각의 단락, 그리고 노트를 반환한다.",
    expected_output="5개의 불릿 포인트, 각각 단락과 함께 노트가 포함된 형태.",
)

# 매니저 에이전트 정의
manager = Agent(
    role="Project Manager",
    goal="크루를 효율적으로 관리하고 고품질 작업 완료 보장",
    backstory="복잡한 프로젝트를 감독하고 팀을 성공으로 이끄는 데 능숙한 경험 많은 프로젝트 매니저다. 크루 멤버들의 노력을 조율하여 각 작업이 시간 내에 최고의 수준으로 완료되도록 한다.",
    allow_delegation=True,
)

# 커스텀 매니저와 함께 크루 인스턴스 생성
crew = Crew(
    agents=[researcher, writer],
    tasks=[task],
    manager_agent=manager,
    process=Process.hierarchical,
)

# 크루 작업 시작
result = crew.kickoff()

커스텀 매니저 에이전트의 장점

  • 향상된 제어력: 프로젝트의 특정 요구사항에 맞게 관리 방식을 세밀하게 조정할 수 있다.
  • 개선된 조정 능력: 숙련된 에이전트가 작업 조정과 관리를 효율적으로 수행한다.
  • 맞춤형 관리: 프로젝트 목표에 부합하는 관리 역할과 책임을 정의할 수 있다.

매니저 LLM 설정하기

계층적 프로세스를 사용하면서 커스텀 매니저 에이전트를 설정하지 않으려면, 매니저의 언어 모델을 지정할 수 있다:

from crewai import LLM

manager_llm = LLM(model="gpt-4o")

crew = Crew(
    agents=[researcher, writer],
    tasks=[task],
    process=Process.hierarchical,
    manager_llm=manager_llm
)

계층적 프로세스를 사용할 때는 manager_agent 또는 manager_llm 중 하나를 반드시 설정해야 한다.