Skip to content

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
)

本站内容由 褚成志 整理编写,仅供学习参考