mirror of
https://github.com/langgenius/dify-docs.git
synced 2026-03-27 13:28:32 +07:00
111 lines
4.7 KiB
Plaintext
111 lines
4.7 KiB
Plaintext
---
|
||
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. 检查输出并根据需要优化。
|
||
|
||
|