Skip to content

与成熟框架对比

选型时常见疑问:「已有 LangGraph / LangChain / Mastra,还要 Uni-Flow 吗?」本文用共性、差异、互补回答,并给出可操作的组合方式。

共性:都是「节点 + 边」

框架编排隐喻典型能力
LangGraph有向图上的节点与边状态图、条件边、子图、checkpoint
LangChainChain / Runnable 组合LCEL、工具绑定、检索链
MastraTS 应用内 Agent + Workflow.then / .branch / .parallel、Memory、Evals、Studio
手写 for 循环代码即调度器灵活,但语义不统一
Uni-FlowControlFlow + WorkflowUnitYAML 拓扑、七种流、统一 Layer4 管线、跨项目 Unit 契约

它们都在解决:多个步骤按某种顺序或条件执行,并在步骤之间传递状态。

差异:Uni-Flow 多出来的那一层

维度LangGraph / Mastra / 手写循环Uni-Flow
拓扑声明多在代码里构图Workflow YAML + JSON Schema 校验
宏观流类型自行建模或框架 DSLSequential / Parallel / Router / DAG / Loop / Delegation / Composite
运行时绑定通常与单语言应用一体Unit 通过 RuntimeAdapter 解耦;可 HTTP 远程
横切管线需自行拼装或框架内置产品化Policy / Security / Context / Checkpoint / Obs 内置顺序
跨项目复用同仓模块或自建服务协议Workflow-as-Unit:对内完整 workflow,对外标准 I/O
人与 AI 协作改代码为主改 YAML + uniflow validate 可机器校验

Uni-Flow 不是在模型调用、工具定义、向量检索上替代 LangChain/Mastra;也不是在图算法表达力上完全取代 LangGraph。

手写 for 循环:为什么不够

typescript
// 反模式:业务仓库里的第二套调度器
for (const agent of agents) {
  const out = await agent.run(state);
  if (out.route === 'specialist') { /* 手写分支 */ }
}

问题不在于 for 能不能跑,而在于:

  • 拓扑语义不可声明、不可校验,每个项目一套;
  • 预算、鉴权、checkpoint 容易复制粘贴进循环体;
  • 编码 Agent 无法稳定地「只改 YAML」而不碰调度代码。

Uni-Flow 把循环语义收进 ControlFlow 实现(如 LoopFlow),外层只认 next() / isComplete() 接口。

LangGraph:互补,而非替代

结论(请先读这句):Uni-Flow 不替换 LangGraph;LangGraph 可以作为单个 WorkflowUnit 的内部运行时。

场景建议
单语言、单图、团队已深度投入 LangGraph继续用 LangGraph;需要 YAML 契约与横切管线时再引入 Uni-Flow 包一层
多团队、跨项目、拓扑要进仓库可 diffUni-Flow YAML 为真源;LangGraph 跑在某一 Unit 里
只要链式 LLM 调用LangChain/LCEL 可能更轻;不必强行上 ControlFlow

Unit Wrapper 模式: 实现一个 RuntimeAdapter,在 execute() 内调用 LangGraph 的 invoke / stream,把 AgentInput 映射为图状态,把图输出映射为 AgentOutput。外层 Router、预算、HITL 仍由 Uni-Flow 引擎管线负责。

Mastra:应用内造 Agent vs 跨项目编排契约

Mastra 是面向 TypeScript 的一体式 AI 应用框架:Agent、Workflow、Memory、Observability、Studio、部署等,帮你在一个 TS 项目里把智能体应用做完。

维度MastraUni-Flow
主战场单语言(TS)应用内构建跨项目复用同一编排规范
编排形态代码优先的 Workflow APIYAML + ControlFlow + validate
运行时自带 Agent / 模型路由 / 工具Unit 边界;箱内可挂任意运行时
典型用法npm create mastra 起应用各项目 SDK + YAML;远程 Unit 组合

结论:Uni-Flow 不替代 Mastra。 Mastra Agent / Workflow 可以装进一个 Uni-Flow Unit;Uni-Flow 负责「客服项目如何把 RAG 项目当标准节点接入」这类编排与复用边界

场景建议
纯 TS 应用、要 Studio/Evals、快速造 AgentMastra(或同类)为主
多仓库、多语言团队、要同一份 YAML 拓扑Uni-Flow 为编排真源
已有 Mastra 服务,要被别的项目调用用 Workflow-as-Unit 暴露 /execute,父级 bindings 接入

LangChain:不同层次的问题

LangChain 擅长单次调用链(模型 + 工具 + 检索)。Uni-Flow 擅长多 Unit 宏观拓扑生产横切

合理分工:

  • LangChain 工具、Retriever、Prompt 模板 → 留在 Unit 内部;
  • 哪个 Unit 何时执行、并行还是路由 → Workflow YAML + ControlFlow。

选型速查

你的主要矛盾优先考虑
图编排、子图、条件边已在 LangGraph 里很成熟LangGraph 为主;Uni-Flow 作外层标准壳
TS 应用内 Agent + Workflow + StudioMastra;需要跨项目契约时再套 Uni-Flow
拓扑要给人和 AI 共用、要 validateUni-Flow YAML
只有 2~3 步固定顺序Sequential YAML 或简单 Chain 均可
跨项目 Unit、统一 HTTP 运维Uni-Flow Orchestrator + Workflow-as-Unit

若你只记住一件事

Uni-Flow 管宏观编排、统一管线与跨项目 Unit 契约;LangGraph / Mastra 等可以装进 Unit。 是套娃关系,不是零和替代。

MIT Licensed