Files
dify-docs/zh/use-dify/nodes/tools.mdx
2026-02-13 00:29:37 +08:00

111 lines
4.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "工具"
description: "连接外部服务和 API"
icon: "wrench"
---
<Note> ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考[英文原版](/en/use-dify/nodes/tools)。</Note>
将 [Dify 工具](/zh/use-dify/workspace/tools)作为独立节点添加到你的工作流中。
这让你的工作流能够与外部服务和 API 交互,以访问实时数据并执行操作,如网页搜索、数据库查询或内容处理。
## 添加和配置节点
1. 在画布上,点击**添加节点** > **工具**,然后从可用工具中选择一个操作。
2. 可选:如果工具需要身份认证,选择一个已有凭据或创建新凭据。
<Info>
要更改默认凭据,请前往**工具**或**插件**。
</Info>
3. 完成其他必需的工具设置。
## 准备工具输入
工具可能要求特定格式的输入,而这些格式不一定与你的上游节点输出完全匹配。你可能需要重新格式化数据、提取特定信息或组合多个节点的输出。
无需手动添加中间节点或修改上游输出,你可以**在需要的地方直接准备输入**。
有两种方式可用:
| 方式 | 适用场景 | 工作原理 |
|:---------|:---------|:-------------------|
| **组装变量** | 数据在上游输出中直接可用且结构清晰,但需要格式转换、提取或组合 |<ol><li>你描述需求。</li><li>系统自动创建一个内部**代码**节点来处理转换。</li></ol>|
| **从 LLM 的对话历史中提取** | 数据隐藏在 LLM 的对话历史中,需要 LLM 来解读和提取 | <ol><li>你描述需求。</li><li>系统自动创建一个内部 **LLM** 节点来读取所选 Agent 或 LLM 节点的对话历史并提取所需数据。</li></ol>|
### 组装变量
<Frame caption=""><img src="/images/assemble_variables.png" alt="组装变量"/></Frame>
当数据存在于清晰、结构化的上游输出中但需要转换时使用——例如提取子字符串、组合多个输出或更改数据类型。
<Accordion title="示例:组合多个节点的输出">
三个上游 LLM 节点各自生成了一段产品描述。下游工具需要一个包含所有描述的单一数组。
选择**组装变量**并描述:"组合 LLM1、LLM2 和 LLM3 的文本输出。"
系统生成的代码会将输出合并为工具期望的数组格式。
</Accordion>
<Note>
在组装变量之前,请先运行相关的上游节点以使其输出数据可用。
</Note>
1. 在任何接受变量的工具输入字段中,输入 `/` 并从下拉菜单中选择**组装变量**。
2. 用自然语言描述你的需求AI 会生成转换数据的代码。生成的代码会自动适配输入字段期望的格式。
3. 点击**运行**测试代码。这会打开内部代码节点并使用可用的上游数据运行。
4. 检查代码节点的输出,验证是否符合预期:
- 如果结果正确,直接退出即可。代码会自动保存和应用。
- 如果不正确,点击代码字段中的代码生成器图标继续用 AI 优化,或直接编辑代码。
<Frame caption="代码生成器图标">
<img src="/images/code_generator_icon.png" alt="代码生成器图标"/>
</Frame>
<Info>
之后如需重新打开**组装变量**界面:
1. 点击已组装变量旁的**查看内部**。
2. 选择内部代码节点。
3. 点击代码生成器图标。
</Info>
### 从 LLM 的对话历史中提取
<Frame caption=""><img src="/images/extract_from_llm_chat_history.png" alt="从 LLM 的对话历史中提取"/></Frame>
当你需要的信息隐藏在 LLM 的对话历史(即执行过程中产生的用户、助手和工具消息)中时使用。你可以通过 LLM 的 `context` 输出变量查看其对话历史。
<Accordion title="示例:从混合输出中提取代码">
上游 LLM 节点生成了代码,但其输出包含自然语言的解释和注释。下游的代码解释器工具需要纯净的、可执行的代码。
无需修改上游 LLM 让它只输出代码,而是在代码解释器的输入字段中 `@` 该 LLM 节点并描述:"仅输出可执行的代码。"
系统将创建一个内部 LLM 节点,自动添加所选 LLM 节点的对话历史,并以代码解释器期望的格式提取代码。
</Accordion>
<Note>
在从对话历史中提取之前,请先运行相关的上游 Agent 或 LLM 节点以使其 `context` 数据可用。
</Note>
1. 在任何接受变量的输入字段中,输入 `@` 并选择一个上游 Agent 或 LLM 节点。
2. 描述你想从其对话历史中提取的内容。
3. 点击**查看内部**并测试运行内部 LLM 节点。该节点自动导入上游节点的对话历史,并使用结构化输出来匹配所需格式。
4. 检查输出并根据需要优化。