CrewAI 多 Agent 小程序项目生成器

创建时间:2026-05-06 最后更新:2026-05-07 用途:从市场信号发现小程序选题 → 轻量调研对比 → 用户拍板 → 自动生成完整项目包 代码仓库:~/projects/miniprogram-crew/ | Gitee: miniprogram-crew(待创建)

当前架构(v2 — 用户决策驱动)

核心改进:AI 辅助决策 ≠ AI 替用户决策。Phase 0 发现候选选题后,先让每个选题过一轮轻量调研生成简报,用户对比数据后再拍板选一个,选中的才进完整开发流程。

Phase 0: 机会发现
  TrendRadar 热搜扫描 + Tavily 搜索 → 生成 Top 5 候选选题(附评分+理由)
   ↓
Phase 1 Light: 轻量调研
  对 Top 5 各跑一轮快速调研(不用 MediaCrawler 等重型工具)
  → 生成 5 份精简简报(竞品、市场信号、资质、变现、GO/NO-GO)
   ↓
用户决策:对比 5 份简报 → 拍板选一个
  自动模式:选 GO 的选题中 Phase 0 评分最高的
   ↓
Phase 1: 完整调研(选中的选题)
  深度调研(7 工具 + 分层摘要 + 竞品二次搜索 + 证据评级)
   ↓
  调研 GO / NO-GO 判断
  NO-GO → 流程终止,只保存调研报告(省 token)
  GO → 继续 ↓
   ↓
Phase 1 续:PRD → UI → 评审
   ↓
  评审 通过 / 不通过
  不通过 → Phase 2: 修正 → 二审
  仍不通过 → 跳过开发计划
   ↓
Phase 3: 开发计划
   ↓
Phase 3.5: 代码审查循环(审查 → 修正 → 二审,最多 2 轮)
   ↓
Phase 4: 汇总 → 完整项目包

产物结构

output/{timestamp}/
├── 00_phase0_discovery.md        # Phase 0 发现报告
├── 00_phase1_light_briefs.md     # 5 份轻量调研简报
├── 01_phase1_full_research.md    # 完整调研报告(或 01_phase1_research_nogo.md)
├── 02_phase2_fix_review.md       # 修正+二审(未执行则标注)
├── 03_phase3_dev_plan.md         # 开发计划
├── 03_5_phase3_5_code_review.md  # 代码审查报告
└── 04_phase4_summary.md          # 最终汇总

Agent 清单(10 个)

| Agent | 阶段 | 工具数 | 职责 | |-------|------|--------|------| | Discovery Agent | Phase 0 | 5 | 从热搜/趋势挖掘候选选题 | | Light Research Agent | Phase 1 Light | 3 | 快速出简报,轻量调研 | | Research Agent | Phase 1 | 7 | 深度调研(完整版) | | PRD Agent | Phase 1 | 0 | 产品需求文档 | | UI Agent | Phase 1 | 0 | 页面结构+组件设计 | | Review Agent | Phase 1 | 0 | 需求评审 | | Fix Agent | Phase 2 | 0 | 根据评审意见修正 | | Review Agent v2 | Phase 2 | 0 | 二审(更严格) | | Dev Plan Agent | Phase 3 | 0 | 技术开发计划 | | Code Review Agent | Phase 3.5 | 0 | 代码审查(独立上下文) | | Code Review Agent v2 | Phase 3.5 | 0 | 代码二审(全新 Agent) | | Code Fix Agent | Phase 3.5 | 0 | 代码修正 | | Leader Agent | Phase 4 | 0 | 项目汇总 |

文件结构

miniprogram-crew/
├── agents/agents.py    # 10 个 Agent 定义
├── tasks/tasks.py      # 12 个 Task 定义
├── main.py             # 入口(完整流水线编排)
├── .env.example         # API 配置示例
├── requirements.txt     # 依赖清单
└── output/             # 生成的项目包

用法

cd ~/projects/miniprogram-crew
python3 main.py                    # Phase 0 自动发现选题

Phase 0 不再需要命令行参数,会自动从热搜中发现选题。

核心函数

解析与选择

  • parse_discovery_top5(discovery_output) — 从发现 Agent 输出中解析 Top 5 选题名称和评分
  • select_topic_from_briefs(briefs) — 对比 5 份简报,自动选 GO 中评分最高的

阶段执行

  • run_phase0() — 机会发现
  • run_phase1_light(topics) — 轻量调研(批量跑 5 个)
  • run_full_phase1(user_input) — 完整调研 + PRD + UI + 评审
  • run_phase2(user_input, phase1_output) — 修正 + 二审
  • run_phase3(prev_output, review_passed) — 开发计划
  • run_phase3_5(dev_plan_output, review_passed) — 代码审查循环
  • run_phase4(phase3_5_output, review_passed) — 汇总

判断函数

  • is_research_go(research_output) — 调研 GO/NO-GO
  • is_review_passed(review_output) — 评审通过/不通过
  • is_code_review_passed(code_review_output) — 代码审查通过/有问题

Agent 设计详情

Discovery Agent(Phase 0)

  • TrendRadar 中文热搜监控(核心数据源,11 个平台)
  • TavilySearchTool(方向性搜索)
  • Tavily API 搜索(市场数据)
  • Jina 网页抓取(具体页面)
  • 输出格式:Top 5 候选选题,每个包含热度信号、需求分析、竞品概况、开发难度、变现模式、综合评分、推荐理由

