AI Agent 和工作流的边界:我是在两次自动化项目里把这个问题看清的
这半年里我连续碰到过两个 AI 自动化项目,表面上看都很适合做 Agent,最后做出来的路子却完全不同。也是在这两个项目里,我才真正把“Agent 和工作流的边界”想明白。
第一个项目是内部知识处理流程。输入是文档,输出是摘要、标签、结构化字段,再把结果入库。第二个项目是一个运维助手,目标是接收自然语言指令后去查资料、调用工具、生成处理建议。
最开始团队对这两个项目的直觉差不多:都上 Agent 吧,毕竟多步骤、会调用工具、看起来很智能。
后来回头看,第一个项目如果真按 Agent 做,八成会越做越乱;第二个项目如果只做死工作流,又会显得特别笨。这就是我现在越来越在意的判断点:不是任务里有没有模型,而是路径到底稳不稳。
第一个项目教会我的,是“很多流程根本不需要自主规划”
文档处理那个项目刚开始时,也有人提议让模型自动决定每一步怎么做。听上去很先进:先读文档,再判断要不要抽摘要、要不要分类、要不要纠错、最后决定怎么入库。
但我们真正把流程梳理完之后发现,这件事根本没那么开放。
它的真实链路其实很固定:
- 读文档
- 提取正文
- 做字段清洗
- 生成摘要和标签
- 输出固定结构
- 入库
这里面真正需要模型判断的,其实只有个别节点,比如分类和摘要;主流程完全是确定的。
我们后来没有做 Agent,而是把主干写成工作流,再在少数节点上接大模型。结果非常稳。日志清楚,失败能重跑,出了问题也知道卡在哪一步。
这次经历让我第一次明确地感觉到:多步骤不等于 Agent。一个任务就算有六七步,只要路径稳定,它本质上还是流程编排问题。
第二个项目让我看到,工作流也会有明显上限
运维助手那次就不一样了。
用户会问:
- “帮我看看这个服务为什么最近报警变多了”
- “对比一下昨天和今天的错误日志趋势”
- “如果我要排查支付回调失败,应该先看哪几个系统”
这种任务的特点是目标清楚,但路径不固定。不同问题,第一步就可能完全不同:
- 有的要先搜知识库
- 有的要先查监控
- 有的要先拉日志
- 有的还得根据前一步结果再决定下一步
我们最早也尝试过工作流化,结果非常别扭。因为你很难提前把所有路径都列出来。流程一旦写死,助手就会表现得像一个菜单系统:能做的事都在预设分支里,一旦用户问法稍微拐一点,就开始答非所问。
这时候 Agent 的价值才真正出来。不是因为它“更高级”,而是它确实更适合这种需要边走边判断的任务。
我现在判断 Agent 和工作流,基本看三件事
第一,看路径是不是稳定。
如果一个任务 80% 情况都走同样的步骤,那优先工作流。别为了“智能感”把稳定流程交给模型自由发挥。
第二,看失败成本高不高。
如果一步错了会影响订单、权限、资金、客户数据,那主干流程必须尽量写死。模型可以辅助判断,但不该掌握整个执行权。
第三,看任务是否要求探索未知信息。
如果模型需要先去搜、再比对、再决定下一步,甚至中途可能修正原计划,那才更像 Agent。
这三个问题我现在几乎每次都会问一遍,因为它们能很快帮我把“看起来都像 AI 自动化”的需求拆开。
很多团队会误把“多步工具调用”当成 Agent
这是我最近最常看到的一个偏差。
有些系统本质上只是:
- 读输入
- 调一个接口
- 调另一个接口
- 按模板输出结果
这当然是多步,但不等于 Agent。它没有动态规划,也没有真正的路径选择,只是流程比单步长了一点。
如果把这类流程也包装成 Agent,短期可能显得很先进,长期问题很多。因为一旦让模型自由控制原本可以确定的步骤,你就会开始面对一连串新问题:
- 工具参数为什么变了
- 为啥这次少走了一步
- 为什么昨天成功今天失败
- 失败后该从哪儿恢复
这些问题本来可以靠流程约束直接规避。
Agent 真正难的地方,从来都不是“会不会想”,而是“出了事怎么兜”
这个认知也是我做第二个项目时被逼出来的。
在 Demo 环境里,Agent 往往看起来很聪明。它会拆任务,会总结,还会自己决定先调哪个工具。可一旦进入真实系统,你马上会碰到完全不同的问题:
- 工具返回半结构化垃圾怎么办
- 上一步失败后,状态存在谁那里
- 一个任务执行到一半中断,能不能恢复
- 模型选错工具时,系统能不能兜底
这些问题不是“提示词再写好一点”就能解决的,它们属于工程治理问题。
所以我现在看一个 Agent 系统,会特别关注这些东西:
- 工具是不是封得干净
- 每一步是否可观测
- 中间状态有没有地方落
- 失败后是否能人工接管
这些事情如果没做好,Agent 再能说,也只是一个容易失控的黑盒。
后来我越来越接受一种更务实的做法
很多项目其实不需要在“纯工作流”和“全自主 Agent”之间二选一。
更实用的方式通常是:
- 主干流程写死
- 把模型放在少数确实需要语义判断的位置
- 在开放型环节里再放开自主规划
比如文档项目就是工作流主导,分类和抽取节点交给模型。运维助手则是 Agent 主导,但工具权限、执行范围、输出格式仍然受系统约束。
这种做法没有那么“酷”,但很符合真实交付环境。它既不把模型压成死模板,也不把可控性一把丢掉。
写在最后
我现在对 Agent 和工作流的看法已经很简单了:稳定路径别装成智能,自由探索也别硬写成流程。
很多项目不是做不出 AI,而是选错了自动化层级。主干应该被写死的地方,就老老实实写死;真正需要模型判断和规划的地方,再给它空间。边界一旦分清,系统会比“全都交给模型”稳得多,也比“什么都手搓流程”灵活得多。