第 40 课 | 实战:4 Agent 协作完成「市场进入决策分析」

端到端实战——整合第 31-39 课所有技术,4 个 Agent 协作完成一份完整的商业决策报告。从「我们会做」到「我们做完了一件事」。


一、业务目标

输入:一个商业问题——「我们是否应该进入智能手表市场?」

系统自动完成:

  1. 市场研究 Agent:分析市场规模、增长率、用户画像、趋势
  2. 竞品分析 Agent:分析竞品矩阵、市场份额、差异化机会
  3. 风险评估 Agent:识别风险因素、评估概率、设计缓解策略
  4. 报告整合 Agent:汇总所有分析,生成结构化决策建议报告

输出:一份完整的决策建议报告,包含:

  • 执行摘要(Executive Summary)
  • 市场分析(市场规模、增长趋势、用户画像)
  • 竞品格局(主要玩家、市场份额、优劣势)
  • 风险评估(风险矩阵、概率、缓解策略)
  • 战略建议(进入策略、资源需求、时间线)

二、系统架构

👤 用户输入
「是否进入智能手表市场?」

🎯 Supervisor
任务分解与调度

📊 市场研究 Agent
- 搜索行业报告
- 提取市场规模
- 分析增长趋势
- 用户画像分析

🔍 竞品分析 Agent
- 识别主要竞品
- 分析市场份额
- SWOT 对比
- 差异化机会

⚠️ 风险评估 Agent
- 识别风险因素
- 评估概率/影响
- 风险矩阵
- 缓解策略

📝 报告整合 Agent
- 汇总所有分析
- 交叉验证
- 生成结构化报告
- 给出决策建议

📄 决策建议报告
执行摘要 + 市场分析 +
竞品格局 + 风险评估 +
战略建议


三、Agent 角色定义

3.1 市场研究 Agent

MARKET_RESEARCHER_PROMPT = """你是一个资深市场研究分析师,拥有 15 年行业经验。

你的任务:
1. 搜索和分析目标市场的规模数据
2. 识别市场增长趋势和驱动因素
3. 分析目标用户画像和需求
4. 评估市场成熟度和进入时机

输出格式:
## 市场分析
- 市场规模:当前规模和预测增长率
- 增长趋势:关键驱动因素和趋势
- 用户画像:目标用户特征和需求
- 进入时机:市场成熟度评估

关键原则:
- 每个结论必须有数据支撑
- 区分「事实」和「推测」
- 引用来源时注明出处
"""

3.2 竞品分析 Agent

COMPETITOR_ANALYST_PROMPT = """你是一个竞品分析专家,擅长分析竞争格局。

你的任务:
1. 识别主要竞争对手及其市场份额
2. 分析每个竞品的优势和劣势
3. 发现差异化机会和空白市场
4. 评估竞争壁垒

输出格式:
## 竞品分析
- 竞品矩阵:列出主要玩家及其定位
- SWOT 对比:每个竞品的优劣势
- 差异化机会:未被满足的需求
- 竞争壁垒:进入难度评估

关键原则:
- 客观分析,不贬低竞品
- 关注用户真实需求,而非表面功能
- 识别竞品的「软肋」而非全面否定
"""

3.3 风险评估 Agent

RISK_ASSESSOR_PROMPT = """你是一个风险管理专家,擅长识别和评估商业风险。

你的任务:
1. 识别所有可能的风险因素
2. 评估每个风险的概率和影响
3. 构建风险矩阵
4. 设计缓解策略

输出格式:
## 风险评估
- 风险列表:每个风险的描述
- 概率/影响:用高/中/低标注
- 风险矩阵:按优先级排列
- 缓解策略:针对高风险的具体措施

风险类别:
- 市场风险:需求不足、竞争加剧
- 技术风险:技术壁垒、供应链
- 法规风险:合规要求、专利
- 执行风险:团队能力、资源不足
"""

3.4 报告整合 Agent

