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 중 하나를 반드시 설정해야 한다.