🧑💻 面试官:Agent 和 Workflow 有什么区别?实际项目中你会怎么选?
🙋♂️ 我:Workflow 的流程是提前固定好的,Agent 的流程是不固定的。Agent 可以自己调用工具,所以遇到复杂任务时,使用 Agent 会更加灵活。
🧑💻 面试官:复杂任务就应该用 Agent?退款审批也很复杂,还涉及真实资金,你会让模型自己决定要不要退款吗?
🙋♂️ 我:这种高风险流程应该还是用 Workflow,不然模型的决定不够稳定。
🧑💻 面试官:那 Workflow 里用了大模型,还有条件分支和失败重试,它算不算 Agent?
🙋♂️ 我:应该不算。因为这些分支虽然多,但能走哪些路径,还是开发者提前写在代码里的。
🧑💻 面试官:再换一种情况。模型可以调用搜索工具,但代码已经规定它必须“先搜索、再总结”,这算 Agent 吗?
🙋♂️ 我:也不算。模型只是完成了其中两步,没有决定接下来做什么。
🧑💻 面试官:所以,会不会调用工具、任务复不复杂,都不是最关键的判断标准。那你重新说一下,两者真正的区别是什么?项目里又怎么证明自己选对了?
问题绕了一圈,面试官真正追的其实只有一个核心:「控制权」——谁决定下一步,以及把这部分决定权交给模型是否值得。
面试速答(60 秒版)
Agent 和 Workflow 的本质区别,是执行路径到底有谁来决定。
Workflow 的步骤处理主要是有代码预设决定好的。那么即使中间调用了大模型,但是它本质仍然可以是 Workflow 预定好的流程。这样做的优势是:稳定、容易测试、容易回滚。
Agent 则由大模型在目标和任务边界之内,根据当前任务的状态来 动态的 决定下一步怎么做和要使用什么工具。

因此,当我们在进行实际选型的时候,如果我们遇到:
- 规则明确,对操作步骤固定性要求比较高的任务时,优先选择
Workflow。例如::AI 演示文稿制作流程、订单退款审核流程。。。 - 规则不明确,操作步骤是根据实时交互来动态规划的任务时,优先选择
Agent。例如:智能客服、AI 编程助手、自动化运维助手。。。
同时我们也需要知道 Agent 和 Workflow 并非是必须二选一的。
而如果是一些更加复杂的项目,那么完全可以让 Workflow 管理权限、状态和关键动作,而对于局部的处理使用 Agent 做开放决策。
知识点详解:Agent 和 Workflow 的本质区别
“控制权”具体包含什么?
一个任务开始执行以后,系统接下来做什么、要不要调用工具,都会影响后面的结果。等工具返回结果以后,系统还要继续判断,这些信息够不够,要不要换个办法,以及任务什么时候可以结束。
这些决定加在一起,就是我们前面提到的 “控制权”。

这些事情主要由代码提前安排好,就是 Workflow。模型会根据当前的任务状态,动态地决定下一步怎么做,这样的系统更接近 Agent。
不同公司对 Agent 的叫法可能会有一些差别。有些公司会把“使用了大模型,并且能够调用工具”的应用都叫作 Agent。面试时遇到这种情况,不用纠结名字,把自己的判断标准讲清楚就行。我们这里使用的标准,就是 模型有没有参与决定任务接下来怎么执行。
Workflow 会提前限定系统可以怎么走
Workflow 的处理步骤,主要是由开发者提前写在代码里的。
例如,我们要做一个企业信息调研功能。开发者可以提前设计好下面这套流程。

在这套流程里面,“生成搜索关键词”和“生成内容摘要”都可以交给大模型处理。但是大模型完成当前任务以后,接下来要执行哪个步骤,仍然由代码决定。
那么,如果这个流程里面加入了条件分支、失败重试,是不是就变成 Agent 了?

也不算。
Workflow 同样可以包含很多分支。例如搜索失败以后重试两次,网页内容太长就分段处理,没有搜索到结果就换一个提前准备好的关键词。这些分支只要是开发者提前写在代码里的,它们就仍然属于预设流程。
所以,这里所说的“流程固定”,指的是系统可以走哪些路径,已经由开发者提前限定好了。每次任务可以走不同的分支,也可以循环和重试,系统仍然在这些写好的路径里面运行。
Agent 会在运行过程中决定下一步
Agent 的执行方式会更加开放一些。开发者会先给它一个任务目标,再提供可以使用的工具,同时限制好任务边界。任务开始以后,模型会读取当前的任务状态,然后决定下一步做什么。
这个过程大概是这样的。

