AI Agent 101:从“对话框”进化到“自主运行”
很多人第一次接触 Agent,会把它理解成“更强一点的聊天机器人”。这个理解不算错,但还差一截。聊天机器人主要负责回答问题;Agent 则更像一个能接任务、能调工具、能根据结果继续往下走的软件执行体。
你可以把它理解成:LLM 不再只是坐在对话框里等你发问,而是开始具备了一点“做事能力”。
把这章的知识,直接变成实战能力
进入交互式实验室,用真实任务练 Prompt,10 分钟快速上手。
#什么是 AI Agent?
一个比较实用的定义是:
AI Agent 是能够接收目标、理解环境、调用外部能力,并在中间根据反馈继续调整动作的系统。
注意这里的重点不是“会说”,而是“会继续做”。比如:
- 查完资料以后继续整理
- 改完代码以后继续跑测试
- 工具失败以后知道该重试、换路线,还是停下来问人
如果说普通 LLM 更像一个只能在原地输出答案的大脑,那 Agent 至少还多了几样东西:
- 眼睛:能看到文件、网页、日志、数据库结果
- 手脚:能调用工具、执行命令、修改资源
- 笔记:能保存上下文、任务状态和长期知识
text┌─────────────────────────────────────────────────────────────┐ │ AI Agent 核心架构模型 (The Brain) │ ├─────────────────────────────────────────────────────────────┤ │ │ │ [ 规划 Planning ] <───> [ 记忆 Memory ] │ │ ↑ ↑ │ │ └─────── [ 大脑 LLM ] ───────┘ │ │ │ │ │ ▼ │ │ [ 工具箱 Tools ] <───> [ 行动 Action ] │ │ │ └─────────────────────────────────────────────────────────────┘
#AI Agent 的核心四要素
#1. 规划(Planning)
Agent 真正和普通对话模型拉开差距的地方,往往不是回答更像人,而是会不会拆任务。
比如“帮我分析这个项目为什么启动慢”,一个像样的 Agent 不会直接下结论,而是会先读配置、看构建脚本、查依赖、看日志,再逐步收敛。
#2. 工具调用(Tools / Skills)
没有工具,Agent 的能力会被锁死在文本里。
工具可能是:
- 搜索和抓取网页
- 读写本地文件
- 执行代码和命令
- 调用 GitHub、Notion、Slack 等外部服务
这一步决定了 Agent 是“会分析”,还是“真的能做事”。
#3. 记忆(Memory)
记忆让 Agent 不至于每一轮都重新开始。
- 短期记忆保证当前任务不断片
- 长期记忆保证历史知识和用户偏好可以复用
很多“Agent 不稳定”的问题,本质上不是模型不够强,而是它记不住该记的东西。
#4. 环境感知(Perception)
环境感知决定了 Agent 能从哪里拿信息。它可能看到的是:
- 文件系统变化
- 浏览器页面结果
- 数据库查询结果
- 图片、语音或日志流
感知越真实,后面的判断就越少靠猜。
#典型应用场景
| 场景 | 传统方式 | Agent 方式 | 实际价值 |
|---|---|---|---|
| 软件开发 | 人手动读代码、改 Bug、跑测试 | Agent 先定位问题,再修改、验证、汇报 | 节省重复劳动 |
| 市场调研 | 手工搜索、复制整理 | Agent 自主搜集、抽取、汇总 | 缩短整理时间 |
| 客户支持 | 人工查知识库再回复 | Agent 检索资料并联动业务系统 | 提高响应效率 |
| 个人工作流 | 手动安排和跟进 | Agent 根据规则执行重复任务 | 降低琐事负担 |
#常见开发路径
如果你刚开始做 Agent,通常会落在下面几条路线里:
| 路线 | 适合什么人 | 典型特点 |
|---|---|---|
| IDE 内 Agent | 开发者 | 直接在代码环境里协作,反馈快 |
| 代码框架编排 | 工程团队 | 可控性高,适合复杂流程 |
| 低代码平台 | 产品、运营、业务团队 | 上手快,适合验证业务流程 |
选型时别只看热度,先看你的任务到底是偏代码协作、偏知识问答,还是偏业务自动化。
#实战指南:怎么带好你的第一个 Agent
第一原则很简单:不要只给一句模糊指令,要把目标、边界和验证条件说清楚。
#坏指令 (Bad Prompt):
“帮我分析一下这个项目的代码。”
#好指令 (Good Prompt / Agent Style):
markdown# Role 你是一个资深的 Node.js 架构师,擅长性能优化。 # Context 这是一个基于 NestJS 的电商后端,目前 `GET /products` 接口在高并发下响应极慢。 # Task 1. 深入分析 `src/modules/products` 下的所有代码。 2. 找出导致性能瓶颈的 3 个原因(如 N+1 查询、缺少索引等)。 3. **自主执行**:针对最明显的一个瓶颈,修改代码并确保测试通过。 4. 输出一份重构前后的性能对比报告。 # Constraints - 只能修改 `src/modules/products` 目录下的文件。 - 修改后必须运行 `npm run test`。
#常见问题与避坑指南
| 问题 | 常见原因 | 处理思路 |
|---|---|---|
| 陷入死循环 | 目标太模糊,缺少停止条件 | 设最大迭代次数,补清晰 plan |
| 乱改代码 | 上下文不足,约束不明确 | 增加作用范围和验证规则 |
| 成本失控 | 重复调用重模型 | 做模型分层,缩短上下文 |
#动手练习
- 初级练习:使用 Cursor 的 Composer 模式,让它“重构当前文件夹下的所有样式文件,提取公共变量到
theme.css”。 - 高级练习:尝试搭建一个“多 Agent 团队”,让 Agent A 写博客草案,Agent B 负责配图,Agent C 负责发布到 Mock API。
#小结
理解 Agent,最重要的是把它从“回答机器”切换成“执行系统”来看。
- 它要能拆任务,不只是会聊天。
- 它要能调工具,不只是会生成文本。
- 它要能根据结果继续往下走,而不是一步答完。
- 它要有边界和验证,不然很容易看起来聪明、实际不稳。
下一章:我们将深入探讨 AI 时代的“USB 接口”——MCP 协议终极指南