Agent AtlasAI Agent 知识库
01.02入门 · Foundations

Agent、工作流与聊天机器人

三者不是替代关系。用确定性、成本、可观测性三个维度,判断什么时候该用 Agent,什么时候坚决不用。

选型的第一个问题不是「用哪个框架」,而是「这件事到底需不需要模型来决定下一步」。

三种形态

聊天机器人:输出是文本

用户问,模型答。没有外部行动,没有状态推进。适合知识问答、写作、翻译、头脑风暴。

它的工程重点在提示与知识:回答是否准确、语气是否合适、是否引用来源。

工作流:控制流由代码决定

开发者把步骤写死:先查订单,再判断状态,然后调用退款接口,最后发邮件。模型可能出现在其中某些节点(例如分类、抽取、生成文案),但下一步做什么由代码决定。

工作流的优势是显然的:

  • 每一步都可测试、可断言;
  • 失败可以精确重试,不会「即兴发挥」;
  • 延迟和成本可预测;
  • 审计日志天然清晰。

Agent:控制流由模型决定

模型看到当前状态,自己决定调用哪个工具、传什么参数、是否需要继续。代码提供工具、约束和循环,但不规定路径。

这带来了处理开放问题的能力,也带来了三个新问题:不可预测、成本随步数增长、错误会累积。

图 1 · 控制权在谁手里
Chatbot人决定每一步
模型只生成内容
→
Workflow代码决定每一步
模型填充节点
→
Agent模型决定下一步
代码提供边界
从右到左,自主性下降,可预测性上升。多数生产系统在中间。

一张选型表

判断维度倾向工作流倾向 Agent
步骤是否可枚举可以,且稳定不能,依赖中间结果
输入形态结构化、字段固定网页、文档、自然语言
成功标准可写成断言需要判断与综合
错误代价高、不可逆可检测、可回滚
调用量很大,成本敏感中等,价值密度高
延迟要求严格可接受数十秒
维护者业务/后端团队有 AI 工程能力

一个常被忽略的事实:工作流也可以很智能。在固定骨架里放一个会判断的节点,往往比让模型从零规划整条链路更稳。例如:

text
接收工单
  → 规则过滤(垃圾邮件、空内容)
  → 模型分类(账单 / 技术 / 退款 / 其他)   ← 不确定节点
  → 按类别走不同子流程                      ← 确定性
  → 模型草拟回复                            ← 不确定节点
  → 金额 > 500 元转人工                     ← 确定性
  → 发送并记录

这条链路只有两个节点需要模型判断,其余都可测试、可审计。它比「给 Agent 十个工具让它自己看着办」更容易上线。

工作流的四种基本模式

  1. 串行链(Chain):A → B → C。适合步骤固定、前后依赖的任务。
  2. 路由(Routing):先分类,再走不同分支。分类器可以是模型,也可以是规则。
  3. 并行(Parallel):多个独立子任务同时执行,再汇总。适合多源检索、批量生成。
  4. 编排者—工人(Orchestrator-Workers):一个节点负责拆分与汇总,多个节点执行。它已经接近多智能体,但控制流仍由代码约束。

把这四种模式组合起来,绝大多数「Agent 需求」都能被更稳地表达。

Agent 的三档自主度

自主性不是一个布尔值,而是一个旋钮:

档位行为例子风险
建议只给建议,人执行代码补全、回复草稿低
审批后执行准备动作,人确认退款、发邮件、改配置中
受限自主在权限与预算内自动执行只读检索、沙箱内跑测试中
完全自主无人工介入长期运行的监控 Agent高

产品设计时,应该按动作风险分档,而不是整个系统统一一个档位。读取公开网页可以自主,发送对外邮件需要审批,删除数据禁止自动执行。

一个实用原则

读操作放宽,写操作收紧。 检索、查询、读文件可以大胆放开;创建、修改、删除、支付必须有幂等、限额或人工确认。

成本差异有多大

假设一个任务需要 5 次模型调用:

  • 工作流:4 次小模型分类/抽取 + 1 次大模型生成,输入稳定、可缓存,单次约 0.01–0.05 元;
  • Agent:每步都带完整历史和工具定义,5 次调用、每次输入 8k token,单次约 0.1–0.5 元。

差距可能是 10 倍。如果每天 10 万次调用,这就是每月数十万元的差别。更麻烦的是,Agent 的步数分布有长尾:P95 可能是 15 步,成本按平均值估算会严重偏低。

混合架构:把不确定性关进笼子

生产系统最常见的样子是:

图 2 · 工作流骨架 + Agent 节点
入口校验鉴权、限流、脱敏
→
Agent 节点拆解、检索、工具调用
→
确定性校验Schema、规则、权限
→
执行 / 审批幂等写入、人工确认
Agent 负责「想」,工作流负责「怎么安全地做」。

具体做法:

  • 用状态机管理流程,Agent 只能在某个状态内活动;
  • 给 Agent 设定最大步数、token 预算和超时;
  • 工具层做参数校验与权限检查,不信任模型输出;
  • 高风险动作走审批队列,而不是同步执行;
  • 全链路 trace,出问题能回放到具体一步。

四个反模式

反模式一:为了「看起来智能」而上 Agent

用户并不关心背后是不是自主规划。他们关心的是快、准、便宜。一个稳定的表单流程胜过一段炫技的自主循环。

反模式二:把 Agent 当成万能胶

「模型可以调用任何工具」意味着「模型可以犯任何错」。工具越多,选择空间越大,误用概率越高。只暴露完成任务必需的工具。

反模式三:没有评估就迭代

工作流改坏了,测试会挂;Agent 改坏了,可能只是「感觉不太对」。没有黄金集和轨迹评估,你无法判断一次提示词修改是进步还是退步。

反模式四:忽略长尾

平均值 3 步,不代表用户不会遇到 30 步。预算、超时和降级必须按 P95/P99 设计,而不是按平均值。

一个可执行的选型流程

  1. 写下任务的步骤。如果能在 15 分钟内画出一条完整流程图,先做工作流。
  2. 标出不确定节点。哪些地方必须「看情况」?只在这些节点引入模型判断。
  3. 评估错误代价。错了能不能发现?能不能撤销?不能,就加人工或只读限制。
  4. 算一笔账。按 P95 步数估算 token 成本,和人力成本对比。
  5. 做一个小实验。用 30 条真实样本对比「工作流 + 模型节点」与「自主 Agent」的成功率、延迟、成本。

如果实验结果显示 Agent 只多解决了 5% 的案例,却贵了 8 倍,那答案很清楚。

小结

  • 聊天机器人输出文本,工作流输出确定的流程,Agent 输出由模型决定路径的行动。
  • 大多数业务问题应该先尝试工作流,只在无法枚举的节点引入 Agent。
  • 自主性应分档授予:读放宽、写收紧、不可逆动作必须审批。
  • 混合架构不是妥协,而是工程上的正确答案。

下一篇补齐底座:Agent 开发者真正需要理解的 LLM 机制。

读完了?进度会保存在本地浏览器。
内容会持续修订。发现错误或想补充,欢迎反馈。 遇到问题?查排查手册 →