分类:Release
摘要:DifySandbox 正式开源。作为 Dify 工作流的核心组件,它提供安全隔离的代码执行环境,有效防御恶意代码攻击。支持 Python 和 Node.js,具备高性能与高扩展性,助力开发者构建更稳定、透明的 AI 应用生态。
DifySandbox 正式开源:安全执行代码
Dify 致力于帮助用户构建可直接投入生产环境的 LLM 应用。开发者可在 Workflow 中插入代码节点,通过自定义流程搭建复杂应用。为保障代码执行的安全与高效,同时有效防范恶意代码,我们开发了 DifySandbox。今天,我们很高兴地宣布,DifySandbox 正式开源。此举旨在进一步提升代码透明度。
为什么我们要开发 DifySandbox?
提供代码执行环境
DifySandbox 与 Workflow 深度集成。它是代码节点、模板转换节点、LLM 节点以及工具节点中代码解释器的运行环境。作为复杂工作流的核心引擎,DifySandbox 能够在 LLM 应用中实现结构化数据转换、数据拼接与逻辑处理。
拦截恶意代码
若缺乏有效约束,正常业务代码与潜在恶意代码将在同一环境中运行。恶意代码可能窃取敏感资源、读取服务器文件,甚至删除数据库。DifySandbox 通过为潜在恶意代码创建隔离环境,解决了这一问题。同时,它确保正常业务代码能够流畅运行。
主流沙箱方案的局限性
在评估业界主流沙箱方案后,我们发现存在以下不足:
- WebAssembly:适配性有限,安装第三方依赖困难。
- Docker:按任务创建容器的方案执行速度慢,且存在 Docker 劫持风险。
- 语言专属沙箱包:仅支持单一语言,无法通用。
- 内核扩展:配置复杂,需系统权限,且存在安全隐患。
DifySandbox 的安全机制
为突破传统沙箱的局限,提供更安全、灵活且通用的代码执行环境,我们从零重构了 DifySandbox。我们在操作系统、文件系统、网络等多个层面实施了隔离策略,全面强化 Dify 的安全性:
- 系统安全:采用白名单策略,仅放行指定系统调用,有效防止误操作或恶意绕过系统调用。
- 文件系统隔离:用户代码在独立的文件系统中运行。
- 网络隔离:采用隔离的沙箱网络,通过代理容器访问外部网络。在保障内网系统完整性的同时,支持灵活的代理配置。
- 权限隔离:将恶意代码的权限限制在最低水平。

如需了解 DifySandbox 的详细实现原理,请访问我们的博客。
正式开源
DifySandbox 源代码现已在 GitHub 公开。这符合我们打造更开放、透明 Dify 生态的愿景。它为开发者带来以下核心优势:
- 高扩展性:基于 Seccomp 的系统级方案。目前支持 Python 和 Node.js,未来可轻松扩展至更多语言。
- 高性能:系统级架构支持单容器多任务执行模型。无需为每个任务单独创建容器,大幅降低开销,显著提升任务处理速度。
- 开放获取:除作为 Dify 的核心组件外,DifySandbox 本身也是一个独立开源项目。所有开发者均可免费部署并使用安全的代码执行环境。
加入我们
我们诚挚邀请开发者加入社区,共同塑造 Dify 的未来。您的反馈与见解对推动 Dify 演进至关重要。欢迎加入我们的精彩旅程!随着 Dify 多模态架构的持续升级,您的参与不可或缺。详情请参阅 DifySandbox 贡献指南。