CrewAI — 角色协作多智能体
简介
CrewAI 通过定义具有明确角色、目标和工具的 Agent,组成"团队"(Crew)协作完成任务,比 AutoGen 更结构化。
bash
pip install crewai crewai-tools金融分析团队
python
from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="qwen-plus",
openai_api_key="sk-xxx",
openai_api_base="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
search_tool = SerperDevTool()
# 定义 Agent
researcher = Agent(
role="金融研究员",
goal="收集和分析目标公司的财务数据、市场信息和行业动态",
backstory="你是一位经验丰富的金融研究员,擅长从多种来源收集和整合信息",
tools=[search_tool],
llm=llm,
verbose=True
)
risk_analyst = Agent(
role="风险分析师",
goal="基于研究数据评估贷款风险,给出量化风险评分和详细分析报告",
backstory="你是专业的信贷风险分析师,有10年银行风控经验",
llm=llm,
verbose=True
)
report_writer = Agent(
role="报告撰写专家",
goal="将分析结果整理成结构清晰、专业规范的信贷评估报告",
backstory="你擅长将复杂的金融分析转化为清晰易懂的专业报告",
llm=llm,
verbose=True
)
# 定义任务
research_task = Task(
description="收集{company}的基本信息:成立时间、主营业务、营收规模、市场地位",
expected_output="包含公司基本信息的结构化数据报告",
agent=researcher
)
risk_task = Task(
description="基于研究数据,评估{company}的信贷风险,包括:财务风险、经营风险、行业风险",
expected_output="风险评分(0-100)和各维度风险分析",
agent=risk_analyst,
context=[research_task] # 依赖研究任务的输出
)
report_task = Task(
description="撰写完整的信贷评估报告,包含公司概况、风险分析、授信建议",
expected_output="格式规范的信贷评估报告(Markdown格式)",
agent=report_writer,
context=[research_task, risk_task]
)
# 组建团队
crew = Crew(
agents=[researcher, risk_analyst, report_writer],
tasks=[research_task, risk_task, report_task],
process=Process.sequential, # 顺序执行
verbose=True
)
# 执行
result = crew.kickoff(inputs={"company": "某科技有限公司"})
print(result)并行执行
python
crew = Crew(
agents=[researcher, risk_analyst],
tasks=[research_task, risk_task],
process=Process.hierarchical, # 层级管理模式
manager_llm=llm,
verbose=True
)