
Crewai 的多代理会议准备:4 个代理从混乱到清晰!
- Rifx.Online
- AI Applications , Best Practices , Case Studies
- 05 Mar, 2025
利用CrewAI框架进行AI驱动的会议准备
在本博客中,我们将探讨如何利用CrewAI框架创建一个AI驱动的会议准备系统。目标是通过使用专门的Agent协同工作,自动化收集关键信息、分析行业趋势、制定会议议程和生成执行简报的Process。
什么是 CrewAI?
CrewAI 是一个旨在协调多个 AI Agent 共同完成共享 Task 的框架。每个 Agent 专注于特定领域并执行明确的功能。这些 Agent 可以协作、共享数据,并朝着共同的目标努力。这对于需要多个专业领域的复杂 Task 来说是完美的,例如准备会议。
用例:AI 会议准备 Agent
对于这个用例,我们将创建一个自动化准备商务会议的系统。该系统将涉及以下 AI Agent:
- Context Analyzer: 该 Agent 将收集并总结有关公司和会议背景的信息。
- Industry Insights Generator: 该 Agent 将分析行业趋势、竞争对手和市场条件,以提供与会议相关的见解。
- Strategy Formulator: 该 Agent 将根据背景和行业分析制定会议策略和议程。
- Executive Briefing Creator: 该 Agent 将信息综合成一个简明的执行摘要,以便与会议参与者分享。
这些 Agent 将通过完成特定的 Task 和共享他们的输出进行协作,最终产生一个全面的会议准备包。
前提条件
要构建这个系统,您需要以下内容:
- Python 3.x
- CrewAI 库
- OpenAI 或其他 LLMs 的 API 密钥
- Serper API 密钥(用于网络搜索功能)
您可以使用以下命令安装所需的库:
pip install crewai
pip install openai
pip install crewai-tools
逐步实施
让我们逐步分析代码并详细解释每个部分:
1. 设置环境
使用 python -m venv .venv
创建 Python 环境,并从提供的 GitHub 安装给定的 requirements.txt
包。
import os
from crewai import Agent, Task, Crew, LLM
from crewai_tools import SerperDevTool
openai_key = 'your_openai_key'
serper_api_key = 'your_serper_api_key'
claude = LLM(model="gpt-4o-mini", temperature=0.7, api_key=openai_key)
search_tool = SerperDevTool()
- OpenAI 密钥 用于与模型如 GPT 进行交互,以生成来自 AI 代理的响应。
- SerperDevTool 用于实时搜索有关公司和行业的信息。
2. 定义代理
现在,我们定义将执行特定任务的代理。每个代理都被初始化为一个角色、目标和背景故事,这有助于代理理解其工作及如何贡献。
在给定的代码中,您将理解多个代理如何相互协作以解决问题。
context_analyzer = Agent(
role='Meeting Context Specialist',
goal='Analyze and summarize key background information for the meeting',
backstory='You are an expert at quickly understanding complex business contexts and identifying critical information.',
verbose=True,
allow_delegation=False,
llm=claude,
tools=[search_tool]
)
industry_insights_generator = Agent(
role='Industry Expert',
goal='Provide in-depth industry analysis and identify key trends',
backstory='You are a seasoned industry analyst with a knack for spotting emerging trends and opportunities.',
verbose=True,
allow_delegation=False,
llm=claude,
tools=[search_tool]
)
strategy_formulator = Agent(
role='Meeting Strategist',
goal='Develop a tailored meeting strategy and detailed agenda',
backstory='You are a master meeting planner, known for creating highly effective strategies and agendas.',
verbose=True,
allow_delegation=False,
llm=claude
)
executive_briefing_creator = Agent(
role='Communication Specialist',
goal='Synthesize information into concise and impactful briefings',
backstory='You are an expert communicator, skilled at distilling complex information into clear, actionable insights.',
verbose=True,
allow_delegation=False,
llm=claude
)
- context_analyzer: 该代理收集会议的所有相关背景信息,例如最近的新闻、竞争对手以及公司的关键产品或服务。
- industry_insights_generator: 该代理根据会议的背景生成与行业、市场趋势和竞争分析相关的洞见。
- strategy_formulator: 该代理利用收集到的背景和行业洞见创建详细的会议策略和议程。
- executive_briefing_creator: 该代理将所有信息综合成简洁的会议执行摘要。
3. 为每个 Agent 定义任务
每个 Agent 被分配一个 任务,该任务定义了它需要完成的内容。例如,context_analysis_task 要求上下文分析器收集和分析关于公司及会议目标的信息。
context_analysis_task = Task(
description=f"""
Analyze the context for the meeting with {company_name}, considering:
1. The meeting objective: {meeting_objective}
2. The attendees: {attendees}
3. The meeting duration: {meeting_duration} minutes
4. Specific focus areas or concerns: {focus_areas}
Research {company_name} thoroughly, including:
1. Recent news and press releases
2. Key products or services
3. Major competitors
Provide a comprehensive summary of your findings, highlighting the most relevant information for the meeting context.
Format your output using markdown with appropriate headings and subheadings.
""",
agent=context_analyzer,
expected_output="A detailed analysis of the meeting context and company background, including recent developments, financial performance, and relevance to the meeting objective, formatted in markdown with headings and subheadings."
)
4. 协调与 Crew 的 Agents
Crew
类将所有代理和任务汇集在一起,并确保它们按顺序工作以实现最终目标。Process.sequential 选项确保任务一个接一个地完成。
meeting_prep_crew = Crew(
agents=[context_analyzer, industry_insights_generator, strategy_formulator, executive_briefing_creator],
tasks=[context_analysis_task, industry_analysis_task, strategy_development_task, executive_brief_task],
verbose=True,
process=Process.sequential
)
5. 运行 Crew
最后,我们通过调用 kickoff()
来执行 Crew,这会按顺序触发所有任务,并允许 Agent 完成他们的工作。
result = meeting_prep_crew.kickoff()
print(result)
通过运行上述单元,您将看到 Agent 如何相互运行以解决问题,您可以在终端中观察到这一点。这将输出所有 Agent 的结果,提供一个全面的会议准备包,包括:
- 对公司和会议目标的上下文分析。
- 行业洞察和趋势。
- 定制的会议策略和议程。
- 详细的执行简报。
以类似的方式,您可以使用多个 Agent 解决复杂问题。此外,您可以通过调用函数来检索数据,集成各种工具,如 API、自定义 API 和第三方工具。在这个系统中,每个 Agent 彼此通信,以协作解决复杂问题。结果可能会根据您使用的 LLM 模型而有所不同,例如 GPT-4o、GPT-01 或 GPT-4o-vision 等。
您不仅可以处理文本,还可以通过在 CrewAI 多 Agent 框架中利用视觉模型来处理与图像相关的任务,以解决与图像相关的问题。
结论
使用 CrewAI,我们通过创建一个专业 AI Agent 协作并执行不同 Task 的系统,自动化了会议准备的 Process。通过利用多 Agent 系统,我们可以在复杂的工作流程中实现更好的可扩展性和效率。这种方法可以适应各种用例,包括项目规划、商业战略开发等。
通过整合像 OpenAI 的 GPT 模型或 Anthropic Claude、LLAMA 模型 和 Serper 等工具进行实时信息收集的 AI Agent,我们确保会议准备既全面又符合公司及其利益相关者的具体需求。
GitHub: https://github.com/NageshMashette/meeting_agent_crewai/blob/main/meeting_agent.py