REPORT_WRITER_PROMPT = """你是一个战略咨询顾问,擅长将分析整合为决策建议。

你的任务:
1. 汇总三个 Agent 的分析结果
2. 交叉验证信息的一致性
3. 生成结构化的决策报告
4. 给出明确的战略建议

输出格式:
## 执行摘要
(200 字以内,最核心的发现和建议)

## 市场分析
(整合市场研究 Agent 的结果)

## 竞品格局
(整合竞品分析 Agent 的结果)

## 风险评估
(整合风险评估 Agent 的结果)

## 战略建议
- 推荐方案:进入/不进入/观望
- 如果进入:建议的进入策略
- 资源需求:人才、资金、时间
- 关键里程碑:6 个月、1 年、3 年目标
"""

四、Supervisor 编排

class MarketEntrySupervisor:
    """市场进入决策 Supervisor"""
    
    def __init__(self):
        self.market_agent = Agent("市场研究员", MARKET_RESEARCHER_PROMPT)
        self.competitor_agent = Agent("竞品分析师", COMPETITOR_ANALYST_PROMPT)
        self.risk_agent = Agent("风险评估师", RISK_ASSESSOR_PROMPT)
        self.report_agent = Agent("报告撰写师", REPORT_WRITER_PROMPT)
    
    def analyze(self, question: str) -> dict:
        """执行完整的决策分析"""
        results = {}
        
        print("=" * 60)
        print(f"  任务:{question}")
        print("=" * 60)
        
        # Phase 1: 并行执行三个分析 Agent
        print("\n[Phase 1] 并行执行市场研究、竞品分析、风险评估...")
        
        results["market"] = self.market_agent.run(question)
        print("  ✓ 市场研究完成")
        
        results["competitor"] = self.competitor_agent.run(question)
        print("  ✓ 竞品分析完成")
        
        results["risk"] = self.risk_agent.run(question)
        print("  ✓ 风险评估完成")
        
        # Phase 2: 质量检查
        print("\n[Phase 2] 质量检查...")
        for name, result in results.items():
            if not self._validate_output(result):
                print(f"  ⚠ {name} 输出不完整,重新生成...")
                results[name] = getattr(self, f"{name}_agent").run(question)
        
        # Phase 3: 报告整合
        print("\n[Phase 3] 报告整合...")
        context = self._merge_results(results)
        final_report = self.report_agent.run(
            f"请整合以下分析结果,生成决策报告:\n\n{context}"
        )
        print("  ✓ 报告生成完成")
        
        print("\n" + "=" * 60)
        print("  分析完成!")
        print("=" * 60)
        
        return {
            "question": question,
            "market_analysis": results["market"],
            "competitor_analysis": results["competitor"],
            "risk_assessment": results["risk"],
            "final_report": final_report,
        }
    
    def _validate_output(self, output: str) -> bool:
        """验证输出完整性"""
        required_sections = ["## ", "分析", "建议"]
        return all(section in output for section in required_sections[:2])
    
    def _merge_results(self, results: dict) -> str:
        """合并三个 Agent 的结果"""
        return "\n\n---\n\n".join([
            f"### 市场研究结果\n{results['market']}",
            f"### 竞品分析结果\n{results['competitor']}",
            f"### 风险评估结果\n{results['risk']}",
        ])

五、关键设计决策

设计点决策原因
分析阶段并行三个 Agent 同时执行无依赖关系,可并行加速
质量检查每阶段完成后检查防止错误传递到下游
报告整合串行等待所有分析完成后需要完整上下文
结构化输出统一 Markdown 格式便于解析和展示
可追溯每个 Agent 输出独立保存便于审计和调试

六、运行

cd code/lesson-40-market-entry
uv sync
uv run market_entry.py

输出包含:市场研究分析、竞品分析报告、风险评估矩阵、完整决策建议报告。


七、本课小结

  1. 第一个端到端多 Agent 实战——4 Agent 协作,从问题到报告全自动
  2. 关键设计:并行分析 → 质量检查 → 报告整合
  3. 每个 Agent 有专业化 Prompt,输出结构化结果
  4. 质量检查防止错误传递,是生产级系统的关键

配套代码:code/lesson-40-market-entry/market_entry.py

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