文章 / 多 Agent 技术栈地图——你的体系 vs LangGraph vs Dify
架构设计 多 Agent 技术栈地图——你的体系 vs LangGraph vs Dify
2026.07.08 · 约 2800 字
当你要搭一个多 Agent 系统,市面上有三个选择:
- 你自己的体系(Hermes + Harness + 记忆系统)
- LangGraph — LangChain 出的图编排库
- Dify — 开源 AI 应用平台(14 万 star)
但它们不是一个层面的东西。这篇帮你把技术栈地图画清楚,然后你自然知道什么时候该用哪个。
一、一张图看清三个角色的位置
┌─────────────────────────────────────────────────────┐
│ │
│ 用户界面层(微信/网页/API) │
│ │
├─────────────────────────────────────────────────────┤
│ │
│ 🔵 控制层(你的独有资产) │
│ │
│ Harness 方法论 │
│ ├── 上下文管理 │
│ ├── 输出约束 │
│ ├── 验证闭环 ← 这是你的护城河 │
│ └── 知识沉淀 │
│ │
│ 记忆系统 │
│ ├── 工作记忆 │
│ ├── 情景记忆 │
│ └── 语义知识 │
│ │
├─────────────────────────────────────────────────────┤
│ │
│ 🟢 编排层(选工具的地方) │
│ │
│ ┌─────────────────┐ ┌───────────────────┐ │
│ │ delegate_task │ │ LangGraph │ │
│ │ (Hermes原生) │ │ (代码级图编排) │ │
│ │ 手动调度 │ │ 状态图引擎 │ │
│ │ 适合动态决策 │ │ 适合预先画好的图 │ │
│ └─────────────────┘ └───────────────────┘ │
│ │
│ 二者可以共存:先路由,再进图 │
│ │
├─────────────────────────────────────────────────────┤
│ │
│ 🟡 能力层(Agent 实际干活的地方) │
│ │
│ Tool Use / MCP / RAG / 记忆检索 │
│ API 调用 / 代码执行 / 浏览器操作 │
│ │
│ ┌─────────────────────────────────────┐ │
│ │ Dify 的位置 │ │
│ │ 它把编排+能力+部署打包成一个产品 │ │
│ │ 你配置流程,不用写代码 │ │
│ │ 但业务逻辑跑在 Dify 的框架里 │ │
│ └─────────────────────────────────────┘ │
│ │
├─────────────────────────────────────────────────────┤
│ │
│ 基础设施层(服务器/模型/向量库/数据库) │
│ │
└─────────────────────────────────────────────────────┘
二、三个选项的本质对比
| 维度 | 你的体系 (Hermes+Harness) | LangGraph | Dify |
| 定位 | 方法论+运行时 | 编排库 | AI 应用平台 |
| 控制粒度 | 对话级(prompt + 工具调遣) | 节点级(状态图边 + 条件) | 流程级(拖拽配置) |
| 多Agent | delegate_task 派工 | StateGraph 原生 | 可视化编排 |
| 状态管理 | 记忆系统(三层,自己管理) | State 对象(图遍历持状态) | 平台内置(不透明) |
| 验证闭环 | Harness 核心部分 ✅ | 你自己写条件边 | 平台级(有限) |
| 可观测性 | 手工日志 + Memory Bank | LangSmith 集成 | 平台日志 |
| 谁的系统 | 你的 | 你的 | Dify 的 |
| 学习曲线 | 你已经全掌握了 | 2-3 天 | 半天上手 |
| 改造成本 | 已有,直接可用 | pip install 就能用 | 替换整个体系 |
三、关键判断
LangGraph 不是替代 Hermes,是补充 Hermes
Hermes 的 delegate_task 处理"动态决策"——你不知道下一步该哪个 Agent,需要当前 Agent 自己判断。
LangGraph 处理"预先画好的流程图"——你知道流程是 A→条件→B→C,用 StateGraph 让执行严格按图走。
它们可以共存:
# 当前 Hermes 的做法
你(Supervisor)
├── delegate_task("研究 LangGraph") # 动态:研究完才知道怎么走
├── delegate_task("写初稿")
└── delegate_task("发布")
# 加了 LangGraph 后的做法
你(Supervisor)
├── 判断:这个任务适合手调还是画图?
│ ├── 动态 → delegate_task(Hermes 原生)
│ └── 固定流程 → 走 LangGraph StateGraph
└── LangGraph 执行:节点A→条件→节点B→节点C
Dify 是一条不同的路
Dify 是"产品",不是"库"。你要把业务逻辑放进它的框架里跑。好处是快,坏处是:
- 你的验证闭环怎么做?Dify 没有 Harness 级别的控制
- 你的记忆系统怎么接入?Dify 有自己的记忆,不是你设计的三层模型
- 哪天要加 Dify 没有的功能?只能等它发版,或者 fork 改源码
Dify 适合的场景:快速搭一个给客户看的 AI 应用,不需要深度集成你的方法论。
不适合的场景:作为你帝国的地基。
四、你现在最该做的事
你的体系(Hermes + Harness + 记忆系统)已经是控制层的完整方案。LangGraph 作为一个编排引擎,是你可以按需引入的组件。
现在最值钱的一步:
把 LangGraph 拉到你的体系里跑一个完整案例,不是为了学 LangGraph,而是为了获得一个真实的对比素材。
对比完成后,你能产出一篇有份量的判断:
"LangGraph 和图编排 vs 手工 delegate_task——同一个多 Agent 工作流,两种实现方式,什么场景该用哪个。"
这不是教程。这是你基于实际动手经验下的判断。这种内容,才是"专家"该写的东西。
五、三句话总结
- 你的 Harness + 记忆系统 — 控制层和方法论,是不动的地基
- LangGraph — 编排层的一个组件,可以按需插进你的体系
- Dify — 别人的产品,不是你的帝国
一句话决策:先不碰 Dify。LangGraph 作为一个编排组件,花两天跑一个案例,然后出一篇你自己的判断。不是为了学它,是为了拿到对比素材,输出你的观点。
💬 评论