【三个月 AI Agent 实战学习】Day 45:项目实战 —— 市场调研分析团队

发布时间:2026/10/24 5:29:15
【三个月 AI Agent 实战学习】Day 45:项目实战 —— 市场调研分析团队 Day 45项目实战 —— 市场调研分析团队欢迎来到第四十五天过去两天我们掌握了 CrewAI 的核心概念和高级特性。今天我们将把这些知识付诸实践构建一个完整的市场调研分析团队。这个项目将模拟真实企业的市场调研流程由市场分析师调研行业规模竞品分析师分析竞争对手消费者洞察专家挖掘用户需求最后战略顾问综合所有信息给出战略建议。完成后你将拥有一个可复用的多智能体调研系统也能将其应用到其他领域。一、今日学习目标综合运用 CrewAI 的 Agent 三要素、Task 依赖管理、结构化输出等高级特性。学会设计多智能体协作的完整流程任务拆分、角色分配、依赖编排。掌握output_pydantic在复杂任务中的应用实现结构化的调研报告。构建一个可复用的市场调研系统输入任意行业主题即可输出完整调研报告。通过实际运行观察多智能体协作在复杂任务中的表现并总结经验。二、详细实现步骤步骤 1设计项目架构场景输入一个行业主题如“中国新能源汽车行业”系统自动完成市场调研并输出报告。团队角色Agent职责输出市场分析师调研行业规模、增长率、趋势市场规模报告竞品分析师分析主要竞争对手、市场份额、优劣势竞品分析报告消费者洞察专家分析目标用户画像、需求痛点、购买决策因素用户洞察报告战略顾问综合三份报告给出战略建议战略建议报告报告撰写人将调研结果整理成完整的调研报告最终调研报告任务流程市场调研任务 ─┐ 竞品分析任务 ─┼─→ 战略顾问任务 → 报告撰写任务 → 最终报告 用户洞察任务 ─┘前三项调研任务相互独立可以并行战略顾问依赖前三项结果报告撰写人依赖战略顾问的输出。步骤 2环境准备确保已安装 CrewAIpipinstallcrewai crewai-tools新建market_research_crew.py导入依赖importosfromdotenvimportload_dotenvfromcrewaiimportAgent,Task,Crew,Process,LLMfrompydanticimportBaseModel,FieldfromtypingimportList,Optional load_dotenv()llmLLM(modeldeepseek/deepseek-chat,api_keyos.getenv(DEEPSEEK_API_KEY),base_urlhttps://api.deepseek.com,temperature0.7)步骤 3定义结构化输出模型使用 Pydantic 定义各阶段的输出结构确保数据规整。classMarketSizeReport(BaseModel):industry:strField(description行业名称)market_size:strField(description市场规模如2024年约5000亿元)growth_rate:strField(description增长率如年复合增长率约25%)key_trends:List[str]Field(description关键趋势列表)opportunities:List[str]Field(description市场机会列表)risks:List[str]Field(description市场风险列表)classCompetitorReport(BaseModel):industry:strField(description行业名称)main_competitors:List[str]Field(description主要竞争对手列表)market_share:strField(description市场份额分布描述)strengths:List[str]Field(description竞争对手的共同优势)weaknesses:List[str]Field(description竞争对手的共同劣势)differentiation:strField(description差异化机会描述)classConsumerInsightReport(BaseModel):industry:strField(description行业名称)target_users:List[str]Field(description目标用户群体描述)pain_points:List[str]Field(description用户痛点列表)decision_factors:List[str]Field(description购买决策因素)unmet_needs:List[str]Field(description未被满足的需求)classStrategyReport(BaseModel):industry:strField(description行业名称)executive_summary:strField(description执行摘要200字以内)strategic_recommendations:List[str]Field(description战略建议列表)action_items:List[str]Field(description具体行动项)expected_outcomes:strField(description预期效果)步骤 4定义 Agent为每个角色编写高质量的三要素定义。# 市场分析师market_analystAgent(role资深市场分析师,goal准确评估目标行业的市场规模、增长趋势、机会与风险提供数据驱动的市场洞察,backstory你是一位拥有 10 年经验的市场分析师曾在麦肯锡、艾瑞咨询等机构工作。 你擅长通过公开数据、行业报告和趋势分析快速勾勒出一个行业的全景图。 你的分析以数据详实、逻辑严密著称每一个结论都有数据支撑。 你坚信不了解市场就无法制定战略。,llmllm,verboseTrue,allow_delegationFalse)# 竞品分析师competitor_analystAgent(role竞品分析专家,goal识别行业主要玩家分析其市场份额、优劣势找到差异化竞争机会,backstory你是一位专注竞争情报分析的专家曾为多家上市公司提供竞品分析服务。 你擅长从公开财报、产品对比、用户评价中提取关键竞争信息。 你的分析总是能看到竞争对手的软肋并指出我方可以切入的空白点。 你相信知己知彼百战不殆。,llmllm,verboseTrue,allow_delegationFalse)# 消费者洞察专家consumer_insightAgent(role消费者洞察专家,goal深入理解目标用户的画像、痛点、购买决策因素和未被满足的需求,backstory你是一位消费者行为研究专家拥有心理学和社会学背景。 你擅长通过用户访谈、问卷数据和社交媒体分析挖掘用户的真实需求。 你总能发现用户嘴上说的和实际做的之间的差异找到真正的痛点。 你的座右铭是用户不是要买钻头而是要墙上的洞。,llmllm,verboseTrue,allow_delegationFalse)# 战略顾问strategistAgent(role首席战略顾问,goal综合市场、竞品和用户洞察制定可执行的战略建议帮助企业找到增长路径,backstory你是一位资深战略顾问曾在波士顿咨询公司工作 15 年。 你擅长将复杂的市场信息提炼为简洁有力的战略建议。 你的建议总是兼顾理想和现实既有远见又脚踏实地。 你坚信战略不是选择做什么而是选择不做什么。,llmllm,verboseTrue,allow_delegationFalse)# 报告撰写人report_writerAgent(role调研报告撰写专家,goal将复杂的调研数据和战略建议整理成结构清晰、易读的专业调研报告,backstory你是一位专业的商业报告撰写人曾为多家咨询公司撰写行业研究报告。 你擅长将专业术语转化为通俗易懂的语言让非专业读者也能快速理解。 你的报告结构清晰图表丰富重点突出。 你相信好的报告不是写出来的是改出来的。,llmllm,verboseTrue,allow_delegationFalse)步骤 5定义 Task5.1 三个独立的调研任务industry中国新能源汽车行业# 任务1市场分析task_marketTask(descriptionf请对以下行业进行市场分析{industry}需要完成 1. 评估当前市场规模2024年数据和增长率 2. 识别 3-5 个关键市场趋势 3. 分析市场机会至少 3 个 4. 分析市场风险至少 3 个 请基于公开数据和行业常识进行分析确保数据合理。,expected_output包含市场规模、增长率、关键趋势、机会和风险的结构化报告,agentmarket_analyst,output_pydanticMarketSizeReport,output_fileoutput/market_analysis.md)# 任务2竞品分析task_competitorTask(descriptionf请对以下行业进行竞品分析{industry}需要完成 1. 识别 3-5 个主要竞争对手 2. 分析市场份额分布 3. 总结竞争对手的共同优势和劣势 4. 指出差异化竞争机会 请基于公开信息进行分析确保客观准确。,expected_output包含主要竞争对手、市场份额、优劣势和差异化机会的结构化报告,agentcompetitor_analyst,output_pydanticCompetitorReport,output_fileoutput/competitor_analysis.md)# 任务3消费者洞察task_consumerTask(descriptionf请对以下行业进行消费者洞察分析{industry}需要完成 1. 描述目标用户群体至少 3 类 2. 分析用户痛点至少 5 个 3. 分析购买决策因素至少 5 个 4. 指出未被满足的需求至少 3 个 请基于消费者行为常识进行分析。,expected_output包含目标用户、痛点、决策因素和未满足需求的结构化报告,agentconsumer_insight,output_pydanticConsumerInsightReport,output_fileoutput/consumer_insight.md)5.2 战略顾问任务依赖前三项# 任务4战略建议task_strategyTask(descriptionf基于以下三份报告为{industry}制定战略建议 市场分析报告见上下文 竞品分析报告见上下文 消费者洞察报告见上下文 需要完成 1. 撰写执行摘要200 字以内 2. 提出 3-5 条战略建议 3. 列出具体行动项每条建议对应 2-3 个行动项 4. 描述预期效果 战略建议要具体、可执行避免空泛。,expected_output包含执行摘要、战略建议、行动项和预期效果的结构化报告,agentstrategist,context[task_market,task_competitor,task_consumer],# 依赖三个调研任务output_pydanticStrategyReport,output_fileoutput/strategy_report.md)5.3 报告撰写任务依赖战略任务# 任务5撰写最终报告task_final_reportTask(descriptionf请将以下内容整理成一份完整的市场调研报告{industry}报告结构 1. 封面报告标题、日期 2. 执行摘要基于战略顾问的执行摘要 3. 市场分析市场规模、趋势、机会、风险 4. 竞品分析主要玩家、市场份额、优劣势 5. 消费者洞察用户画像、痛点、决策因素 6. 战略建议战略建议和行动项 7. 结论与展望 要求 - 语言专业但易读 - 重点突出使用小标题和列表 - 报告长度约 2000-3000 字 - 使用 Markdown 格式输出,expected_output一份完整的市场调研报告Markdown 格式,agentreport_writer,context[task_strategy],output_fileoutput/final_report.md)步骤 6组建 Crew 并执行crewCrew(agents[market_analyst,competitor_analyst,consumer_insight,strategist,report_writer],tasks[task_market,task_competitor,task_consumer,task_strategy,task_final_report],processProcess.sequential,# 顺序执行依赖关系自动处理verboseTrue)resultcrew.kickoff()print(\n*60)print(最终报告)print(result)步骤 7运行与观察mkdir-poutput python market_research_crew.py观察要点task_market、task_competitor、task_consumer依次执行各自输出结构化报告。task_strategy自动获取前三份报告作为上下文生成战略建议。task_final_report基于战略建议撰写完整报告。output/目录下生成 5 个文件4 份中间报告 1 份最终报告。步骤 8查看生成的文件运行完成后查看output/目录lsoutput/# market_analysis.md# competitor_analysis.md# consumer_insight.md# strategy_report.md# final_report.md打开final_report.md你会看到一份完整的市场调研报告包含执行摘要、市场分析、竞品分析、消费者洞察和战略建议。步骤 9对比 Sequential 和 Hierarchical将Process.sequential改为Process.hierarchical指定manager_llmcrewCrew(agents[market_analyst,competitor_analyst,consumer_insight,strategist,report_writer],tasks[task_market,task_competitor,task_consumer,task_strategy,task_final_report],processProcess.hierarchical,manager_llmllm,verboseTrue)运行后观察 Manager Agent 如何动态分配任务。可能发现Manager 会重新安排任务顺序。Manager 可能在 Worker 之间协调例如让竞品分析师等待市场分析师完成。输出可能更灵活但稳定性不如 Sequential。三、常见问题与调试Q1output_pydantic报错提示验证失败。→ LLM 输出可能不完全符合 Pydantic 模型。可以在 Task 的description中明确要求输出 JSON 格式并给出字段说明。也可以使用output_json替代或在代码中做后处理容错。Q2task_strategy的上下文太长超出 Token 限制。→ 三个前置报告的总长度可能很长。可以在task_market等任务中设置output_file并让task_strategy只读取摘要。在前置任务的description中要求输出精炼如每个字段不超过 200 字。使用max_tokens限制各任务的输出长度。Q3执行时间太长。→ 五个任务串行执行涉及多次 LLM 调用。优化方法将三个调研任务设为async_executionTrue并行执行。使用更快的模型如 DeepSeek 轻量版。减少 Agent 数量合并相关角色。Q4生成的内容不够专业。→ 检查 Agent 的backstory是否足够具体。可以在 Task 的description中增加“请参考行业报告的风格”、“使用专业术语”等要求。也可以提供 Few-shot 示例。Q5context传递的内容格式混乱。→ 确保前置任务设置了output_pydantic或output_json这样上下文会以结构化格式传递。如果没有可以在 Task 的description中要求输出格式。Q6如何复用这个系统调研其他行业→ 将industry提取为参数封装成函数defresearch_industry(industry:str):# 重新定义 Task 的 description# ... 创建 crewreturncrew.kickoff()research_industry(中国咖啡市场)Q7如何保存调研结果到数据库→ 可以在每个 Task 的output_file中保存 Markdown也可以在执行后读取task.output并存入数据库。四、今日总结与作业今天你完成了✅ 设计并实现了完整的市场调研分析团队。✅ 综合运用了 CrewAI 的高级特性Agent 三要素、Task 依赖、结构化输出。✅ 观察了多智能体协作在复杂任务中的表现。✅ 对比了 Sequential 和 Hierarchical 两种流程模式。今日作业必做将调研主题改为你感兴趣的行业如“中国咖啡市场”、“在线教育行业”运行完整流程查看最终报告质量。将三个调研任务设为async_executionTrue观察并行执行的效果和总耗时变化。为报告撰写人增加一个“数据可视化建议”字段在最终报告中加入图表建议如“建议用柱状图展示市场份额”。思考题如果调研结果中出现了前后矛盾如市场分析师说增长 30%竞品分析师说增长 10%你会如何设计一个“事实核查”环节来发现并解决矛盾请描述你的方案。明日预告我们将深入学习 AutoGen 框架了解它与 CrewAI 的差异并构建一个“投资辩论赛”多智能体系统体验辩论模式在决策分析中的应用。有任何问题欢迎随时提问

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询