1. Agent 是什么
这是什么:Agent(智能体) = 会用工具、能自己一轮轮往下干活的 LLM 应用,一个「自己会想办法」的程序。
为什么用:聊天机器人只会答问题,答完就结束;真实任务往往是「先查一下,再根据结果决定下一步」,得有个能自己往下推进的东西。
如何用:本章先把 Agent 的循环骨架和适用边界讲清楚,下一章就用 function calling 手写一个会查天气的 Agent。
1.1 从「只会答」到「会干活」
聊天机器人的流程是死的:问一句、答一句、结束。而真实任务往往是「先查一下,再根据查到的结果决定下一步」——比如「查一下明天天气,如果下雨就提醒我带伞」。
| 聊天机器人 | Agent | |
|---|---|---|
| 谁推动 | 用户问一句,它答一句 | 它自己判断下一步 |
| 能做什么 | 只能生成文字 | 能调工具:查天气、读文件、跑命令 |
| 结束条件 | 答完就结束 | 任务完成 / 达到步数上限才停 |
| 典型例子 | 网页对话框 | 编码助手、自动化流程、个人助理 |
1.2 Agent 的循环长什么样
拆开看,所有 Agent 都是同一个骨架:
┌──────────────────────────────────┐
│ │
▼ │
① 思考:模型看上下文, ┌──────────────────────┐
决定「下一步该干嘛」 ───► │ ② 行动:调用某个工具 │
│ (读文件 / 查 API…) │
▲ └──────────┬───────────┘
│ │
│ ③ 观察:把工具的结果 ▼
└──── 写回上下文,模型看到 ──── 回到 ①
三步循环转起来,Agent 就能处理「步骤数事先不知道」的任务。
1.3 Agent vs 工作流
不是所有自动化都该做成 Agent:
| 工作流(固定流程) | Agent(自主决策) | |
|---|---|---|
| 步骤 | 写死在代码里 | 模型临场决定 |
| 同样的输入 | 必然同样的结果 | 可能不一样 |
| 适合 | 步骤明确、量大、要稳定 | 步骤不确定、需要判断 |
| 例子 | 每天 9 点发日报 | 「把这堆报错分个类并给出修复建议」 |
判断标准很简单:流程你能提前画出来,就用工作流;画不出来,才上 Agent。 Agent 更灵活,但更贵、更慢、更难调试。
1.4 三种常见档次
| 档次 | 能力 | 难在哪 |
|---|---|---|
| 一次性工具调用 | 模型选一个工具、调一次、拿结果 | 最简单,本章就能写 |
| 多步循环 | 反复「思考—行动—观察」直到完成 | 要控制停止条件、防死循环 |
| 多智能体协作 | 多个各有分工的 Agent 互相配合 | 要设计交接协议、避免互相甩锅 |
新手别一上来就做第三档。本教程先把第二种写扎实——循环、工具、记忆这三样,学会了第一种是自然延伸。
1.5 动手改
- 找一件你每天重复做的烦心事(整理邮件、汇总日报、批量改文件名),写下它的步骤
- 判断它属于「工作流」还是「Agent」?步骤能不能提前画出来?
1.6 小结
- Agent = LLM + 工具 + 「思考—行动—观察」循环
- Agent 适合步骤不确定的活;步骤确定的工作流更便宜更稳
- 三种档次:一次性工具调用 → 多步循环 → 多智能体,先学前两种
下一章:环境搭建与第一个 Agent,亲手写出会调工具的 Agent 🐸