PMFlow/docs/PMFLOW_THREE_ENGINE_UNIFIED...

5.6 KiB
Raw Permalink Blame History

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:minimax/MiniMax-M2.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)

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:minimax/MiniMax-M2.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 一致。
  • 任一引擎故障时,系统可自动降级不中断主流程。