基于蒙特卡洛方法的 AI 驱动推演引擎。输入目标 → AI 拆解步骤 → 蒙特卡洛模拟 → 审核判定 → 打回重推 → 输出可执行行动方案。
- 目标输入:自然语言输入 + 行业模板选择
- 步骤拆解:AI 自动将目标分解为 DAG 步骤链
- LLM 驱动的业务变量识别:每步骤 3-5 个具体业务变量 + 权重 + 达标阈值
- LLM 风险评估与优化建议:具体原因 + 可操作建议
- LLM 步骤迭代调整:被打回步骤自动优化(基于 LLM 分析结果)
- 加权蒙特卡洛推演:基于变量权重和达标情况计算通过率 + TOP3 风险因子
- 三级审核机制:通过率判定 → 风险集中度 → 前置风险传导
- 打回逻辑:当前步骤 / 前置步骤 / 目标层三层打回,含迭代上限保护
- LLM 执行方案生成:差异化角色 + 具体资源 + 可量化的验收标准
- MCTS 对抗式推演:LLM-A 方案生成 vs LLM-B 挑战者,多轮对抗辩论,UCB1 节点选择
- MCTS 搜索树:四步循环(选择 → 扩展 → 模拟 → 回传),策略树自动生长
- 实时树可视化:ReactFlow 渲染策略树,节点卡片显示策略、状态、对抗详情
- LLM 自定义配置:用户可配置 API Key / Base URL / Model,支持任意 OpenAI 兼容 API
- SSE 实时流:推演过程实时推送,无需轮询
- DAG 可视化:ReactFlow 渲染步骤依赖图
- 动态动画:推演进度、节点状态实时更新
- 会话恢复:推演中断后可从断点恢复
| 层 | 技术 |
|---|---|
| 前端 | React + TypeScript + Vite + ReactFlow + Zustand + Recharts |
| 后端 | Python 3.14 + FastAPI + SQLAlchemy + SQLite |
| AI | MiniMax M2.5 LLM + 加权蒙特卡洛模拟 |
| MCTS 引擎 | 原生 Python MCTS(UCB1 选择 + 对抗辩论 + 策略树回传) |
| 模拟 | 原生 Python 蒙特卡洛(支持 normal/uniform/beta/triangular 分布) |
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r <(cat <<'EOF'
fastapi==0.115.0
uvicorn[standard]==0.30.0
sqlalchemy==2.0.35
pydantic==2.9.0
pydantic-settings==2.5.0
httpx==0.27.0
pytest==8.3.0
python-multipart==0.0.9
EOF
)
# 配置 GLM API Key
# 编辑 .env,填入 GLM_API_KEY
# 启动
uvicorn app.main:app --reload --port 8001cd frontend
npm install
npm run devai-deduction/
├── PRD.md # 产品需求文档
├── SPEC.md # 技术规格
├── plan.md # 执行计划
├── backend/
│ ├── app/
│ │ ├── engine/ # 核心引擎
│ │ │ ├── monte_carlo.py # 蒙特卡洛模拟器
│ │ │ ├── mcts_node.py # MCTS 数据结构
│ │ │ ├── adversarial_debate.py # 对抗推演
│ │ │ ├── mcts_engine.py # MCTS 四步循环
│ │ │ ├── mcts_orchestrator.py # MCTS 步骤编排
│ │ │ ├── review_engine.py # 审核引擎
│ │ │ ├── iteration_controller.py # 迭代控制器
│ │ │ ├── execution_plan_builder.py # 执行方案生成器
│ │ │ ├── dag.py # DAG 工具
│ │ │ └── variable.py # 变量采样
│ │ ├── llm/ # LLM 调用封装
│ │ ├── models/ # SQLAlchemy 模型
│ │ ├── routers/ # FastAPI 路由
│ │ └── schemas/ # Pydantic Schema
│ └── pyproject.toml
└── frontend/
└── src/
├── components/
│ ├── GoalInput.tsx # 目标输入 + 模板选择
│ ├── StepEditor/DagView.tsx # DAG 可视化
│ ├── Simulation/
│ │ ├── SimProgress.tsx # 推演进度
│ │ └── MCTSTree/ # MCTS 树可视化
│ └── ResultView/
│ ├── ActionChecklist.tsx # TODO 清单
│ └── RiskList.tsx # 风险清单
├── api/client.ts # API 客户端
├── hooks/useSSE.ts # SSE Hook
└── store/goalStore.ts # Zustand 状态
| Method | Path | 描述 |
|---|---|---|
| POST | /api/v1/goals |
创建目标 |
| GET | /api/v1/goals |
列出所有目标 |
| POST | /api/v1/goals/{id}/decompose |
AI 拆解步骤 |
| POST | /api/v1/goals/{id}/simulate |
启动推演(SSE 流) |
| POST | /api/v1/goals/{id}/simulate-mcts |
启动 MCTS 对抗推演(SSE 流) |
| GET | /api/v1/goals/{id}/plan |
获取执行方案 |
| GET | /api/v1/goals/{id}/rejections |
获取打回日志 |
v5.3.0 — URL 配置持久化 + 历史推演记录 ✅
- LLM 配置 URL 持久化:Base URL + Model 存入 URL 参数,收藏/分享链接即可复用
- 历史推演面板:查看过往推演记录,点击回顾完整结果
- 删除功能:一键删除不需要的推演记录(级联清理关联数据)
- 后端 GoalDetailResponse:详情端点返回 steps + 最新 simulation
v5.2.0 — 用户自定义 LLM 配置 ✅
- 前端 LLM 配置面板(API Key / Base URL / Model)
- 配置存储在浏览器 localStorage,不上传服务器
- 后端动态接收用户 LLM 配置,支持任意 OpenAI 兼容 API
- 隐私声明:Key 仅存本地,后端不落库不落日志
- 未配置时自动使用默认模型
v5.1.0 — SOP 可执行流程生成 ✅
- 推演结束后自动生成详尽可执行 SOP
- 分阶段执行计划(含 action/method/owner/tools/output/acceptance)
- 资源清单、关键里程碑、风险预案
- 前端 SOP 面板(可折叠阶段卡片 + 一键 Markdown 复制)
v5.0.0 — MCTS V2 决策线引擎 ✅
- 决策线推演引擎:单条线上搜索+回溯
- 按节奏推演(天/周/月)
- 前端决策线时间轴可视化(ReactFlow)
v3.0.0 — MCTS 对抗推演引擎 ✅
- MCTS 对抗推演(LLM-A 方案生成 vs LLM-B 挑战者)
- UCB1 节点选择 + 策略树可视化(ReactFlow)
- 普通/MCTS 双模式切换
- E2E 验证 8/8 通过(3 步骤 × 101 SSE 事件)
- 人工审核 UI
- 调整历史面板
- PDF 导出
- 多语言支持
所有开发文档(SPEC/PRD/PLAN/CHANGELOG/task-contract 等 .md 文件)禁止上传 GitHub。项目 .gitignore 已配置:
# 开发文档(仅本地,不上传)
*.md
!README.md
reports/
临时测试文件也需要过滤:
e2e-*.cjs
e2e-*.mjs
playwright-report/
规则:.gitignore 在项目初始化时创建,后续绝不 commit .md 文档文件。本地保留即可。
- Hook 函数稳定性:
handleSSEEvent、handleSimulate等函数必须用useCallback包裹,避免 Hooks 顺序违规 - 状态管理:全局状态用 Zustand store,组件本地状态用
useState - API 层:统一走
src/api/client.ts,禁止在组件内直接 fetch