如何利用 CrewAI 搭建一套能自动调研并撰写行业分析报告的智能体工作流
把 CrewAI 的
Process.sequential 流程跑通后,我才意识到它和单纯调用 LLM 最大的区别在于“角色约束”带来的稳定性。之前用单 Agent 写调研报告,最头疼的是 AI 容易在搜集信息阶段就直接开始写结论,导致内容空洞。这套工作流的核心逻辑是把「搜索员」和「分析师」彻底解耦。搜索员只负责把网页内容抓回来并清洗,分析师负责在这些原材料里找关联。
核心配置技巧:
不要在 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 分 确实需要人工校对。
免费 AI 工具箱 · 全部完全免费
更多可复用的提示词工作流收录在ChatGPT提示词优化指南,有不少直接可参考的案例。
全部回复 (0)
还没有回复,来发第一条吧!
