跳转到主要内容
本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版
代码节点执行自定义 Python 或 JavaScript 来处理工作流中复杂的数据转换、计算和逻辑。当预设节点无法满足你的特定处理需求时可以使用它。
代码节点配置界面

代码节点配置界面

沙箱服务

代码节点依赖 sandbox 服务,该服务在标准 Docker Compose 部署中定义,随整个技术栈一起自动启动:
沙箱以独立容器运行,将代码执行与宿主机及其他服务隔离。通过 docker/envs/core-services/sandbox.env.example 中的 SANDBOX_* 环境变量调整其行为(worker 超时、经由 SSRF 代理的网络访问、端口),通过 docker/envs/core-services/shared.env.example 中的 CODE_* 变量调整输出限制(由 API 读取)。

配置

定义 输入变量 以访问工作流中其他节点的数据,然后在代码中引用这些变量。你的函数必须返回一个包含你已声明的 输出变量 的字典。

语言支持

根据你的需求和熟悉程度在 PythonJavaScript 之间进行选择。两种语言都在安全沙箱中运行,并可访问用于数据处理的常用库。
Python 包含标准库,如 jsonmathdatetimere。非常适合数据分析、数学运算和文本处理。

错误处理和重试

为失败的代码执行配置自动重试行为,并定义代码遇到错误时的回退策略。
错误处理配置选项

错误处理配置选项

重试设置 允许最多 10 次自动重试,并可配置间隔(最大 5000ms)。启用此功能来处理临时处理问题。 错误处理 让你在代码执行失败时定义回退路径,使你的工作流即使在代码遇到问题时也能继续运行。
重试配置界面

重试配置界面

输出验证和限制

代码输出会根据 API 容器上设置的可配置限制进行验证:
  • 字符串:最大长度由 CODE_MAX_STRING_LENGTH 设置(默认 400,000 个字符),空字节会被剥离。
  • 数字:范围由 CODE_MAX_NUMBERCODE_MIN_NUMBER 设置(默认为 int64 范围),浮点数精度由 CODE_MAX_PRECISION 设置(默认 20 位小数)。
  • 对象和数组:最大嵌套深度由 CODE_MAX_DEPTH 设置(默认 5),数组大小由 CODE_MAX_STRING_ARRAY_LENGTHCODE_MAX_OBJECT_ARRAY_LENGTHCODE_MAX_NUMBER_ARRAY_LENGTH 设置。
默认值位于 docker/envs/core-services/shared.env.example。收紧限制可约束输出大小,放宽限制可让工作流正常产出更大的负载。

安全考虑

代码在严格的沙箱中执行,阻止文件系统访问、网络请求和系统命令。这在提供编程灵活性的同时保持安全性。 出于安全原因,某些操作会被自动阻止。避免尝试访问系统文件或执行可能危险的操作。默认情况下,沙箱代码的出站网络调用经由 SSRF 代理路由,设置 SANDBOX_ENABLE_NETWORK=false 可完全禁用沙箱代码的网络访问。

依赖支持

代码节点支持 Python 和 JavaScript 的外部依赖:
沙箱环境中预装了依赖项。可在你的 Dify 安装中查看可用包列表。
最后修改于 2026年6月10日