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-GOis_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
开发教训
架构设计教训
- AI 辅助决策 ≠ AI 替用户决策 — Phase 0 自动选最高分进完整验证是最大的设计错误。应该先让所有候选过轻量调研,用户看到真实数据后再选
- 改架构前先对齐思路 — 不要在代码运行中才发现问题,先文字确认流程再改代码
- 一次性想透整个流程 — 头痛医头脚痛医脚会浪费大量 token
- 轻量验证优先 — 在投入大量 token 跑完整流程前,先用低成本方式筛掉明显不行的方向
CrewAI 工作流教训
- 8 个 Agent 太重 → 合并到 7 个
- UI 要复用设计系统 → 避免视觉风格不统一
- 需求评审不可少 → PRD 和 UI 出来后必须有人挑问题
- 评审不通过必须打回 → 修正后再审,形成闭环
- CrewAI 没有条件分支 → 必须用外部 Python 控制动态路由
- 多 Phase 必须显式传递上下文 —
Task.description里手动注入上一步产物 - 每步只读上一步 — 避免上下文膨胀和串台
- pkill -f 会自杀 —
pkill -f "pattern"匹配到自身 shell 进程。应该用pgrep先拿到 PID 再kill -9 <pid>
历史复盘教训(来自 SBTI / 问问今天 / 成长五件套)
需求阶段:
- ❌ 需求未对齐就动手 = 大量返工 → 评审 Agent 必须检查 PRD 是否覆盖核心场景
架构阶段:
- ❌ 使用
miniprogram/子目录 → 开发计划必须要求根目录直接放pages/ - ❌ 使用 tabBar → 工具类小程序不用 tabBar
合规阶段:
- ❌ 个人主体做政务/社保类目 → 评审 Agent 必须检查类目资质
- ❌ 等代码写完才备案 → 执行清单必须标注 Day 1 启动备案
- ❌ 只在开发工具测 → 测试计划必须包含真机测试
策略阶段:
- ❌ 清理笔记时过度删除 → Agent 不应破坏用户已有文档
- ❌ 数量博概率 > 单个精品 → CrewAI 生成的项目应符合"快开发、零 API"矩阵策略