Skip to content

Chain vs Agent

先给结论

只要流程可以稳定写死,就先用 Chain
只有当系统必须根据上下文动态决定“下一步做什么”时,再上 Agent

这不是功能强弱对比,而是控制成本和不确定性的选择。

一句话区分

  • Chain 是你提前写好步骤,系统按顺序执行
  • Agent 是你给出目标和工具,系统自己决定调用路径

快速对比

维度ChainAgent
流程形状固定动态
可预测性较低
调试难度低到中中到高
适合任务摘要、分类、固定 RAG、结构化输出工具选择、路径不确定、多步决策
常见风险过早拆太复杂为简单任务引入不必要不稳定性

什么场景优先用 Chain

  • 输入到输出的步骤基本固定
  • 你已经知道需要哪些信息和处理顺序
  • 你更需要稳定性、速度和可调试性

比如这个仓库里的这些任务就更适合链:

  • 根据学习主题生成学习计划
  • 基于检索结果生成课程回答
  • 把模型输出整理成固定结构

这些任务的关键不是“临场决策”,而是把已有步骤稳定串起来。

什么场景才值得用 Agent

  • 你不知道用户问题会触发哪一种处理路径
  • 系统需要在多个 Tool 之间做动态选择
  • 一次工具调用后,还需要根据结果决定下一步

例如:

  • 用户问“我现在应该先学哪一章,并顺手给我两道练习题”
  • 系统可能要先查课程目录,再看章节摘要,再生成练习
  • 这时用固定链可以做,但会变得越来越硬编码

这就是 Agent 真正有价值的地方。

一个实用判断题

如果你已经能在白板上写出稳定流程:

输入 -> 检索 -> 生成 -> 返回

那通常先不要上 Agent。
如果你写到第二步就开始出现“看情况决定下一步”,Agent 才值得认真评估。

常见误判

误判 1:Agent 更智能,所以默认更好

不对。Agent 只是把决策权更多交给模型。
一旦任务本来就固定,这种额外自由只会增加不稳定性。

误判 2:有 Tool 就必须上 Agent

不对。Tool 完全可以被固定链直接调用。
真正决定是否需要 Agent 的,是“工具调用顺序是否必须动态决定”。

误判 3:Chain 不适合复杂任务

不对。很多复杂任务仍然可以拆成多个稳定链,再由更外层逻辑组织。
Agent 不是复杂度的唯一出口。

对当前课程的建议

  • 第 3 到 6 章,优先把链式思维练扎实
  • 第 7 章再引入 Agent,并且只在动态决策场景里用它
  • 如果你发现一个 Agent 经常只走固定两三步,通常说明它应该回退成链

对应回看章节