让 AI 写一份旅行计划,与让一个系统查天气、比较开放时间、调整路线,再把结果交给你,是不同层次的能力。理解 Agent 时,最重要的是分清:谁负责生成内容,谁负责安排步骤,谁实际执行动作。

模型负责计算,系统负责执行

语言模型可以根据输入生成回答、计划或工具调用参数,但“输出一段查询指令”不表示外部查询已经发生。运行环境需要识别请求、校验权限、执行工具,再把结果传回后续步骤。

同样,能写出一段代码,不等于代码已经保存、运行并通过测试。模型输出、工具执行成功和业务目标完成,是三个不同状态。产品把这些环节组织在一起,才形成我们实际使用的助手。

固定工作流与 Agent 的区别在控制权

固定工作流先规定步骤和分支,Agent 则可以让模型根据中间观察决定下一步。在工程上二者经常组合,而不是互相排斥。Anthropic 对两者的区分

方式适合的需求示例主要关注点
规则或脚本定时汇总、字段校验、按明确条件分发输入规则与异常处理
含模型调用的工作流邮件分类后生成回复初稿每一步的契约与输出检查
有自主决策环节的 Agent检索线索不断变化的资料调研工具选择、状态、预算与停止条件

固定流程也可以调用模型处理自然语言。反过来,Agent 内部也可以用确定性的计算和严格的校验。因此,不能仅按“是不是文字输入”或“任务看起来复杂不复杂”分类。

用旅行规划看一次动作循环

假设目标是“准备一个三天行程,考虑天气和预算”。一个有搜索工具的系统可以按下面的方式工作:

  1. 明确日期、出发地、人数和预算口径;缺少关键信息时先询问。
  2. 查询对应日期和地点的天气、景点开放安排。
  3. 根据返回信息提出路线,计算已知费用。
  4. 发现时间冲突或预算不足时,再查询替代选项。
  5. 汇总方案,标明来源日期、未确定费用和需要用户决定的事项。

这是流程示意,不代表任何一个产品都默认具备这些工具。提供行程建议也不等于获得订酒店或买票的授权;有支付、取消费用或个人资料提交的步骤应单独确认。

调研和写代码也是同样的道理

资料调研可以拆成提出问题、搜索、读来源、对照事实、整理结论。Agent 的灵活性在于根据已找到的线索决定再查什么,但它也可能反复搜索却没有新证据,需要有明确的终止条件。

编码任务则包括理解需求、修改文件、运行检查和解释结果。生成代码只是其中一步;工具报错时,系统应看实际错误再决定下一步,不能因为模型说“已经修好”就认定测试通过。

ReAct 论文研究了推理与动作交错的方式:动作带回外部观察,帮助后续决策。它解释了一种工作模式,不是对所有任务可靠完成的保证。

什么时候用简单流程更好

如果步骤和判断标准很明确,例如每天汇总一张表,再按模板发给固定人员,脚本或工作流往往更容易测试和排查。引入自主决策不一定带来价值,反而可能增加延迟、成本和不可预测性。

邮件助手可以混合实现:固定规则筛除无关内容,模型判断主题并生成初稿,确定性程序检查字段,最后由人确认发送。每个部分都做自己擅长的工作,不必把整套系统都交给模型决定。

让系统能停下,比“直到成功”更重要

Agent 可能规划错误、重复调用工具、遇到权限不足,或者把工具的失败响应当作成功。运行时应限制调用次数、耗时和费用,说明哪些失败可以重试、哪些应立即交回人工。

权限同样属于运行环境,不是写在提示词里就足够。只读任务不授予写入能力;需要发邮件、修改单据时,工具层仍应检查用户、范围和确认状态。

从小任务开始的具体配置与验证方式,见 Agent 小规模试点。