Skip to content

AI Workflow 平台怎样划分控制面、执行面和模型适配层?

题型:深入 · 讲清依赖方向、事实来源和一致性边界。

建议回答

我会把平台拆成四个清晰边界。控制面保存 Workflow 定义与版本,解析 DAG 依赖,决定节点何时就绪,并负责暂停、取消、重跑和状态迁移;执行面领取节点实例,执行模型或代码任务,维护租约、心跳、超时和尝试次数;模型适配层统一请求、流式响应、错误分类、限流和能力描述,但不承诺不同模型语义完全一致;状态与产物层分别保存运行事实和大体积中间产物,通过稳定 ID、版本与内容摘要关联。

FastAPI 更适合承载任务命令、查询和 SSE 接口,Next.js 负责工作流配置、状态展示和人工操作,但 Web 请求生命周期不能充当长任务调度器。队列投递和 Worker 执行通常只能做到至少一次,因此控制面要依靠幂等键、条件状态迁移和产物提交协议消除重复副作用,不能把消息“消费成功”表述成 Exactly-once。

状态库应是任务结果的事实来源,队列只负责传递执行意图。节点只有在输出通过校验且产物引用成功提交后才能标记完成;模型已经返回但提交结果未知时,要进入可对账的未知状态,而不是直接重试生成。

关键权衡

  • 控制面集中决策便于审计,但要避免成为吞吐瓶颈和单点。
  • 统一模型接口降低接入成本,但能力差异仍需通过 capability 和节点策略显式暴露。
  • 大产物与状态分离可控制数据库体积,但必须处理跨存储提交与孤儿产物清理。

易错点

  • 不要把 FastAPI 的异步语法等同于可靠的分布式任务调度。
  • 不要声称队列、数据库和对象存储天然存在跨系统事务。

知识关系

从当前问题继续深入,或者回到提出这个问题的知识入口。