Light Research Agent(Phase 1 Light)— 新增

  • 3 个轻量工具:TavilySearchTool、Tavily API、Jina 网页抓取
  • 不用 MediaCrawler、TrendRadar、TavilyGetResearchTool(太重)
  • 输出格式:300 字以内简报(竞品 2-3 个、市场信号、资质门槛、变现模式、证据等级 B/C/D、GO/NO-GO、一句话理由)

Research Agent(Phase 1 完整版)

  • 7 个工具:Tavily ×3、Jina ×2、MediaCrawler、TrendRadar
  • 调研流水线:关键词扩展 → 多源数据收集 → 分层摘要 → 竞品二次搜索 → 交叉验证+证据评级(A/B/C/D)
  • 输出:多维度深度报告,含竞品对比表、市场规模、微信生态适配、用户反馈、差异化建议

PRD / UI / Review / Fix / Dev Plan / Code Review / Leader

设计与 v1 相同,详见下方"历史架构"章节。

技术栈

  • CrewAI 1.14.4
  • 智谱 GLM(OpenAI 兼容接口,glm-4-plus)
  • Python 显式条件控制(if-else 动态路由)
  • TrendRadar(本地 SQLite 数据,11 个中文平台热搜)
  • MediaCrawler(Docker 化,小红书/知乎/B站/抖音等)
  • Tavily API(高质量搜索)
  • Jina Reader(网页清洗)

历史架构(v1 — 2026-05-06)

以下为初始版本设计,已被 v2 取代,保留供参考

7 个 Agent 顺序执行,含评审循环:

Leader Agent(编排 + 汇总)
 ├── 调研 Agent(产品调研 + 微信生态分析)
 ├── PRD Agent(产品需求文档)
 ├── UI Agent(页面结构 + 组件设计)
 ├── 需求评审 Agent(挑问题、找遗漏、对齐策略)
 ├── 修正 Agent(根据评审意见修改 PRD + UI)
 └── 开发计划 Agent(技术方案 + 文件结构 + 埋点清单)

v1 执行流程

Phase 1: 调研 → PRD → UI → 评审
         ↓ 包含 "不通过"?
Phase 2: 修正 → 第二轮评审(仅不通过时执行)
         ↓
Phase 3: 开发计划
         ↓
Phase 4: 汇总

v1 全链路测试结果

第1次测试(上下文串台)

  • ❌ 上下文没传递,Leader 输出变成了"二手交易平台"
  • ❌ Leader 超时,300s 被 SIGKILL

第2次测试(手动注入上下文)

  • ✅ 上下文正确传递
  • ✅ Leader 拆成独立 Phase 4

第3次测试(独立文档链,最终版)

  • ✅ 评审不通过 → Phase 2 修正 → 通过
  • ✅ Phase 3 开发计划 15KB
  • ✅ Phase 4 汇总 7.5KB

开发教训

架构设计教训

  1. AI 辅助决策 ≠ AI 替用户决策 — Phase 0 自动选最高分进完整验证是最大的设计错误。应该先让所有候选过轻量调研,用户看到真实数据后再选
  2. 改架构前先对齐思路 — 不要在代码运行中才发现问题,先文字确认流程再改代码
  3. 一次性想透整个流程 — 头痛医头脚痛医脚会浪费大量 token
  4. 轻量验证优先 — 在投入大量 token 跑完整流程前,先用低成本方式筛掉明显不行的方向

CrewAI 工作流教训

  1. 8 个 Agent 太重 → 合并到 7 个
  2. UI 要复用设计系统 → 避免视觉风格不统一
  3. 需求评审不可少 → PRD 和 UI 出来后必须有人挑问题
  4. 评审不通过必须打回 → 修正后再审,形成闭环
  5. CrewAI 没有条件分支 → 必须用外部 Python 控制动态路由
  6. 多 Phase 必须显式传递上下文Task.description 里手动注入上一步产物
  7. 每步只读上一步 — 避免上下文膨胀和串台
  8. pkill -f 会自杀pkill -f "pattern" 匹配到自身 shell 进程。应该用 pgrep 先拿到 PID 再 kill -9 <pid>

历史复盘教训(来自 SBTI / 问问今天 / 成长五件套)

需求阶段:

  • ❌ 需求未对齐就动手 = 大量返工 → 评审 Agent 必须检查 PRD 是否覆盖核心场景

架构阶段:

  • ❌ 使用 miniprogram/ 子目录 → 开发计划必须要求根目录直接放 pages/
  • ❌ 使用 tabBar → 工具类小程序不用 tabBar

合规阶段:

  • ❌ 个人主体做政务/社保类目 → 评审 Agent 必须检查类目资质
  • ❌ 等代码写完才备案 → 执行清单必须标注 Day 1 启动备案
  • ❌ 只在开发工具测 → 测试计划必须包含真机测试

策略阶段:

  • ❌ 清理笔记时过度删除 → Agent 不应破坏用户已有文档
  • ❌ 数量博概率 > 单个精品 → CrewAI 生成的项目应符合"快开发、零 API"矩阵策略