如何利用 CrewAI 搭建一套能自动调研并撰写行业分析报告的智能体工作流

前端小哥哥 中级 2026/5/2 104 浏览 13 点赞 约 2 分钟

把 CrewAI 的 Process.sequential 流程跑通后,我才意识到它和单纯调用 LLM 最大的区别在于“角色约束”带来的稳定性。之前用单 Agent 写调研报告,最头疼的是 AI 容易在搜集信息阶段就直接开始写结论,导致内容空洞。

如何利用 CrewAI 搭建一套能自动调研并撰写行业分析报告的智能体工作流

这套工作流的核心逻辑是把「搜索员」和「分析师」彻底解耦。搜索员只负责把网页内容抓回来并清洗,分析师负责在这些原材料里找关联。

核心配置技巧:

不要在 goal 里写太宽泛的描述。我踩过最大的坑就是给搜索员写“搜集行业信息”,结果它回传了一堆无关的广告页。建议使用 backstory 强制要求它扮演“拥有 10 年经验的专业情报分析师”,并明确规定输出格式。

关键代码实现:

from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool

# 必须配置 Serper 才能保证搜索质量
search_tool = SerperDevTool()

# 角色1:深度情报员 - 职责是挖掘事实,禁止概括
researcher = Agent(
  role='行业情报挖掘员',
  goal='在互联网上搜集关于 {topic} 的最新市场份额、竞争对手动态及技术趋势',
  backstory='你擅长从冗长的财报和新闻稿中提取具体数值和事实,拒绝任何模糊的描述词',
  tools=[search_tool],
  verbose=True
)

# 角色2:首席分析师 - 职责是逻辑串联,禁止凭空捏造
analyst = Agent(
  role='战略分析师',
  goal='基于情报员提供的事实,撰写一份深度行业分析报告',
  backstory='你擅长 SWOT 分析和波特五力模型,能够将碎片化信息转化为商业洞察',
  verbose=True
)

# 定义任务流,注意 task 的 output 传递
task1 = Task(description='调研 {topic} 的 2024 年核心趋势', agent=researcher)
task2 = Task(description='将调研结果转化为正式报告,包含挑战与机会', agent=analyst)

# 启动顺序工作流
crew = Crew(
  agents=[researcher, analyst],
  tasks=[task1, task2],
  process=Process.sequential 
)

result = crew.kickoff(inputs={'topic': '低空经济商业化落地'})

提升效率的几个实操点:

内存机制开启:在 Crew 配置中加上 memory=True。这样分析师在处理第二部分内容时,能记得搜索员在第一部分提到的细节,不会出现前后矛盾。

强制输出 Markdown:在 Task 的描述里直接写 The output must be in professional Markdown format with clear headings。否则分析师偶尔会输出一大段没有格式的纯文本,后期手动排版非常浪费时间。

避坑指南
如果发现 Agent 陷入死循环(一直在搜索同一个关键词),大概率是 goal 写得太绝对。尝试在 backstory 里加入一条指令:If no new information is found after 3 attempts, summarize the current findings and move on

这套流程跑下来,原本需要花 3 小时的人工搜集+整合工作,现在大约 5 分钟能出一个 80 分的初稿,剩下的 20 分 确实需要人工校对。

更多可复用的提示词工作流收录在ChatGPT提示词优化指南,有不少直接可参考的案例。

全部回复 (0)

还没有回复,来发第一条吧!

发表回复

支持 Markdown 格式