第 4 章 · Agent:在反馈中推进任务的系统
不由聊天界面决定是不是 Agent
本教程讨论以大模型为核心的 Agent:系统根据目标与当前状态,让模型选择下一步,通过工具或其他行动获得反馈,继续执行、交付或请求帮助。
聊天界面也能承载 Agent;有工具的应用也不一定有开放的自主循环。“会聊天”和“会做事”不是互斥产品类别。Agent 的自主程度有高有低,也不要求多个智能体合作。
与固定工作流的区别
| 方式 | 谁主要决定执行顺序 | 例子 |
|---|---|---|
| 脚本/固定工作流 | 开发者预先写定分支与步骤 | 每天导出报表、按规则发给指定收件人 |
| Agent 循环 | 模型在允许范围内依据反馈选择后续步骤 | 文件种类不一,选择解析方法并处理缺失字段 |
| 混合系统 | 固定流程限定边界,部分环节交给模型 | 固定审批链中,用模型整理材料和提出问题 |
固定流程不是“低级 Agent”。任务规则稳定、可精确定义时,流程通常更容易测试和审计。开放任务才更可能需要模型做动态判断。
一次运行发生了什么
这是帮助理解的通用结构,不要求所有产品逐项照搬。ReAct 是把推理与行动交织起来的一种代表性方法,不是所有 Agent 循环的统称。ReAct 原始论文
发票台账示例:把失败也设计进去
设定目标为“将 input/ 中的练习发票整理到 output/台账.xlsx,不修改原件”:
- 列出输入,登记文件数量,标记重复件。
- 选择文本提取或 OCR;读取失败时记录文件名和原因。
- 提取日期、号码、含税金额等字段,保留页码与来源。
- 用程序核对格式、重复号码与金额合计,不靠语言模型心算。
- 实际写出表格并重新打开,核对成功条数和异常条数。
- 交付表格、异常清单和检查结果,不能把跳过的文件算作完成。
当工具超时,不能无条件重复提交付款、发送邮件或创建订单。应先检查是否已经成功;这涉及去重、幂等和外部状态核对。
MCP 和 Skill 都不是入场券
Agent 可以使用直接函数调用、HTTP API、命令行、浏览器或 MCP 工具。Skill 则是组织专业流程的一种方式。有没有 MCP 或 SKILL.md,不能单独判断是不是 Agent。
模型选择行动,Harness 执行和管理循环,业务系统落实权限和事务。具体分工也可能由应用代码强制指定,模型并不总是拥有工具选择权。
怎么判断一个 Agent 好不好
看任务完成率、误操作、事实依据、返工、成本和耗时,而不是看“思考了多少步”。给运行设置停止条件:达到验收、预算耗尽、重复失败或遇到必须人工处理的情况。
自测: 已读 10 份文件,2 份解析失败,能否说“全部整理完成”?应明确完成 8 份,并交付 2 份的异常记录。
依据与延伸:OpenAI Agent 系统概览、ReAct 论文。