AI Agent 入门:让大模型自己干活
前言
到目前为止我们讲的大模型用法——不管是普通对话还是 RAG——本质上都是”你问一句,它答一句”。
Agent(智能体)让模型更进一步:给一个目标,它自己规划步骤、调用工具、检查结果、修正错误,直到把事办成。就像你交代下属一个任务,不需要把每个细节都告诉他怎么做。
一、Agent 和普通 Chat 的区别
1 | 普通 Chat: |
Agent 本质上是 LLM + 工具 + 循环 的组合。LLM 负责思考规划,工具负责执行实际操作,循环负责检查修正。
二、ReAct 模式
这是目前 Agent 最主流的实现模式,全称是 Reasoning + Acting(推理 + 行动)。
1 | ReAct 循环: |
一个具体的例子:
1 | 用户: "帮我在淘宝上搜索 500 元以内的机械键盘,选评分最高的三款" |
三、使用 OpenAI Agents SDK 构建 Agent
OpenAI 在 2025 年初发布了轻量级的 Agents SDK,比 LangChain 更简洁。
1 | pip install openai-agents |
基础 Agent
1 | from agents import Agent, Runner |
带工具的 Agent
1 | from agents import Agent, Runner, function_tool |
四、用 Dify 低代码搭建 Agent
如果不想写代码,Dify 是一个不错的选择(支持私有部署)。
Dify 搭建 Agent 的步骤:
- 创建 Agent 应用,选择基座模型(GPT-4o / DeepSeek 等)
- 在”工具”面板添加工具——支持 API 调用、数据库查询、代码执行等
- 写 Agent 指令(相当于 system prompt):
1 | 你是一个数据分析助手。当用户提出数据相关的问题时: |
- 调试:在调试面板输入问题,观察 Agent 的思考过程和工具调用
- 发布:一键发布为 Web 应用或 API 端点
Dify 适合:内部工具、原型验证、非技术团队使用 AI。
五、Agent 的常见问题
1. 无限循环
Agent 有时候会陷入”调用工具 → 结果不满意 → 调用工具 → …”的死循环。
对策:
- 设置最大调用步数(比如最多 10 步)
- 在指令中明确:”如果 3 次工具调用还没得到满意结果,就向用户报告目前已知信息”
2. 幻觉工具调用
Agent 可能会”凭空”调用一个不存在的工具,或者给工具传递不合理的参数。
对策:
- 给每个工具写好详细的 description
- 对工具输入做校验(类型检查、范围检查)
3. 效率低
简单问题 Agent 也会走完整的”思考 → 工具调用 → 观察”循环,明明一步就能回答的。
对策:
- 指令中明确:”对于简单的事实性问题,直接回答,不要调用工具”
- 用更小的模型判断问题复杂度,简单问题走 fast path
六、什么时候用 Agent,什么时候用普通 Chat
| 场景 | 用什么 | 原因 |
|---|---|---|
| 闲聊 | Chat | 不需要工具 |
| 问一个事实性问题 | RAG | 检索+回答,单轮就够了 |
| 自动写周报(需要查 Jira + 查 Git) | Agent | 需要多步工具调用 |
| 客服机器人(查订单、查物流、退换货) | Agent | 需要根据情况调用不同 API |
| 数据分析(查询 → 计算 → 绘图) | Agent | 多步操作,步骤间有依赖 |
| 代码生成 | Chat | 输入代码,输出代码,一步搞定 |
不是所有事情都需要 Agent。Agent 的引入会增加复杂度和延迟,如果单一的 Chat 或 RAG 就能解决问题,就不要上 Agent。
七、从 Demo 到生产
Demo 跑通容易,生产落地要考虑:
- 状态管理:Agent 的中间状态要持久化,不能进程重启就丢
- 工具安全:别给 Agent 直接执行 SQL/Shell 的权限,加上沙箱/审批
- 可观测性:记录每一步的 Thought/Action/Observation,方便排查问题
- 人工兜底:关键操作(下单、退款、发送邮件)需要人工确认
- 成本控制:Agent 可能调用很多次 LLM,token 消耗比普通 Chat 大得多
Agent 是好工具,但在真正”值得用 Agent”的场景才上。绝大多数需求,Chat + RAG 就足够了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 七月小站!