> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Snippets

> 在多个工作流中复用和共享节点组合

> 本文档由 AI 自动翻译。如有任何不准确之处，请参考 [英文原版](/en/self-host/use-dify/build/snippet)。

一些实用的节点组合常常会在多个工作流中反复出现。如果没有办法保存并复用，你每次都得重新搭建同样的逻辑，比如一串特定的 LLM 和工具节点、一段数据处理流程，或一个多步骤的摘要流程。

将一组节点打包成一个 Snippet，作为可复用的单元：逻辑只需搭建一次，即可在多个工作流中复用，还能分享给团队，省去他人重复搭建的麻烦。

你也可以将 Snippet 导出为 DSL 文件，在不同工作空间之间共享。

## 创建 Snippet

创建 Snippet 有 3 种方式：

* **从工作流创建**

  选中想要复用的节点，右键点击并选择 **创建 Snippet**。

  这些节点的配置会一并保存到 Snippet 中。它们引用的外部变量（未选中节点的输出、环境变量等）会自动成为该 Snippet 的 [输入变量](#编辑-snippet)。

* **从零创建**

  在 **工作室** 中点击右上角的 **Snippets**，然后点击 **创建 Snippet** > **创建空白 Snippet**，从空白画布开始搭建。

* **从 DSL 文件创建**

  在 **工作室** 中点击右上角的 **Snippets**，然后点击 **创建 Snippet** > **导入 DSL 文件**，导入一个已有的 Snippet。

你创建的 Snippet 会在工作空间内共享。谁能查看、编辑或使用，取决于各自的工作空间角色，详见 [权限](#权限)。

## 编辑 Snippet

搭建 Snippet 的方式与搭建普通工作流基本相同，但有两点区别。

第一，有几类节点不可用。Snippet 是嵌入到工作流中的片段，而非独立运行，因此没有起始节点（用户输入、触发器），也没有结束节点（工作流中的输出、对话流中的直接回复）。知识检索和人工介入节点也暂不支持。

第二，Snippet 没有用于接收输入的起始节点，因此你需要自行定义 **输入变量**，指定它期望接收的数据，例如来自上游节点的变量。将 Snippet 添加到工作流后，这些输入变量便成为它与工作流之间的连接点。

## 发布 Snippet

编辑时，你的改动会自动保存为草稿，下次打开可以接着上次的进度继续。草稿准备好后，点击 **发布**，Snippet 便可使用。工作流始终使用已发布的版本，而非草稿。

每次发布都会记录在 Snippet 的版本历史中，你可以在其中查看或恢复到较早的版本。

## 将 Snippet 添加到工作流

在画布上右键点击，选择 **添加节点** > **Snippets**，然后选择一个插入。这里只会显示已发布的 Snippet。

Snippet 会以副本形式添加到画布上。在插入的节点中，为每个输入变量指定工作流里对应的变量，让它们获取所需的数据。

之后修改原始 Snippet 不会影响已经使用它的工作流，反之亦然。

## 权限

你能对 Snippet 执行哪些操作，取决于你在工作空间中的角色：

| 操作                   | 角色                 |
| :------------------- | :----------------- |
| 查看 Snippet 列表        | Owner、Admin、Editor |
| 创建、编辑和发布 Snippet     | Owner、Admin、Editor |
| 删除 Snippet           | Owner、Admin        |
| 将已发布的 Snippet 添加到工作流 | 任何能编辑目标工作流的人       |

「Normal」角色的用户看不到 Snippet 列表。

<Tip>
  在 Dify Enterprise 中，管理员可将这些权限重新分配给自定义角色。[联系销售](https://udify.app/chat/QuwcpW1oBNcfeL55) 了解更多。
</Tip>
