用 CrewAI 搭建自动化竞品分析流:从网页抓取到报告生成的实战避坑指南
要把竞品分析这事儿交给 AI Agent,最忌讳直接写一个大 Prompt 让它去搜,那样出来的东西全是水话。我最近用 CrewAI 跑通了一套「抓取 → 筛选 → 综合分析 → 报告」的自动化流水线,实测下来,关键在于把 Task 的颗粒度拆到极致。
我的架构是定义三个 Agent:一个 Searcher(负责搜集),一个 Analyst(负责对比),一个 Writer(负责输出)。
最容易踩的坑是让 Agent 直接去爬网页,很多动态加载的页面它根本读不到。我直接给它配了 Firecrawl 工具,这玩意儿能把网页直接转成干净的 Markdown,省去了自己写 BeautifulSoup 慢慢解析的麻烦。
配置重点在 Process.sequential 的任务链条上,必须在第一个 Task 的 expected_output 里明确要求它输出一个结构化的 JSON 列表,否则传给第二个 Agent 时,它会因为上下文太乱而开始胡编乱造。
核心配置代码参考:
from crewai import Agent, Task, Crew, Process
from crewai_tools import FirecrawlScrapeWebsiteTool
# 关键:使用 Firecrawl 避免抓取乱码
scrape_tool = FirecrawlScrapeWebsiteTool()
searcher = Agent(
role='竞品情报员',
goal='精准抓取 {competitor} 的核心功能点和定价方案',
backstory='你擅长从冗长的官网文档中快速定位关键商业参数',
tools=[scrape_tool],
verbose=True
)
analyst = Agent(
role='商业分析师',
goal='对比 {competitor} 与我方产品的差异,找出 3 个核心弱点',
backstory='你拥有极强的逻辑推演能力,拒绝泛泛而谈的描述',
verbose=True
)
# 任务定义必须包含具体的输出格式要求
task1 = Task(
description='抓取 {competitor} 官网的 Pricing 页面和 Feature 页面,提取具体的价格区间和功能列表',
expected_output='一个包含功能点和价格的 Markdown 列表',
agent=searcher
)
task2 = Task(
description='基于 task1 的结果,对比我方产品的 A 功能,分析对方的竞争优势',
expected_output='一份对比分析报告,必须包含具体的证据链',
agent=analyst
)
crew = Crew(
agents=[searcher, analyst],
tasks=[task1, task2],
process=Process.sequential
)
result = crew.kickoff(inputs={'competitor': '某竞品官网URL'})这里分享两个提升效率的细节:
1. 内存管理: 开启 memory=True。如果不开启,Analyst 在分析多个竞品时,经常会忘记第一个竞品的具体参数,导致对比报告前后矛盾。
2. 提示词避坑: 别在 backstory 里写「你是一个专业的分析师」,没用。要写「你拒绝使用“领先”、“强大”、“极致”这类形容词,必须提供具体的数据或功能名称」。这样强制 AI 放弃文学创作,回归数据分析。
目前这套流跑下来,单次分析一个竞品的耗时从 2 小时缩短到了 5 分钟,最大的提升在于它能强迫我关注具体的 Feature 差异,而不是凭感觉写分析报告。
免费 AI 工具箱 · 全部完全免费
全部回复 (0)
还没有回复,来发第一条吧!
