1. 소개
인공지능 분야에서 멀티 에이전트 시스템은 점차 복잡한 문제를 해결하고 효율적인 협업을 달성하기 위한 핵심 기술로 자리 잡고 있으며, 강력한 멀티 에이전트 협업 도구인 CrewAI는 개발자에게 지능형 협업 시스템을 구축할 수 있는 편리한 방법을 제공합니다. 이 백서에서는 다음을 기반으로 지능형 협업 시스템을 구축하는 방법을 소개합니다. CrewAI 멀티 에이전트 시스템을 구축합니다.
2. CrewAI 핵심 개념 자세히 보기
2.1 에이전트
2.1.1 에이전트의 정의 및 기능
에이전트는 작업을 수행하고, 의사 결정을 내리고, 다른 에이전트와 소통할 수 있는 능력을 갖춘 CrewAI의 자율적인 단위입니다. 에이전트는 팀의 구성원으로서 연구원, 작가 또는 고객 지원과 같은 특정 역할을 맡고 팀의 목표에 기여하기 위해 협력합니다.
2.1.2 프록시 속성
- 역할 팀 내에서 상담원의 기능적 위치를 명확히 하고 해당 상담원이 수행하기에 가장 적합한 업무 유형을 결정합니다. 예를 들어 연구원 역할의 상담원은 정보 수집 및 분석에 능숙하고, 작가 역할의 상담원은 콘텐츠 제작에 집중합니다.
- 목표 상담원을 안내하는 의사 결정 프로세스는 상담원이 달성하기 위해 노력하는 개별적인 목표입니다. 예를 들어 데이터 분석가 상담원의 목표는 비즈니스 의사 결정을 지원하기 위해 실행 가능한 인사이트를 추출하는 것일 수 있습니다.
- 배경 스토리 상담원의 역할과 목표에 대한 풍부한 컨텍스트 정보를 제공하여 상호 작용과 협업의 역동성을 강화하세요. 예를 들어 데이터 분석가의 경우 "귀하는 대기업의 데이터 분석가입니다. 귀하는 데이터를 분석하여 비즈니스에 인사이트를 제공하는 업무를 담당하고 있습니다. 현재 마케팅 캠페인의 성과를 분석하는 프로젝트를 진행하고 있습니다."와 같은 식입니다.
- LLM(선택 사항) : 에이전트를 실행하기 위한 언어 모델을 나타냅니다. 지정하지 않으면 기본값은 에이전트를
OPENAI_MODEL_NAME
환경 변수에서 모델 이름을 가져오지 않으면 기본값이 "gpt-4"로 설정됩니다. 개발자는 다양한 작업의 처리 요구 사항을 충족하기 위해 적절한 언어 모델을 선택할 수 있습니다. - 도구(선택 사항) 기본값의 빈 목록이 있는 실행 환경과 호환되는 사용자 지정 클래스의 인스턴스로, 보통 에이전트가 사용할 수 있는 기능 또는 기능 집합입니다. 이러한 툴은 에이전트의 기능을 확장하여 웹 검색, 데이터 분석 등의 작업을 수행할 수 있도록 합니다.
- 호출 함수용 LLM(선택 사항) 이 상담원 도구 호출을 처리하는 언어 모델을 지정하고, 전달된 경우 팀 함수 호출 LLM을 재정의하며, 기본값은 다음과 같습니다.
None
. 개발자는 이 속성을 유연하게 구성함으로써 에이전트의 도구 호출 동작을 보다 정확하게 제어할 수 있습니다. - 최대 반복 횟수(선택 사항) 에이전트가 강제로 최상의 답변을 제공하기 전에 수행할 수 있는 최대 반복 횟수이며 기본값은 25입니다. 이 매개 변수를 적절하게 설정하면 작업 실행의 깊이와 효율성을 제어하는 데 도움이 됩니다.
- 최대 요청 수(선택 사항) 속도 제한을 피하기 위해 프록시가 분당 실행할 수 있는 최대 요청 수로, 기본값은 다음과 같습니다.
None
. 개발자는 실제 상황에 맞게 설정하여 시스템의 안정적인 작동을 보장할 수 있습니다. - 최대 실행 시간(선택 사항) 상담원이 작업을 수행할 수 있는 최대 시간이며, 기본값은 다음과 같습니다.
None
는 최대 실행 시간 제한이 없음을 나타냅니다. 이 속성을 사용하여 작업의 실행 기간을 제어하여 리소스를 오래 차지하지 않도록 할 수 있습니다. - 상세 모드(선택 사항) : 다음과 같이 설정합니다.
True
구성 가능한 내부 로거는 디버깅 및 모니터링을 위한 자세한 실행 로그를 제공하며, 기본값은 다음과 같습니다.False
. 개발 및 최적화 중에 상세 모드를 켜면 문제를 빠르게 찾을 수 있습니다. - 위임 권한(선택 사항) 상담원은 작업이나 이슈를 서로 위임하여 가장 적합한 상담원이 작업을 처리하도록 할 수 있으며, 기본값은
True
. 이 기능은 팀 내에서 유연한 협업을 촉진하고 작업 처리의 정확성과 효율성을 향상시킵니다. - 단계 콜백(선택 사항) : 작업을 기록하거나 다른 작업을 수행하는 데 사용할 수 있는 에이전트의 각 단계 후에 호출되는 함수는 팀의
step_callback
. 개발자는 이 콜백 함수를 사용하여 사용자 지정 모니터링 및 처리 로직을 구현할 수 있습니다. - 캐시(선택 사항) 프록시가 도구 사용 캐시를 사용할지 여부를 나타냅니다(기본값은
True
. 캐싱 메커니즘은 작업 실행의 효율성을 높이고 중복 계산을 줄이는 데 도움이 됩니다.
2.1.3 상담원 만들기
상담원은 CrewAI에 내장된 위임 및 커뮤니케이션 메커니즘을 사용하여 서로 상호 작용할 수 있습니다. 이를 통해 팀 내에서 역동적인 작업 관리와 문제 해결이 가능합니다.
프록시를 만들려면 일반적으로 필요한 속성으로 프록시를 초기화하는 것이 일반적입니다. Agent
클래스의 인스턴스입니다. 다음은 모든 속성을 가진 개념의 예시입니다:
from crewai import Agent
agent = Agent(
role="数据分析师",
goal="提取可操作的见解",
backstory="""您是一家大公司的数据分析师。
您负责分析数据并为业务提供见解。
您目前正在进行一个项目,分析我们营销活动的表现。""",
tools=[my_tool1, my_tool2], # 可选,默认为空列表
llm=my_llm, # 可选
function_calling_llm=my_llm, # 可选
max_iter=15, # 可选
max_rpm=None, # 可选
verbose=True, # 可选
allow_delegation=True, # 可选
step_callback=my_intermediate_step_callback, # 可选
cache=True # 可选
)
2.2 작업
2.2.1 작업 정의 및 협업
CrewAI 프레임워크에서 작업은 에이전트가 완료해야 하는 특정 작업으로, 명확한 설명, 실행 책임 에이전트, 필요한 도구 등 실행에 필요한 다양한 세부 정보가 포함되어 있습니다. 태스크는 협업이 가능하므로 속성 관리 및 프로세스 오케스트레이션을 통해 여러 상담원이 함께 작업하여 팀워크의 효율성을 높일 수 있습니다.
2.2.2 작업의 속성
- 설명 상담원이 수행해야 할 작업을 정확히 알 수 있도록 작업 내용을 명확하고 간결하게 설명합니다. 예를 들어 "AI에 관한 가장 관련성 높은 최신 뉴스를 찾아 요약하세요."와 같이 말이죠.
- 에이전트 작업 실행을 담당하는 상담원은 역할, 가용성 및 기타 요인에 따라 직접 지정하거나 승무원의 프로세스에 따라 할당할 수 있습니다. 이렇게 하면 작업이 적합한 실행자를 찾을 수 있습니다.
- 예상 출력 완료된 작업에 대한 자세한 설명으로 상담원이 작업의 목표와 원하는 결과를 명확히 알 수 있도록 합니다. 예를 들어 "가장 중요한 AI 뉴스 상위 5개 항목에 대한 글머리 기호 목록 요약".
- 도구(선택 사항) 상담원이 작업을 수행하는 데 사용하는 기능이나 기능은 작업 성과와 상담원 상호 작용을 향상시킬 수 있습니다. 상담원은 올바른 도구를 선택함으로써 보다 효율적으로 작업을 완료할 수 있습니다.
- 비동기 실행(선택 사항) 시간이 오래 걸리거나 후속 작업 실행에 거의 영향을 주지 않는 작업의 경우, 설정 시 작업이 비동기적으로 실행되어 다른 작업이 완료될 때까지 기다리지 않고 계속 진행할 수 있습니다.
- 컨텍스트(선택 사항) 이 작업의 컨텍스트로서 출력을 사용할 작업을 지정하고, 작업 간의 종속성을 명확히 하며, 작업 출력을 효과적으로 전달하고 활용할 수 있도록 합니다.
- 구성(선택 사항) 작업 수행에 사용되는 에이전트의 추가 구성 세부 정보를 통해 작업 실행을 더욱 유연하게 사용자 지정할 수 있습니다.
- 출력 JSON(선택 사항) : JSON 객체를 출력하려면 OpenAI API가 필요하며 하나의 출력 형식만 설정할 수 있습니다. 이 속성은 데이터 상호 작용 및 다른 시스템과의 통합을 용이하게 합니다.
- 출력 피단틱(선택 사항) Pydantic 모델 객체를 출력하려면 OpenAI API도 필요하며, 출력 형식은 하나만 설정할 수 있습니다. 개발자는 실제 필요에 따라 적절한 출력 형식을 선택할 수 있습니다.
- 출력 파일(선택 사항) : 작업 출력을 파일에 저장합니다.
输出 JSON
어쩌면输出 Pydantic
함께 사용하면 출력이 저장되는 방식을 지정할 수 있습니다. 이렇게 하면 데이터 지속성 및 후속 분석이 용이해집니다. - 콜백(선택 사항) 작업 완료 후 실행되며 이메일 전송과 같이 작업 결과에 따라 작업이나 알림을 트리거하는 데 사용할 수 있는 Python 호출 가능 함수입니다.
- 수동 입력(선택 사항) 작업에 최종 수동 피드백이 필요한지 여부를 나타내며, 작업 결과의 정확성과 신뢰성을 보장하기 위해 수동 감독이 필요한 작업에 유용합니다.
2.2.3 도구를 사용하여 작업 만들기
작업의 기본 속성을 이해한 후에는 도구를 사용하여 작업을 만드는 방법을 자세히 살펴봅니다. 아래는 예시입니다:
import os
os.environ["OPENAI_API_KEY"] = "Your Key"
os.environ["SERPER_API_KEY"] = "Your Key" # serper.dev API key
from crewai import Agent, Task, Crew
from crewai_tools import SerperDevTool
research_agent = Agent(
role="研究员",
goal="查找并总结最新的人工智能新闻",
backstory="""您是一家大公司的研究员。
您负责分析数据并为业务提供见解。""",
verbose=True
)
search_tool = SerperDevTool()
task = Task(
description="查找并总结最新的人工智能新闻",
expected_output="对前 5 条最重要的人工智能新闻进行项目符号列表总结",
agent=research_agent,
tools=[search_tool]
)
crew = Crew(
agents=[research_agent],
tasks=[task],
verbose=2
)
result = crew.kickoff()
print(result)
2.2.4 작업 만들기
작업을 만들려면 작업의 범위, 담당 에이전트 및 유연성을 위한 추가 속성을 정의해야 합니다:
from crewai import Task
task = Task(
description="查找并总结有关人工智能的最新和最相关新闻",
agent=sales_agent
)
작업 할당은 다음을 지정하여 직접 할당할 수 있습니다. 代理
또는 分层
는 역할, 가용성 등에 따라 결정됩니다.
2.2.5 작업 종속성
CrewAI에서는 한 작업의 출력이 자동으로 다음 작업으로 전달되므로 다른 작업의 출력에 의존하지만 그 작업 이후에 즉시 실행되지 않는 작업이 있을 때 유용할 수 있습니다. 이는 작업의 上下文
속성 완성:
research_ai_task = Task(
description="查找并总结最新的人工智能新闻",
expected_output="对前 5 条最重要的人工智能新闻进行项目符号列表总结",
async_execution=True,
agent=research_agent,
tools=[search_tool]
)
research_ops_task = Task(
description="查找并总结最新的人工智能运营新闻",
expected_output="对前 5 条最重要的人工智能运营新闻进行项目符号列表总结",
async_execution=True,
agent=research_agent,
tools=[search_tool]
)
write_blog_task = Task(
description="撰写一篇关于人工智能重要性及其最新新闻的完整博客文章",
expected_output="4 段长的完整博客文章",
agent=writer_agent,
context=[research_ai_task, research_ops_task]
)
2.2.6 비동기 실행
작업은 비동기적으로 실행되므로 크루는 다음 작업으로 넘어가기 전에 작업이 완료될 때까지 기다리지 않습니다. 이 기능은 완료하는 데 시간이 오래 걸리거나 다음 작업 실행에 중요하지 않은 작업에 유용합니다. 이 기능을 사용하려면 上下文
속성이 향후 작업에서 정의되면 비동기 작업의 출력이 완료될 때까지 기다려야 합니다.
list_ideas = Task(
description="探索有关人工智能文章的 5 个有趣想法。",
expected_output="一份包含 5 个文章想法的项目符号列表。",
agent=researcher,
async_execution=True # 将以异步方式执行
)
list_important_history = Task(
description="研究人工智能的历史,并告诉我 5 个最重要的事件。",
expected_output="包含 5 个重要事件的项目符号列表。",
agent=researcher,
async_execution=True # 将以异步方式执行
)
write_article = Task(
description="撰写一篇关于人工智能、其历史和有趣想法的文章。",
expected_output="一篇关于人工智能的 4 段文章。",
agent=writer,
context=[list_ideas, list_important_history] # 将等待两个任务的输出完成
)
2.2.7 콜백 메커니즘
작업 완료 시 콜백 함수를 실행하여 작업 결과에 따라 작업 또는 알림을 트리거할 수 있습니다.
def callback_function(output: TaskOutput):
# 任务完成后执行某些操作
# 例如:向经理发送电子邮件
print(f"""
任务完成!
任务:{output.description}
输出:{output.raw_output}
""")
research_task = Task(
description="查找并总结最新的人工智能新闻",
expected_output="对前 5 条最重要的人工智能新闻进行项目符号列表总结",
agent=research_agent,
tools=[search_tool],
callback=callback_function
)
2.2.8 작업별 출력에 액세스하기
크루 그룹이 실행되면 작업 개체의 output
속성은 특정 작업의 출력에 액세스합니다:
task1 = Task(
description="查找并总结最新的人工智能新闻",
expected_output="对前 5 条最重要的人工智能新闻进行项目符号列表总结",
agent=research_agent,
tools=[search_tool]
)
crew = Crew(
agents=[research_agent],
tasks=[task1, task2, task3],
verbose=2
)
result = crew.kickoff()
print(f"""
任务完成!
任务:{task1.output.description}
输出:{task1.output.raw_output}
""")
2.2.9 도구 재정의 메커니즘
작업에서 도구를 지정하면 상담원 기능을 동적으로 조정할 수 있어 CrewAI의 유연성을 강조할 수 있습니다.
2.2.10 오류 처리 및 유효성 검사 메커니즘
작업을 만들고 실행할 때 작업 속성의 견고성과 신뢰성을 보장하기 위한 유효성 검사 메커니즘이 존재합니다. 이러한 유효성 검사에는 다음이 포함되지만 이에 국한되지는 않습니다:
- 명확한 출력 기대치를 유지하려면 작업당 하나의 출력 유형만 설정하세요.
- 수동 배포 방지
id
속성을 사용하여 고유 식별자 시스템의 무결성을 유지합니다.
이러한 검증은 CrewAI 프레임워크 내에서 작업 실행의 일관성과 안정성을 유지하는 데 도움이 됩니다.
2.3 도구
2.3.1 도구의 역할 및 유형
CrewAI 툴은 상담원에게 웹 검색, 데이터 분석, 콘텐츠 생성, 작업 위임 등 다양한 기능을 제공하여 상담원이 단순 검색부터 복잡한 상호작용, 효과적인 팀워크에 이르는 다양하고 복잡한 작업을 수행할 수 있도록 지원합니다.
2.3.2 도구의 주요 기능
- 유틸리티 웹 검색, 데이터 분석, 콘텐츠 생성 등 다양한 시나리오에서 일하는 상담원의 요구 사항을 충족하기 위해 여러 영역의 기능 요구 사항을 다루고 있습니다.
- 통합 워크플로에 원활하게 통합되고 상담원 및 작업과 긴밀하게 협력하여 상담원의 전반적인 역량을 향상하고 효율적인 협업을 가능하게 하는 기능입니다.
- 사용자 지정 기능 개발자가 특정 요구 사항을 충족하는 맞춤형 툴을 개발하거나 기존 툴을 사용하여 상담원의 실제 요구 사항에 맞게 구성을 개인화할 수 있는 유연성을 제공합니다.
- 오류 처리 강력한 오류 처리 메커니즘을 통해 작동 중 예외가 발생할 때 도구가 원활하게 예외를 처리하여 시스템의 원활한 작동을 보장합니다.
- 캐싱 메커니즘 지능형 캐싱 기능으로 성능을 최적화하고 중복 작업을 줄입니다. 개발자는 또한
cache_function
속성을 사용하면 캐싱 메커니즘을 더욱 세밀하게 제어할 수 있어 효율성이 더욱 향상됩니다.
2.3.3 CrewAI 도구 사용
CrewAI 도구로 상담원의 기능을 향상시키려면 먼저 추가 툴킷을 설치해야 합니다:
pip install 'crewai[tools]'
아래는 사용 사례입니다:
import os
from crewai import Agent, Task, Crew
# 导入 CrewAI 工具
from crewai_tools import (
DirectoryReadTool,
FileReadTool,
SerperDevTool,
WebsiteSearchTool
)
# 设置 API 密钥
os.environ["SERPER_API_KEY"] = "Your Key" # serper.dev API 密钥
os.environ["OPENAI_API_KEY"] = "Your Key"
# 实例化工具
docs_tool = DirectoryReadTool(directory='./blog-posts')
file_tool = FileReadTool()
search_tool = SerperDevTool()
web_rag_tool = WebsiteSearchTool()
# 创建代理
researcher = Agent(
role="市场研究分析师",
goal="提供关于人工智能行业最新市场分析",
backstory="一位对市场趋势敏锐的专家分析师。",
tools=[search_tool, web_rag_tool],
verbose=True
)
writer = Agent(
role="内容撰写人员",
goal="撰写有关人工智能行业的引人入胜的博客文章",
backstory="一位对技术充满激情的熟练撰稿人。",
tools=[docs_tool, file_tool],
verbose=True
)
# 定义任务
research = Task(
description="研究人工智能行业的最新趋势并提供摘要。",
expected_output="关于人工智能行业前三个热门发展的摘要,并对其重要性提供独特视角。",
agent=researcher
)
write = Task(
description="根据研究分析师的摘要撰写一篇引人入胜的博客文章。从目录中最新的博客文章中汲取灵感。",
expected_output="一篇以 markdown 格式排版的四段博客文章,内容引人入胜、信息丰富且易懂,避免使用复杂术语。",
agent=writer,
output_file='blog-posts/new_post.md' # 最终的博客文章将保存在此处
)
# 组建团队
crew = Crew(
agents=[researcher, writer],
tasks=[research, write],
verbose=2
)
# 执行任务
crew.kickoff()
2.3.4 나만의 도구 만들기
먼저 툴킷을 설치해야 합니다:
pip install 'crewai[tools]'
- 하위 분류
BaseTool
상속을 통해BaseTool
클래스를 사용하면 개발자가 사용자 지정 도구를 만들 수 있습니다. 툴의 이름과 설명을 정의하고_run
메서드를 사용하여 도구의 특정 기능 로직을 정의할 수 있습니다. 예시:
from crewai_tools import BaseTool
class MyCustomTool(BaseTool):
name: str = "我的工具名称"
description: str = "清晰描述此工具用于什么,您的代理将需要这些信息来使用它。"
def _run(self, argument: str) -> str:
# 实现在这里
return "自定义工具的结果"
- 활용
tool
데코레이터 사용tool
데코레이터를 사용하면 사용자 지정 도구를 더 깔끔하게 만들 수 있습니다. 기능을 정의하고@tool
데코레이터를 클릭하고 도구 이름과 설명만 입력하면 됩니다. 예시:
from crewai_tools import tool
@tool("我的工具名称")
def my_tool(question: str) -> str:
"""清晰描述此工具用于什么,您的代理将需要这些信息来使用它。"""
# 函数逻辑在这里
return "您的自定义工具的结果"
- 사용자 지정 캐싱 메커니즘 이 도구에는 다음을 실현할 수 있는 옵션이 있습니다.
cache_function
를 사용하여 캐시 동작을 미세 조정할 수 있습니다. 특정 조건에 따라 결과를 캐시할 시기를 결정하면 캐싱 로직을 세밀하게 제어할 수 있습니다. 예시:
from crewai_tools import tool
@tool
def multiplication_tool(first_number: int, second_number: int) -> str:
"""当您需要将两个数字相乘时有用。"""
return first_number * second_number
def cache_func(args, result):
# 在这种情况下,仅在结果是 2 的倍数时才缓存结果
cache = result % 2 == 0
return cache
multiplication_tool.cache_function = cache_func
2.3.5 LangChain 도구 사용
크루AI는 랭체인의 툴킷과 원활하게 통합되어 개발자들이 다음과 같이 랭체인에서 제공하는 내장 툴을 활용할 수 있습니다. GoogleSerperAPIWrapper
등을 간단한 구성을 통해 CrewAI 시스템에 통합하여 에이전트의 기능을 확장할 수 있습니다. 예시:
from crewai import Agent
from langchain.agents import Tool
from langchain.utilities import GoogleSerperAPIWrapper
# 设置 API 密钥
os.environ["SERPER_API_KEY"] = "Your Key"
search = GoogleSerperAPIWrapper()
# 创建并将搜索工具分配给代理
serper_tool = Tool(
name="中级答案",
func=search.run,
description="用于基于搜索的查询的工具"
)
agent = Agent(
role="研究分析师",
goal="提供最新的市场分析",
backstory="一位对市场趋势敏锐的专家分析师。",
tools=[serper_tool]
)
2.4 프로세스
2.4.1 프로세스 실현
- 순차적 작업은 미리 정의된 순서대로 순차적으로 실행되며, 한 작업의 출력이 다음 작업의 컨텍스트가 되어 질서정연하고 일관된 작업 실행을 보장합니다.
- 계층적 관리 언어 모델을 지정하여 관리 수준에서 작업을 구성합니다(
manager_llm
)를 사용하여 프로세스를 활성화합니다. 매니저 상담원은 작업 계획, 위임, 유효성 검사 등 작업 실행을 감독할 책임이 있으며, 이는 미리 할당된 것이 아니라 상담원의 역량에 따라 할당됩니다. - 합의 프로세스(예정) 작업 실행에 대한 에이전트 간의 협업 의사 결정을 지원하고 작업 관리에 대한 민주적 접근 방식을 도입하는 것을 목표로 하며, 아직 코드베이스에 구현되지는 않았지만 지속적인 개발과 혁신을 추구하는 CrewAI의 의지를 반영합니다.
2.4.2 팀워크에서 프로세스의 역할
프로세스는 개별 에이전트가 응집력 있는 전체로서 기능할 수 있도록 지원하여 효율적이고 조율된 방식으로 공동의 목표를 달성하기 위한 협업 노력을 간소화합니다. 올바른 프로세스 설계를 통해 팀은 복잡한 업무에 더 잘 대처하고 전반적인 생산성을 높일 수 있습니다.
2.4.3 관리자에게 프로세스 할당하기
개발자는 매니저를 만들 때 프로세스 유형을 지정하여 실행 정책을 설정할 수 있습니다. 계층적 프로세스의 경우 매니저 에이전트에 대해 다음과 같이 정의해야 합니다. manager_llm
. 예제:
from crewai import Crew, Process
from langchain_openai import ChatOpenAI
# 顺序流程
crew = Crew(
agents=my_agents,
tasks=my_tasks,
process=Process.sequential
)
# 分级流程,确保提供 manager_llm
crew = Crew(
agents=my_agents,
tasks=my_tasks,
process=Process.hierarchical,
manager_llm=ChatOpenAI(model="gpt-4")
)
2.4.4 추가 작업 특성
- 비동기 실행(비동기 실행) 작업을 비동기적으로 실행할 수 있어 병렬 처리가 가능하고 전반적인 팀 생산성을 향상시킵니다. 개발자는 작업 특성에 따라 동기 또는 비동기 실행 방식을 유연하게 선택할 수 있습니다.
- 인적 입력 검토(HIR) 작업 결과를 최종 확정하기 전에 품질과 정확성을 보장하기 위해 작업 결과물에 대한 수동 검토를 옵션으로 제공하여 작업 실행의 신뢰성을 보호하기 위한 추가적인 감독 계층을 도입합니다.
- 출력 사용자 지정 이 작업은 JSON과 같은 다양한 출력 형식을 지원합니다(
output_json
), 피단틱 모델(output_pydantic
) 및 파일 출력(output_file
)를 통해 다양한 요구 사항을 충족하고 데이터 처리 및 활용을 용이하게 합니다.
2.5 크루
2.5.1 팀 속성
- 작업 팀에 할당된 작업 목록으로, 팀이 수행해야 하는 작업이 명시되어 있습니다.
- 상담원 팀에 속한 상담원 목록으로, 각각 고유한 역할과 기능을 가진 팀원들의 구성을 정의합니다.
- 프로세스(선택 사항) 순차적 또는 계층적 프로세스 등 팀이 따르는 프로세스 유형에 따라 작업이 수행되는 순서와 방식이 결정됩니다.
- 세부 수준(선택 사항) 실행 중 로깅의 세부 수준으로, 개발자가 디버깅 및 모니터링에 필요한 충분한 정보를 쉽게 얻을 수 있도록 합니다.
- 관리자 LLM(선택 사항, 계층형 프로세스에 필요) 계층적 프로세스에서 관리자 에이전트가 작업 실행 프로세스를 관리하기 위해 사용하는 언어 모델입니다.
- 함수 호출 LLM(선택 사항) 전달되면 팀은 이 LLM을 사용하여 모든 에이전트의 도구에 대한 기능 호출을 수행하며, 필요에 따라 개발자가 유연하게 구성할 수 있습니다.
- 구성(선택 사항) 팀을 위한 선택적 구성 설정
Json
어쩌면Dict[str, Any]
이 형식은 팀 동작을 추가로 사용자 지정할 수 있도록 제공됩니다. - 최대 RPM(선택 사항) 속도 제한을 피하기 위해 팀 실행 중 분당 실행할 수 있는 최대 요청 수, 개별 상담원보다 우선할 수 있습니다.
max_rpm
설정. - 언어(선택 사항) 기본적으로 영어인 팀에서 사용하는 언어는 실제 필요에 따라 조정할 수 있습니다.
- 언어 파일(선택 사항) 언어 파일 경로: 팀이 다국어 지원을 용이하게 하기 위한 언어 파일 경로입니다.
- 메모리(선택 사항) 실행 기억(단기, 장기, 신체 기억)을 저장하여 팀의 실행 및 학습 능력을 향상시키는 데 사용됩니다.
- 캐시(선택 사항) 프로세스 효율성 향상을 위해 도구 실행 결과를 저장하는 데 캐싱을 사용할지 여부를 지정합니다.
- 임베더(선택 사항) 주로 인메모리 기능을 위해 팀에서 사용하는 임베더 구성은 데이터가 임베드되고 검색되는 방식에 영향을 미칩니다.
- 전체 출력(선택 사항) 팀에서 다양한 결과 수집 요구를 충족하기 위해 모든 작업 결과물을 포함하는 전체 결과물을 반환할지, 아니면 최종 결과물만 반환할지 결정합니다.
- 단계 콜백(선택 사항) 각 에이전트의 각 단계 후에 호출되어 작업을 기록하거나 에이전트별로 재정의되지 않는 다른 작업을 수행하는 함수입니다.
step_callback
. - 작업 콜백(선택 사항) 작업 후 다른 작업을 모니터링하거나 수행하기 위해 각 작업이 완료된 후 호출되는 함수입니다.
- 공유 팀(선택 사항) 라이브러리를 개선하고 모델을 훈련할 수 있도록 전체 팀 정보 및 구현이 CrewAI 팀과 공유되는지 여부입니다.
- 출력 로그 파일(선택 사항) 팀의 전체 출력 및 실행이 포함된 파일을 만들지 여부는 파일 경로와 이름을 지정할 수 있습니다.
2.5.2 팀 만들기 예시
아래는 팀 구성의 예로, 상호 보완적인 역할과 도구를 가진 상담원들을 어떻게 한데 모으고, 작업을 할당하고, 프로세스를 선택할 수 있는지 보여 줍니다:
from crewai import Crew, Agent, Task, Process
from langchain_community.tools import DuckDuckGoSearchRun
# 定义具有特定角色和工具的代理
researcher = Agent(
role="高级研究分析师",
goal="发现创新的人工智能技术",
tools=[DuckDuckGoSearchRun()]
)
writer = Agent(
role="内容撰稿人",
goal="撰写有关人工智能发现的引人入胜的文章",
verbose=True
)
# 为代理创建任务
research_task = Task(
description="识别突破性人工智能技术",
agent=researcher
)
write_article_task = Task(
description="撰写关于最新人工智能技术的文章",
agent=writer
)
# 使用顺序流程组装团队
my_crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_article_task],
process=Process.sequential,
full_output=True,
verbose=True,
)
2.5.3 팀 실행 프로세스
- 순차적 작업은 순차적으로 실행되고 작업 흐름이 선형적으로 진행되어 간단하고 직관적이며 작업 간 순서가 명확한 시나리오에 적합합니다.
- 계층적 관리자 에이전트는 팀을 조정하고, 작업을 위임하며, 진행하기 전에 결과를 검증합니다. 이 프로세스에는 다음이 필요합니다.
manager_llm
복잡한 작업의 관리 및 할당에 적합하여 효율적인 작업 실행과 품질 관리를 보장합니다. - 출시 팀 사용
kickoff()
메서드는 팀 워크플로우를 시작하고 정의된 프로세스에 따라 작업 실행을 시작하며 작업 실행 결과를 가져옵니다. 예시:
# 启动团队的任务执行
result = my_crew.kickoff()
print(result)
2.6 메모리
2.6.1 메모리 시스템 구성 요소
- 단기 기억(단기 기억) 최근 상호작용 및 결과를 임시 저장하면 상담원이 현재 컨텍스트와 밀접하게 관련된 정보를 빠르게 기억하고 활용할 수 있으므로 대화 또는 작업 순서에서 일관성을 유지하고 보다 맥락에 맞는 결정과 응답을 내릴 수 있습니다.
- 장기기억(장기기억) 과거 업무 수행에서 얻은 귀중한 인사이트와 학습 내용을 담고 있는 지식의 저장소입니다. 시간이 지남에 따라 상담원은 이러한 경험을 통해 학습하고 점진적으로 지식 시스템을 구축하고 개선하여 향후 의사 결정 및 문제 해결 능력을 향상시켜 복잡하고 변화하는 작업 시나리오에 더 잘 대처할 수 있습니다.
- 엔티티 메모리 사람, 장소, 개념 등 업무 수행 과정에서 마주치는 다양한 유형의 엔티티에 대한 정보를 캡처하고 정리하는 데 중점을 둡니다. 이를 통해 에이전트는 복잡한 정보 간의 본질적인 연관성을 깊이 이해하고, 엔티티 관계의 정확한 매핑을 통해 관련 지식을 보다 효율적으로 처리 및 통합하며, 문제 해결을 위한 보다 포괄적이고 심층적인 관점을 제공할 수 있습니다.
- 컨텍스트 메모리 상호 작용 중에 맥락 정보를 유지하여 상담원이 일련의 작업이나 연속된 대화에서 일관성 있고 관련성 있게 응답할 수 있도록 합니다. 긴 대화 중에도 작업 맥락과 의도를 정확하게 이해하여 정보 단절이나 오해를 피할 수 있으므로 보다 정확하고 합리적인 결과를 제공할 수 있습니다.
2.6.2 메모리 시스템이 에이전트의 역량을 강화하는 방법
- 문맥 인식 향상 단기 기억과 문맥 기억의 시너지 효과를 통해 에이전트는 대화나 작업이 진행되는 동안 맥락을 확실하게 파악할 수 있습니다. 여러 차례에 걸친 대화에서 정보 상관관계를 파악하거나 작업 시퀀스에서 논리적 연속성을 유지하는 등, 에이전트는 저장된 문맥 정보를 기반으로 보다 일관되고 일관된 맥락적 응답을 생성할 수 있으므로 대화 경험의 유창성과 논리가 크게 향상됩니다.
- 경험 구축 및 학습 가속화 장기기억은 상담원이 성장하고 발전할 수 있는 플랫폼을 제공합니다. 상담원은 과거의 작업과 결과를 저장하고 검토함으로써 교훈을 얻고 패턴과 패턴을 발견한 다음 의사 결정 전략과 문제 해결 방법을 지속적으로 최적화할 수 있습니다. 이러한 경험 축적 과정을 통해 상담원은 유사한 문제에 직면했을 때 더 스마트하고 효율적인 의사 결정을 내릴 수 있어 업무 효율성과 품질이 크게 향상됩니다.
- 엔티티 이해 및 정보 처리 최적화 엔티티 메모리는 에이전트가 핵심 엔티티를 식별하고 기억하는 기능을 제공하여 복잡한 정보를 처리할 때 핵심 포인트에 빠르게 집중하고 정보 간의 상호 관계를 명확히 할 수 있도록 합니다. 이는 에이전트가 작업 요구 사항을 더 정확하게 이해하는 데 도움이 될뿐만 아니라 방대한 양의 정보에 직면하여 가치있는 콘텐츠를 빠르게 필터링하고 정보 처리 속도와 정확성을 향상시켜 복잡한 작업과 다양한 문제 시나리오에보다 효과적으로 대처할 수 있도록합니다.
2.6.3 팀에서 메모리 구현하기
팀을 구성할 때 개발자는 팀의 목표와 작업의 성격에 따라 각 메모리 구성 요소를 유연하게 활성화하고 사용자 지정할 수 있습니다. 기본적으로 메모리 시스템은 팀 구성의 memory=True
를 통해 메모리 기능을 활성화하여 팀에 강력한 메모리 기능을 제공할 수 있습니다. 메모리는 기본적으로 OpenAI 임베딩을 사용하지만 개발자가 직접 embedder
매개 변수를 Google AI, Azure OpenAI, GPT4ALL, Vertex AI 또는 Cohere 등을 사용하여 다양한 시나리오의 요구 사항을 충족할 수 있습니다. 예시:
from crewai import Crew, Agent, Task, Process
# 使用具有记忆功能的团队,采用默认的 OpenAI Embeddings
my_crew = Crew(
agents=[...],
tasks=[...],
process=Process.sequential,
memory=True,
verbose=True
)
# 使用具有记忆功能的团队,切换为 Google AI 嵌入
my_crew = Crew(
agents=[...],
tasks=[...],
process=Process.sequential,
memory=True,
verbose=True,
embedder={
"provider": "google",
"config": {
"model": "models/embedding-001",
"task_type": "retrieval_document",
"title": "Embeddings for Embedchain"
}
}
)
2.6.4 CrewAI 메모리 시스템 사용의 이점
- 적응형 학습 및 지속적인 최적화 시간이 흐르고 작업을 지속적으로 수행함에 따라 팀은 새로운 정보와 작업 요구 사항에 점차 적응하고 작업 처리 방법과 전략을 지속적으로 개선할 수 있습니다. 기억 시스템을 통해 상담원은 과거 경험을 통해 학습하고 행동 패턴을 자동으로 조정하여 새로운 상황에 더 편안하게 대처할 수 있으며, 경험을 통해 팀의 전반적인 효율성이 계속 향상됩니다.
- 개인화된 경험 향상 메모리 기능을 통해 상담원은 사용자 선호도, 과거 상호 작용 및 기타 정보를 기록하고 식별하여 사용자에게 보다 개인화된 서비스와 경험을 제공할 수 있습니다. 콘텐츠 추천, 질문 답변 또는 상호 작용 측면에서 에이전트는 사용자의 개인화된 특성에 따라 정확하게 응답하고 사용자의 특정 요구 사항을 충족하며 사용자와 시스템 간의 끈끈함과 만족도를 높일 수 있습니다.
- 문제 해결 역량 강화 풍부한 메모리 저장소는 상담원에게 강력한 지식 기반을 제공하여 문제를 해결할 때 과거의 학습과 맥락 정보를 충분히 활용할 수 있도록 합니다. 상담원은 관련 경험을 빠르게 검색하고 활용함으로써 문제를 보다 종합적으로 분석하고 잠재적인 해결책을 파악하며 보다 스마트하고 정확한 결정을 내릴 수 있으므로 복잡한 문제를 해결하는 능력을 효과적으로 향상시키고 성공적인 팀 운영을 위한 강력한 지원을 제공할 수 있습니다.
3. CrewAI 기반 멀티 에이전트 시스템 구축을 위한 실무 단계
3.1 준비 사항
3.1.1 환경 구성
시스템이 CrewAI의 설치 요구 사항 및 관련 종속성을 충족하는지 확인하세요. 운영 체제에 따라 특정 패키지를 설치하거나 환경 변수를 구성해야 할 수도 있습니다. 예를 들어 일부 시스템에서는 Python 환경과 관련 라이브러리를 설치하고 API 키를 구성해야 할 수 있습니다.
3.1.2 CrewAI 및 Ollama 설치(선택 사항)
공식 설명서의 지침에 따라 CrewAI와 Ollama(Ollama를 사용해야 하는 경우)를 차례로 설치하세요. 설치 과정에서 버전 호환성, 종속성 및 기타 문제를 알고 있어야 설치가 성공적으로 완료될 수 있습니다. 예를 들어 pip 명령을 사용하여 CrewAI와 해당 툴킷을 설치합니다:pip install crewai[tools]
에 따라 Ollama 설치 가이드
3.1.3 모델 설정하기
CrewAI 구성 파일에서 언어 모델(LLM)을 Llama3 등과 같은 원하는 모델로 설정합니다. 이 단계를 통해 에이전트가 작업을 수행할 때 추론 및 의사 결정에 적절한 언어 모델을 사용할 수 있습니다.
3.2 상담원 만들기
3.2.1 상담원 역할 및 목표 정의하기
작업 요구 사항에 따라 각 에이전트의 역할과 목표를 정의하세요. 예를 들어 정보 수집을 담당하는 에이전트를 만들려면 '특정 도메인에서 관련 정보를 수집'하는 것을 목표로 '정보 수집가'로 역할을 정의하거나, 데이터 분석에 중점을 둔 에이전트를 만들려면 '수집된 데이터를 심층적으로 분석하여 가치 있는 인사이트를 추출'하는 것을 목표로 '데이터 분석가'로 역할을 정의할 수 있습니다.
3.2.2 상담원 속성 구성하기
에이전트의 역할과 업무 특성에 따라 적절한 언어 모델 선택, 필요한 도구 추가, 최대 반복 횟수 설정, 캐싱 전략 등 에이전트의 속성을 구성하는 것이 합리적입니다. 정보 수집 에이전트를 예로 들면 웹 검색 도구로 구성하고, 정보 수집의 효율성을 높이기 위해 최대 요청 횟수를 크게 설정하며, 반복적인 검색을 줄이기 위해 캐싱을 켜는 반면, 데이터 분석 에이전트는 특정 데이터베이스 도구에 연결하고 분석 작업의 복잡도에 따라 최대 반복 횟수 등의 속성을 조정해야 할 수 있습니다.
3.2.3 상담원 배경 스토리 개발(선택 사항이지만 권장)
상담원에 대한 자세한 배경 스토리를 작성하는 것은 선택 사항이지만 상담원의 행동과 결정에 대한 더 풍부한 맥락을 제공하고, 상담원의 의인화 기능을 강화하며, 시스템의 상호 작용 및 해석 가능성을 개선하는 데 도움이 될 수 있습니다. 예를 들어 정보 수집가의 배경 스토리를 작성하려면 "귀하는 웹에서 방대한 양의 정보를 빠르게 선별하여 가치 있는 콘텐츠를 찾는 데 능숙한 전문 정보 수집가입니다. 귀하는 오랫동안 데이터 수집에 종사해 왔으며 다양한 정보 출처를 잘 알고 있고 다양한 검색 기술과 도구에 능숙합니다. 이 과제는 팀이 [특정 분야]에 대한 최신 정보를 확보하여 후속 분석 및 의사결정을 강력하게 지원하는 것입니다."
3.3 작업 정의하기
3.3.1 작업 설명의 명확화
상담원이 작업의 구체적인 요구 사항을 명확하게 이해할 수 있도록 각 작업에 대한 명확하고 정확한 설명을 제공하세요. 예를 들어 "지난 한 달 동안 소셜 미디어에서 [제품 이름]에 대한 사용자 피드백을 분석하여 주요 의견 및 제안 사항 추출", "시장 데이터를 기반으로 향후 3개월 동안 [업계 이름]의 동향 예측" 등과 같은 식으로 설명합니다.
3.3.2 작업 에이전트 지정
역할과 역량에 따라 적절한 상담원에게 작업을 합리적으로 할당하세요. 작업 수행을 담당할 상담원을 직접 지정하거나 CrewAI의 프로세스 메커니즘을 사용하여 시스템이 상담원의 가용성, 전문성 및 기타 요인에 따라 자동으로 작업을 할당하도록 할 수 있습니다. 예를 들어 정보 수집 작업은 정보 수집 상담원에게, 데이터 분석 작업은 데이터 분석 상담원에게 할당할 수 있습니다.
3.3.3 작업 속성 구성
작업 요구 사항에 따라 예상 출력 형식(JSON, Pydantic 모델 또는 파일 등), 비동기 실행 필요 여부, 수동 입력 검토 필요 여부 등 작업의 기타 속성을 설정하고 작업 컨텍스트를 설정합니다. 예를 들어 실시간 요구 사항이 높은 작업의 경우 비동기 실행으로 설정하여 시스템의 전반적인 응답 속도를 향상시키고, 중요한 의사 결정 작업의 경우 수동 입력 검토를 활성화하여 결과의 정확성을 보장할 수 있습니다.
3.4 통합 도구
3.4.1 올바른 도구 선택하기
웹 검색용 도구 등 CrewAI가 제공하는 다양한 도구 라이브러리에서 작업에 적합한 도구를 선택하세요. WebsiteSearchTool
파일 읽기용 FileReadTool
다음은 다음에서 사용된 데이터 분석의 몇 가지 예입니다. CSVSearchTool
등 특정 작업의 고유한 요구 사항을 충족하기 위해 필요에 따라 사용자 지정 도구를 만들 수도 있습니다.
3.4.2 상담원 및 작업과 툴 통합하기
선택한 도구를 적절한 상담원에게 배정하여 상담원이 작업을 수행할 때 해당 도구를 호출할 수 있도록 하세요. 작업을 정의할 때 작업에 사용할 도구를 명시적으로 지정하여 도구가 작업과 긴밀하게 통합되어 함께 작동하도록 하세요. 예를 들어 정보 수집 작업의 경우 정보 수집 상담원에게 WebsiteSearchTool
노래로 응답 DirectorySearchTool
를 사용하여 웹 페이지 및 로컬 카탈로그의 정보에 액세스할 수 있습니다.
3.5 팀 구성
3.5.1 결합 에이전트
서로 다른 역할과 역량을 가진 상담원을 결합하여 협업 팀을 구성하세요. 팀원들이 상호 보완적인 역할을 맡고 복잡한 작업도 함께 할 수 있도록 하세요. 예를 들어 정보 수집가, 데이터 분석가, 콘텐츠 제작자 등 각자의 전문성을 가진 서로 다른 역할을 가진 상담원들이 한 팀에 포함되어 프로젝트 목표를 달성하기 위해 함께 작업할 수 있습니다.
3.5.2 팀 프로세스 정의하기
작업의 특성과 요구 사항에 따라 순차적 프로세스 또는 계층적 프로세스와 같은 적절한 팀 프로세스를 선택합니다. 순차 프로세스는 작업 간의 우선 순위가 명확하고 상담원이 미리 정해진 순서대로 순차적으로 작업을 수행하는 시나리오에 적합하며, 계층적 프로세스는 관리 및 조정이 필요한 복잡한 작업에 적합하며 관리 상담원을 통해 작업을 할당하고 감독합니다.
3.5.3 팀 속성 구성하기
팀의 필요에 따라 로깅 세부 정보 수준, 최대 요청 속도, 언어 설정, 메모리 및 캐시 구성, 팀 정보 공유 여부 등 팀의 다양한 속성을 설정하세요. 팀 속성을 합리적으로 구성하면 팀의 운영 효율성을 최적화하고 다양한 시나리오의 요구사항을 충족할 수 있습니다.
3.6 작업 실행 및 모니터링
3.6.1 팀 작업 시작하기
활용 kickoff()
메서드는 팀의 작업 실행 프로세스를 시작하고, 시스템은 정의된 프로세스와 작업 할당에 따라 에이전트가 작업을 시작하도록 유도합니다. 작업 실행 프로세스 중에는 로깅 및 콘솔 출력을 통해 작업 진행 상황을 실시간으로 모니터링할 수 있습니다.
3.6.2 작업 실행 프로세스 모니터링
CrewAI에서 제공하는 로깅 기능과 관련 모니터링 도구를 사용하여 작업의 실행 상태, 에이전트의 작업 단계, 출력 결과 및 기타 정보를 면밀히 모니터링합니다. 상세한 모니터링을 통해 에이전트 실행 오류, 작업 시간 초과, 과도한 리소스 소모 등 작업 실행 중 발생할 수 있는 문제를 적시에 발견할 수 있습니다.
3.6.3 작업 실행 결과 처리
작업 실행이 완료되면 작업의 출력이 캡처되고 처리됩니다. 작업의 예상 출력 형식에 따라 결과를 파싱하고 분석하여 후속 의사 결정이나 추가 처리를 위한 중요한 정보를 추출합니다. 동시에 작업 실행 결과와 모니터링 중에 발견된 문제를 바탕으로 상담원, 작업 또는 팀 구성에 필요한 조정 및 최적화를 수행하여 시스템의 성능과 정확성을 개선합니다.
4. 사례 연구: 실제 프로젝트에서 CrewAI 적용하기
4.1 지능형 고객 서비스 시스템
4.1.1 시스템 아키텍처 및 상담원 역할
지능형 고객 서비스 시스템에서는 인간 고객 서비스의 워크플로우를 시뮬레이션하기 위해 여러 에이전트가 구성됩니다. 여기에는 사용자 질문 수신 에이전트, 질문 분류 에이전트, 정보 쿼리 에이전트, 답변 생성 에이전트, 답변 검토 에이전트가 포함됩니다. 사용자 문제 수신 에이전트는 사용자의 상담 문제를 받아 문제 분류 에이전트로 전달하고, 문제 분류 에이전트는 문제 유형에 따라 해당 정보 질의 에이전트에 배정하며, 정보 질의 에이전트는 다양한 도구(지식 기반 질의 도구, 데이터베이스 검색 도구 등)를 사용하여 관련 정보를 찾고, 답변 생성 에이전트는 질의된 정보에 따라 예비 답변을 생성하고, 답변 검토 에이전트는 생성된 답변에 문제가 없는지 감사 및 최적화하는 역할을 담당합니다. 답변 생성 에이전트는 질의된 정보를 기반으로 예비 답변을 생성하고, 답변 검토 에이전트는 생성된 답변을 검토 및 최적화하여 답변의 정확성과 품질을 보장합니다.
4.1.2 작업 흐름 및 협업
사용자가 질문을 올리면 사용자 질문 접수 에이전트가 질문을 기록하여 질문 분류 에이전트에게 전달합니다. 문제 분류 에이전트는 키워드 분석, 의미 이해 및 기타 기술을 통해 문제를 일반적인 문제, 기술적 문제, 판매 후 문제 등 다양한 유형으로 분류합니다. 그런 다음 분류 결과에 따라 해당 문제를 해당 정보 쿼리 에이전트에 할당합니다. 정보 쿼리 에이전트는 문제 유형에 따라 지식창고, 데이터베이스 또는 외부 리소스에서 관련 정보를 찾습니다. 예를 들어 일반적인 문제의 경우 지식창고에서 직접 답변을 검색하고, 기술적인 문제의 경우 기술 문서를 조회하거나 기술 전문가 시스템과 상호작용해야 할 수 있습니다. 답변 생성 에이전트는 쿼리된 정보를 바탕으로 자연어 생성 기술을 사용하여 정보를 명확하고 이해하기 쉬운 답변으로 변환합니다. 마지막으로 답변 검토 에이전트는 답변의 문법 검사, 논리적 검토 및 공손함 평가를 수행하고 필요한 경우 추가 최적화 및 수정을 수행합니다. 이 모든 과정에서 에이전트는 CrewAI의 커뮤니케이션 메커니즘과 작업 스케줄링 기능을 통해 효율적으로 협력하여 사용자에게 빠르고 정확한 답변을 제공합니다.
4.2 지능형 콘텐츠 제작 도우미
4.2.1 상담원 기능 및 분업화
지능형 콘텐츠 제작 어시스턴트는 테마 기획 에이전트, 자료 수집 에이전트, 콘텐츠 생성 에이전트, 콘텐츠 꾸미기 에이전트 등 여러 에이전트가 함께 작동하는 방식으로 구성됩니다. 테마 기획 에이전트는 사용자의 요구 사항이나 시장 동향에 따라 작성 테마를 결정하고, 자료 수집 에이전트는 웹 검색 도구와 데이터베이스 쿼리 도구를 사용하여 기사, 사진, 데이터 등 관련 자료를 수집하며, 콘텐츠 생성 에이전트는 자연어 생성 알고리즘을 사용하여 테마 및 자료를 기반으로 초안을 작성하고, 콘텐츠 수정 에이전트는 초안의 문법 최적화, 스타일 조정 및 논리적인 결합을 수행하여 사용자의 요구 사항과 기대에 더 부합할 수 있도록 합니다. 콘텐츠 수정 에이전트는 첫 번째 초안의 문법, 스타일 및 논리를 최적화하여 사용자의 요구 사항과 기대에 더 부합하도록 합니다.
4.2.2 창작 과정과 시너지 메커니즘
사용자가 [특정 주제]에 대한 기사 작성 요청을 하면 주제 기획 에이전트가 먼저 주제를 분석하고 기획하여 기사의 큰 틀과 핵심 내용을 결정합니다. 그런 다음 자료 수집 에이전트는 주제에 따라 인터넷에서 관련 기사, 연구 보고서, 사례 및 기타 자료를 검색하고 이를 정리하여 콘텐츠 생성 에이전트에게 전달합니다. 콘텐츠 생성 에이전트는 딥러닝 모델을 사용하여 주제 프레임워크와 수집된 자료를 기반으로 기사의 초안을 생성합니다. 예를 들어, 자료의 아이디어와 데이터를 기반으로 단락 콘텐츠를 생성하고 기사 구조를 구성할 수 있습니다. 마지막으로 콘텐츠 터치업 에이전트는 첫 번째 초안을 종합적으로 수정하여 문법 오류를 확인하고, 어휘 선택을 최적화하고, 문장 구조를 조정하여 더욱 유창하고 매끄럽고 매력적인 기사를 만듭니다. 작성 과정 전반에 걸쳐 에이전트는 CrewAI의 커뮤니케이션 및 협업 메커니즘을 통해 실시간으로 정보와 피드백을 공유하여 작성 작업이 원활하게 진행될 수 있도록 합니다.
4.3 지능형 투자 의사 결정 시스템
4.3.1 시스템 구성 및 에이전트 책임
지능형 투자 의사결정 시스템은 시장 데이터 수집 에이전트, 데이터 분석 에이전트, 위험 평가 에이전트, 투자 전략 추천 에이전트, 포트폴리오 최적화 에이전트로 구성됩니다. 시장 데이터 수집 에이전트는 주가, 거래량, 거시경제 지표 등 다양한 금융 데이터 소스(예: 증권거래소, 금융 뉴스 웹사이트, 금융 데이터베이스 등)에서 실시간 시장 데이터를 수집하고, 데이터 분석 에이전트는 수집된 데이터를 정제, 정리, 분석하여 시장 동향, 산업 동학, 기업 재무 상황 등 가치 있는 정보를 추출하며, 위험 평가 에이전트는 데이터 분석 결과를 바탕으로 위험 평가 모델을 사용하여 투자 대상의 위험 수준을 평가하고, 투자 전략 추천 에이전트는 위험 평가 모델을 사용하여 투자 대상의 위험 수준을 평가하며, 투자 전략 추천 에이전트는 데이터 분석 결과를 기반으로 투자 대상의 위험도를 평가합니다. 위험 평가 에이전트는 데이터 분석 결과를 바탕으로 위험 평가 모델을 적용하여 투자 대상의 위험 수준을 평가하고, 투자 전략 추천 에이전트는 시장 상황과 투자자의 위험 선호도에 따라 장기 투자, 단기 투기, 분산 투자 등 적합한 투자 전략을 추천하며, 포트폴리오 최적화 에이전트는 추천된 투자 전략을 바탕으로 투자 포트폴리오를 최적화하고 최적의 자산 배분 비율을 결정합니다.
4.3.2 의사 결정 프로세스 및 협업 방식
시장 데이터 수집 에이전트는 최신 시장 데이터를 지속적으로 수집하여 데이터 분석 에이전트에게 전달합니다. 데이터 분석 에이전트는 기술적 분석 방법을 통해 주가 움직임을 예측하고 펀더멘털 분석을 통해 기업의 내재가치를 평가하는 등 데이터에 대한 심층 분석을 수행합니다. 위험 평가 에이전트는 데이터 분석 결과를 바탕으로 과거 데이터 및 위험 모델과 결합하여 다양한 투자 대상의 위험도를 평가합니다. 투자 전략 추천 에이전트는 시장 동향, 위험 평가 결과, 투자자의 위험 성향 등을 고려하여 투자자에게 개인 맞춤형 투자 전략을 추천합니다. 예를 들어 위험 성향이 높은 투자자에게는 주식 투자 비중을 높이고, 보수적인 투자자에게는 채권과 펀드 투자 포트폴리오를 추천할 수 있습니다. 마지막으로 포트폴리오 최적화 에이전트는 추천 투자 전략을 기반으로 수학적 최적화 알고리즘을 적용하여 수익을 극대화하고 위험을 최소화할 수 있는 최적의 포트폴리오 배분을 결정합니다. 의사결정 과정 전반에 걸쳐 각 에이전트는 긴밀하게 협력하여 CrewAI의 프로세스 오케스트레이션 및 커뮤니케이션 메커니즘을 통해 효율적인 데이터 흐름과 과학적인 의사결정을 달성합니다.
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...