这里提到的任务状态,包括用户最开始提出的要求、已经完成了哪些步骤、工具返回了什么结果,以及当前还剩多少执行次数和 Token 预算。
模型每完成一步,都会拿到一个新的结果。然后它会根据这个结果,重新判断接下来是继续调用工具、换一种处理方式,还是直接结束任务。
不过,Agent 的自主性也需要有明确的限制。它可以使用哪些工具、最多执行多少步、一次任务可以使用多少 Token,这些仍然需要由代码控制。
当模型决定调用某个工具时,后端还要检查它传入的参数和当前用户的权限。如果涉及删除数据、执行退款这类高风险操作,那么还需要增加人工确认,不能让模型直接执行。
这类系统测试起来也会更麻烦一些。因为我们很难提前列出 Agent 每一次会走的路径,所以除了检查最终结果,还要把它调用过哪些工具、执行了多少步、花了多少 Token 都记录下来。这样出现问题以后,我们才能知道它是在哪一步做错了决定。
把同一个任务分别交给 Workflow 和 Agent
我们还是以前面的企业信息调研为例。
假设用户希望系统调研某家公司最近一年的主要产品变化。
如果使用 Workflow,那么开发者可以提前规定,先搜索公司官网,再搜索最近一年的新闻,接着抓取固定数量的网页,最后让大模型按照规定好的字段生成报告。
如果使用 Agent,那么模型可以先从公司官网开始搜索。发现官网上的资料不够,它可以继续搜索新闻。如果不同来源里面的说法对不上,它还可以查找公司公告。等到资料足够以后,再由模型决定结束搜索并生成报告。

区别就在这里。Workflow 要搜索哪些来源、抓取多少网页,在任务开始之前就已经写好了。Agent 会看完当前拿到的资料,再决定后面还需要查什么。
同时我们也需要知道,一个真实的项目完全可以同时使用 Workflow 和 Agent。
例如,可以先由 Workflow 创建调研任务、检查用户权限和设置最大执行时间,再让 Agent 负责搜集和整理资料。等 Agent 完成任务以后,再交回 Workflow 保存结果并进入人工审核。
这种组合放在复杂项目里会更实用。Workflow 把权限、任务状态和最终审核管住,Agent 只负责中间那段开放的调研工作。即使 Agent 某一步判断错了,它也不能绕过审核,直接把结果发布出去。
面试官继续追问
Workflow 里使用了大模型,还算 Workflow 吗?
算。
大模型可以只是 Workflow 中的一个处理节点,例如做文本分类、信息抽取或者内容生成。只要步骤顺序、分支条件和失败处理主要由代码控制,整个系统依然是 Workflow。
区分它们时不要问“有没有大模型”,而要问“大模型有没有控制流程”。
只要能自主调用工具,就算 Agent 吗?
不一定。
如果代码已经规定下一步必须调用哪个工具,模型只负责生成参数,那仍然更接近 Workflow。Agent 不只是能够调用工具,还要能够根据目标和当前结果,在允许的范围内决定是否调用、调用哪个,以及调用之后怎么继续。
当然,这个自主性也不是无限的。工具权限、调用次数、超时、费用上限和高风险操作的人工审批,仍然应该由系统控制。
怎么判断应该把哪一步交给 Agent?
我会先看这一环节能不能写成稳定规则。
如果输入结构明确、判断标准稳定、错误代价又很高,就继续使用 Workflow。比如权限校验、金额计算、状态更新和支付执行,都不应该交给模型自由发挥。
如果某一步需要理解大量非结构化信息,可能路径很多,而且规则已经复杂到难以维护,就可以考虑引入 Agent。例如阅读多份材料后决定还缺什么信息,或者根据搜索结果动态调整下一步调研方向。
但引入之前要先留下基线,再用同一批真实任务比较成功率、延迟、成本和人工接管率。如果 Agent 只是让架构看起来更高级,却没有带来可以验证的收益,那就没有必要使用。
面试速记卡
- Workflow:人提前规定主要路径,系统按照路径执行。
- Agent:人给目标和边界,模型结合状态决定下一步。
- 判断标准:不看有没有大模型和工具,要看谁控制执行路径。
- 选型原则:确定性留给 Workflow,不确定性再交给 Agent。
- 常见架构:外层 Workflow 保证稳定,局部 Agent 提供灵活性。
