PMFlow/docs/PMFLOW_THREE_ENGINE_UNIFIED...

142 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PMFlow 三引擎统一方案(v2)
## 1. 目标
- 用 3 个引擎达到“质量/成本/稳定性”平衡。
- 飞书与内置 AI 管家使用同一智能链路,避免 IQ 不一致。
- 所有系统操作(不止创建需求)由 AI 覆盖,但写库/副作用必须可控可审计。
- 消除多控制面冲突(PMFlow 配一套、OpenClaw 配一套、规则文件又一套)。
## 2. 先把名词说清楚
当前不是“3 个 agent”,而是:
- 2 个 agent
- PMFlow Orchestrator Agent:流程编排与执行(唯一执行入口)。
- OpenClaw Reasoning Agent:模型网关与推理。
- 3 个引擎(模型层)
- Engine-L(Low):低成本/低延迟,处理执行态与轻分类。
- Engine-H(High):高推理,处理复杂问答/规划。
- Engine-S(Safety):兜底引擎,处理故障与降级。
## 3. 单一控制面原则(必须)
只保留一个“模型真相源(Source of Truth)”:
- 推荐:OpenClaw 作为唯一模型控制面(模型、fallback、配额、可用性)。
- PMFlow 只做函数路由和执行状态机,不再直连多个云厂商。
> 结论:PMFlow 不再同时保存 GLM/OpenAI/DeepSeek 直连 key 参与主路由;
> PMFlow 统一走 OpenClaw 网关。
## 4. 三引擎职责分配(推荐)
- Engine-L:`zai/glm-4-flash`
- 场景:执行态分类、信号抽取、简短回执、轻量意图识别。
- Engine-H:`openai-compatible/GLM-5`
- 场景:复杂问答、多约束规划、任务编排、项目方案生成。
- Engine-S:`deepseek/deepseek-chat`(或你可用的稳定备份模型)
- 场景:H 不可用/超时/限流后的稳定兜底。
## 5. 路由矩阵(按 function_name)
### 5.1 走 Engine-L
- `feishu_level_classification`
- `feishu_signal_extraction`
- `rag_intent_classification`
- `classify_intent`
- `feishu_humanized_reply`(仅咨询态;执行态优先模板)
### 5.2 走 Engine-H
- `adaptive_rag_answer`
- `feishu_project_prefill`
- `feishu_task_orchestration`
- `generate_task_breakdown`
- `generate_charter_from_signal`
- `decompose_tasks_from_charter`
- `recommend_assignees_for_task`
- `evaluate_model_requirement`
- `calculate_alignment_score`
- `detect_cognitive_conflicts`
- `rag_db_project_semantic_retrieval`
- `workload_optimize_prompt`
- `analyze_cost_roi`
### 5.3 走 Engine-S(故障兜底)
- 触发条件:`Engine-L/H` 超时、5xx、限流、空响应、无效结构化输出。
- 行为:单次兜底重试 + 记录 `routing_decision=fallback_safety_engine`。
## 6. “低阶答不上来 -> 高阶接管”硬规则
已建议启用:
- 对低阶函数结果做“不可答”检测(如“信息不足/无法回答/不知道”)。
- 命中后自动升级到 High-tier 再请求 1 次。
- 若 High-tier 也失败,最后走 Safety-tier。
优先级链:
`Engine-L -> Engine-H -> Engine-S -> 固定降级模板`
## 7. 飞书与内置 AI 管家一致性
两入口统一走同一条链路:
- `RECEIVED -> CLASSIFIED -> ROUTED -> COMMITTED -> REPLIED`
- 执行态:禁自由文本,固定模板。
- 咨询态:允许文本回答,但同样走统一路由与审计。
这样飞书和内置管家不会再出现“一个聪明一个笨”的模型漂移。
## 8. 全功能 AI 操作覆盖(不止建需求)
建立 `Operation Catalog`,每个操作都必须有:
- `operation_code`
- `input_schema`(Pydantic strict)
- `rbac_policy`
- `idempotency_key`
- `audit_fields`
- `side_effect_guard`
覆盖范围:
- 项目:create/update/archive/reopen
- 任务:create/update/assign/prioritize/status_transition/delete
- 人员:role/workload/availability
- 知识库:doc/chunk/link/reindex
- 通知:create/ack/close
- 文件:白名单路径写入(禁止任意路径)
注意:LLM 只产出结构化意图;真正写库必须由 Tool 层执行。
## 9. 推荐配置模板
### 9.1 PMFlow `.env`(统一走 OpenClaw)
```env
LLM_PROVIDER=openai
OPENAI_BASE_URL=http://openclaw:18789/v1
OPENAI_API_KEY=<OPENCLAW_GATEWAY_TOKEN>
OPENCLAW_ROUTING_ENABLED=true
OPENCLAW_ROUTING_RULES_PATH=/app/backend/.openclaw/pmflow-routing-rules.json
LLM_MIXED_ROUTING_ENABLED=false
LLM_LOW_TO_HIGH_ESCALATION_ENABLED=true
```
### 9.2 OpenClaw Agent(main)
- Primary model:`zai/glm-4-flash`(Engine-L)
- Fallbacks:`openai-compatible/GLM-5,deepseek/deepseek-chat`
> 如果你要严格“低->高->安全”,可在 OpenClaw 路由中按函数直接指定模型,fallback 只做同层灾备。
### 9.3 PMFlow 路由规则(关键)
- 同一文件统一管理:`backend/.openclaw/pmflow-routing-rules.json`
- 生产发布必须过 lint + replay gate。
## 10. 安全边界(必须守)
- 执行态不允许自由文本动作建议驱动写库。
- 所有写操作必须经过 schema 校验;失败直接模板降级,不猜测。
- 事务与副作用解耦:先 commit,再 outbox 回复。
- 每条请求全链路 trace:可追溯“模型选择 -> 操作执行 -> 回执结果”。
## 11. 落地步骤(按优先级)
1. 统一控制面:PMFlow 改为只调用 OpenClaw 网关。
2. 清理直连模型 key 的主路径,仅保留应急开关。
3. 完整补齐 function_name 路由矩阵(L/H/S)。
4. 启用低阶失败自动升级高阶(已具备,可保持开启)。
5. 扩展 Operation Catalog 覆盖全系统操作。
6. 回放测试扩展到“多操作写库场景”。
## 12. 验收标准
- 飞书与内置管家:同问题同输入,模型决策一致(允许渠道文案差异,不允许能力差异)。
- 执行态回复无“教程/curl”污染。
- 回放集通过率 100%,且 `DB + route_status + reply_text` 一致。
- 任一引擎故障时,系统可自动降级不中断主流程。