01. Agent 和普通 Workflow 有什么区别?
整理 Agent 与 Workflow 的核心区别、适用边界与工程取舍。
简单回答
Workflow 是预定义好的固定流程,每一步做什么、下一步去哪都是开发者写死的;Agent 是由 LLM 驱动的自主决策系统,能根据当前状态动态选择下一步行动。核心区别在于"谁在做决策"——Workflow 中是代码逻辑在决策,Agent 中是 LLM 在决策。Agent 更灵活但也更不可控,Workflow 更可靠但不够灵活。
详细解释
从控制流的角度理解
这个区别用"控制流由谁决定"来理解最清晰。
Workflow(工作流)本质上是一段编排好的程序逻辑。开发者在代码里定义了"先做 A,如果 A 的结果满足条件 X 就做 B,否则做 C"。每一步调用什么工具、传什么参数、下一步去哪里,全部是确定性的。LLM 在 Workflow 中可能扮演某个节点的角色(比如"总结这段文本"、"提取关键信息"),但 LLM 不决定流程走向——流程走向由 if-else、switch-case 这类代码逻辑决定。
Agent 的控制流由 LLM 自主决定。LLM 看到当前状态(用户的问题、已有的信息、可用的工具),自己判断下一步应该做什么——是调用搜索工具、还是查数据库、还是直接回答用户。做完一步之后,LLM 再看结果,再决定下一步。这个*"观察→思考→行动"*的循环是 Agent 的核心特征。
打个比方:Workflow 像一条铁轨上的火车,路线是固定的,到了岔路口由信号灯(代码逻辑)决定方向。Agent 像一个开着车的司机,他有地图、有导航、有方向盘,每个路口他自己决定转不转弯。
什么时候用 Workflow,什么时候用 Agent
这个选择不是越高级越好,而是看场景的确定性程度。
如果任务的步骤是明确的、可枚举的、不需要根据中间结果做复杂判断的——用 Workflow。比如"用户上传简历 → OCR 提取文字 → 结构化解析 → 存入数据库",这个流程几乎不需要 LLM 做决策,用 Workflow 更可靠、更快、更省钱。
如果任务的步骤不确定、需要根据中间结果做灵活调整、或者工具组合方式多样——考虑 Agent。比如"帮我调研一下某个技术方向的最新进展,整理出一份报告",这个任务需要搜索、阅读、筛选、追查引用、对比分析,每一步做什么取决于前一步发现了什么,很难用固定流程覆盖所有情况。
实际项目中很多系统是混合的——主体流程用 Workflow 保证可靠性,某些需要灵活判断的节点嵌入 Agent 能力。比如一个客服系统的主流程是 Workflow(意图识别 → 查知识库 → 生成回复),但在"知识库没有匹配到结果"的分支里引入 Agent,让它自主决定是搜外部知识库、还是转人工、还是换个角度检索。
可控性和可靠性的权衡
Agent 的最大问题是不可控。LLM 的决策是概率性的,同一个问题两次可能走不同路径。这在生产环境中意味着延迟不可预测、结果不可复现、错误难以定位。Workflow 则完全确定——给定同样的输入,永远走同样的路径,出了问题可以精确定位到哪个节点。
所以在大多数生产系统中,Workflow 的使用频率远高于纯 Agent 架构。很多时候开发者一开始想做 Agent,最后发现业务场景可以被几条 Workflow 规则覆盖,反而更稳定。Anthropic 自己的建议也是"从 Prompt 开始,不够再加 Workflow,最后才考虑 Agent"。
和 Agentic Workflow 的关系
近年来有一个中间地带的概念叫 Agentic Workflow——在 Workflow 框架内引入 Agent 式的决策能力。比如 LangGraph 允许你定义状态图(Graph),其中某些边的转移由 LLM 决定。这样既有 Workflow 的结构化和可控性,又有一定的动态决策能力。可以理解为"有导轨的 Agent"——Agent 可以做选择,但选择范围被 Graph 的结构限定了。
面试时可以这样答
核心区别在于控制流由谁决定。Workflow 是开发者预定义的固定流程,每一步做什么、下一步去哪都是代码逻辑决定的。Agent 是 LLM 自主决策,根据当前状态动态选择下一步行动。
选择标准看场景的确定性。如果任务步骤明确、可枚举,用 Workflow 更可靠更快。如果任务需要根据中间结果灵活调整,Agent 更合适。实际项目中很多系统是混合的——主流程用 Workflow 保证稳定性,某些需要灵活判断的节点嵌入 Agent 能力。
Agent 最大的问题是不可控——LLM 的决策是概率性的,延迟和结果都不可预测。所以生产环境中 Workflow 用得远比纯 Agent 多。LangGraph 这类框架走的是 Agentic Workflow 的路线,在 Workflow 结构内引入有限的 Agent 决策能力,算是一种折中。
常见追问
- 你实际项目中用的是 Agent 还是 Workflow?为什么这样选?
- Agentic Workflow 和纯 Agent 在工程实现上有什么区别?
- 如果 Agent 做了错误决策导致结果不对,怎么排查和修复?