Agent
1. 什么是 Agent
Agent 不是“会聊天的模型”,而是一个能够围绕目标持续执行、多步决策、调用工具并根据结果调整行为的系统。
简单说:
- 普通 LLM 应用:你问一句,它答一句。
- Agent:你给一个目标,它自己拆解步骤、执行、观察结果、继续推进。
2. Agent 的典型组成
2.1 模型
负责:
- 理解任务
- 做局部推理
- 决定下一步动作
- 生成最终输出
2.2 工具
负责把“语言能力”扩展为“行动能力”。
常见工具包括:
- 搜索
- 数据库查询
- 代码执行
- 文件读写
- API 调用
- 浏览器操作
2.3 记忆
通常分为两类:
- 短期记忆:当前会话中的上下文、状态、计划、已完成步骤
- 长期记忆:用户偏好、历史任务、可复用知识
2.4 控制循环
典型循环:
- 感知当前状态
- 决定下一步动作
- 调用工具或生成结果
- 读取反馈
- 判断是否继续
3. Agent 与 Workflow 的区别
两者容易混淆。
Workflow
- 路径基本预先定义
- 每一步做什么比较固定
- 更容易预测、调试和评测
Agent
- 路径由模型动态决定
- 更灵活,但不稳定性更高
- 更依赖工具质量、上下文质量和终止条件设计
经验上:
- 稳定业务优先用 workflow。
- 任务开放度高、路径不固定时再引入 agent。
4. Agent 的常见工作模式
ReAct
交替进行推理与行动:
Thought -> Act -> Observation -> Thought -> ...适合需要边查边做的任务。
Plan-and-Execute
先生成计划,再逐步执行。
优点:
- 更容易审查
- 更适合长任务
缺点:
- 计划可能过时
- 中途遇到新信息时需要重规划
Reflect / Self-Critique
先给出结果,再自我检查并修正。
适合:
- 复杂写作
- 代码生成
- 多约束任务
5. Agent 失败的典型原因
- 目标定义不清
- 工具描述不清或工具返回不稳定
- 上下文窗口被无关信息占满
- 缺少终止条件,导致循环失控
- 缺少权限边界,导致误操作风险
- 缺少评测,问题长期隐藏
6. 工程上必须设计的护栏
6.1 明确目标与完成条件
不要只说“帮我处理这个问题”,要定义:
- 成功标准
- 输出格式
- 禁止行为
- 可用工具范围
6.2 限制动作空间
不要默认给全部工具权限。
常用做法:
- 按任务白名单开放工具
- 限制写操作
- 高风险动作要求人工确认
6.3 设计终止条件
例如:
- 达到任务目标
- 连续若干次无进展
- 达到最大步数
- 关键工具连续失败
6.4 记录过程
至少应记录:
- 输入
- 计划
- 工具调用
- 结果
- 错误
- 最终输出
否则无法排查失败路径。
7. 什么时候适合用 Agent
适合:
- 多步任务
- 工具依赖强
- 路径不固定
- 需要根据中间结果调整后续步骤
不适合:
- 单轮简单问答
- 固定流程表单处理
- 高风险且无需灵活性的业务路径
8. 一个最小 Agent 心智模型
目标
-> 规划
-> 选择工具
-> 执行动作
-> 观察结果
-> 更新状态
-> 继续 / 终止9. 评价一个 Agent 是否“好用”
不要只看“聪不聪明”,更该看:
- 任务成功率
- 工具调用成功率
- 平均步数
- 延迟
- 成本
- 是否容易失控
- 是否容易调试
10. 一句话总结
Agent 本质上是“带工具、带状态、带控制循环的 LLM 系统”。