跳转到主要内容
⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考英文原版
每个使用沙盒运行时的应用都有一个文件系统,LLM 可以在其中按需读取、写入和处理文件。 文件系统包含两类文件:
  • 资源:你上传或创建的持久文件,例如技能(Skill)。
  • 产物:LLM 在每次运行期间生成的临时文件。
文件系统

资源

资源是你为工作流创建或导入的文件。LLM 可以读取但不能修改它们。资源在应用中持久保存,并在导出应用时一起包含。

Skill

Skill 将指令、知识、脚本和其他资料打包用于特定任务——定义一次,跨工作流复用。 例如,你无需每次重复描述风格指南并上传品牌素材来让 LLM 生成营销文案,只需创建一个 marketing-copy Skill 并将所有资料包含在内,需要时直接引用即可。 可以将 Skill 理解为一份详细的 SOP(标准作业程序),而 LLM 就像一位能力出色的新员工。新员工具备通用能力,但不了解公司的具体流程。Skill 为他们提供所需的一切——步骤说明、参考资料、可用工具——让他们能按照你期望的方式完成任务。

创建或导入 Skill

你可以导入已有的 Skill、使用我们提供的 Skill 模板,或直接在文件系统中创建自定义 Skill。 每个 Skill 都需要一个 SKILL.md 文件,定义任务内容、使用时机以及执行步骤。 SKILL.md 中,你可以引用任何可用的资源(脚本、模板、上下文材料或 Dify 工具)并指定使用的场景和方式。
Skill

在提示词中引用 Skill

在提示词编辑器中输入 /,然后从文件选项卡中选择一个 Skill 文件夹。 LLM 会先读取 Skill 的头信息(名称、描述和元数据),仅在需要时才加载完整内容。这节省了 Token 并提高了效率,在使用多个 Skill 时尤其有用。

产物

产物是 LLM 在执行过程中生成的文件——报告、图片或其他任何输出。LLM 对产物拥有完整的读写权限。 你可以在 Skills 选项卡或画布底部的变量检查面板中预览和下载产物。

产物生命周期

沙盒中的产物在测试和生产环境中具有不同的生命周期。导出应用时不包含产物。
产物在多次测试运行之间持久保存。要清除它们,点击变量检查面板中的全部重置
你可能还会在产物下看到 .bashrc.profile 等系统文件。这些是沙盒环境的一部分,在多次运行之间持久保存。

向终端用户输出产物

产物存储在沙盒环境中,无法直接暴露给终端用户。要输出产物,你需要通过另一个 Agent 节点来提取:
  1. 在生成文件的节点下游,添加一个 Agent 节点。
  2. 关闭 Agent 模式并启用结构化输出
  3. 添加一个文件类型的结构化输出变量。
  4. 通过添加对话历史导入上游 Agent 节点的对话历史。这让模型可以定位文件路径。
  5. 在用户消息中,指示模型提取并输出文件(例如”输出生成的 PDF 文件”)。
  6. 在回答节点或输出节点中,引用 Agent 节点的文件输出变量。

支持的文件类型和操作

文件系统支持任意文件类型。所有文件都可下载,部分文件还可预览或编辑。
  • Markdown:MD, MARKDOWN, MDX
  • 代码:JSON, YAML, YML, TOML, JS, JSX, TS, TSX, PY, SCHEMA
  • 其他文本:HTML, CSS, XML, SQL, SH, BASH, CSV, TXT, JSONL,以及其他纯文本文件