DIFY-08:Agent 模式——让智能体自动选择工具
实验目的
掌握 Dify Agent 类型应用的创建,理解 Agent 如何根据用户输入自动选择合适的工具。
重点节点
- Agent 应用类型
- 工具添加与配置
- 最大迭代次数设置
操作步骤
1. 创建 Agent 应用
- “工作室”→"Agent" →“创建应用”
- 命名:
智能研究助手
2. 添加工具
对于非内置工具,可先在dify的工具市场先下载插件
- 在 Agent 配置中添加工具:
- 工具1:
百度搜索 - 工具2:
code代码解释器(内置,用于简单计算)
- 工具1:
3. 配置 Agent 策略
- 选择策略:
Function Calling(推荐)或ReAct - 设置最大迭代次数:
5 - 设置系统提示词:
你是一个研究助手。 当用户问事实性问题时,使用搜索工具查找信息。 当用户要求计算时,使用代码工具。 综合工具返回的信息,用简洁语言回答用户。
4. 测试 Agent 行为
- 输入:
爱因斯坦是哪一年获得诺贝尔奖的?→ 应调用 百度搜索 - 输入:
计算 1234 * 5678→ 应调用code代码解释器 - 输入:
你好→ 直接使用 LLM 回答(不调用工具)
5. 观察执行过程
- 在调试模式中展开执行步骤
- 观察 Agent 如何"思考"和选择工具
- 查看每次迭代的输入输出
后续深入意见
- 对比 Function Calling 和 ReAct 两种策略的执行效果
- 尝试调整最大迭代次数,观察对回答质量的影响
- 下一步学习其他需要的工具并接入 Agent
关于Dify开发的智能体的联网能力
第一层:模型 API 调用的网络连接
| 部署方式 | LLM 调用是否走网络 |
|---|---|
| Dify Cloud | ✅ 要联网(你的请求 → Dify 服务器 → 模型服务商) |
| 自部署(本地) | ✅ 要联网(你的 Dify → 模型服务商 API) |
| 自部署 + 本地模型(Ollama/vLLM) | ❌ 不走外网,纯本地 |
大多数情况下 Dify 的 LLM 调用需要联网才能访问模型服务商的 API(阿里云、DeepSeek、OpenAI 等)。
第二层:LLM 能不能主动上网搜最新信息?
答案是:默认不能。
即使 LLM 的 API 调用能通,模型本身的知识是有截止日期的(比如 DeepSeek 的知识截止到 2025 年 5 月):
- ❌ 不能自己打开浏览器搜网页
- ❌ 不能知道当前实时天气/新闻/股价
- ✅ 但它知道训练时学到的历史知识
怎么让它联网?
在 Dify 的 Agent / Workflow 里,需要显式配置工具才能让 LLM 获取实时信息:
| 方式 | 怎么配 | 需要什么 |
|---|---|---|
| 内置「互联网搜索」工具 | Agent 节点 → 工具 → 添加「互联网搜索」 | SerpAPI / Bing Search API Key |
| HTTP 请求节点 | Workflow 里加 HTTP 节点,调第三方 API | API Key(视服务而定) |
| 自定义工具 | 写 OpenAPI 规范或 Python 代码节点 | 对应服务的凭证 |
以查天气为例:
- 不配置 → LLM 说:“我无法获取实时天气,我的知识只到 X 年 X 月”
- 配置了 HTTP 请求节点(刚才那个 wttr.in)→ LLM 通过工具调用获得实时数据
一句话总结
Dify 里的 LLM 默认是个"离线大脑",知识有截止日期。想让它知道实时信息,得给它配工具(联网搜索 / HTTP 请求 / 自定义 API)。