Dify v1.17.0发布:Agent支持E2B云沙箱、Home Snapshot工作区快照与可复用LLM配置
新版本引入E2B沙箱后端、Agent构建期Home快照、工作区级Skill管理、上下文感知的历史压缩,并提供可复用的LLM环境变量以便统一修改模型配置。
AI解读:Dify v1.17.0的更新集中在Agent运行稳定性和团队协作效率上。此前Agent的代码执行只能依赖本地沙箱,运维复杂且资源受限于单机;v1.17.0新增E2B云沙箱后端,通过DIFY_AGENT_RUNTIME_BACKEND即可切换,并配套Home Snapshot机制——Agent构建发布时自动保存工作目录(已装包、准备的文件、运行状态),之后每次运行都能从同一状态恢复。这意味着发布后的Agent行为完全可复现,不再因环境差异出现“本地能跑、部署后出错”。对需要长时间运行的Agent任务,新增的上下文感知压缩能先清理旧工具结果、再压缩旧历史,避免对话超出模型上下文窗口,实际效果取决于设置的回合数和模型限制。工作区级的Skill管理引入了草稿-发布-版本流程,配合Web UI,适合跨应用沉淀和复用技能,但仍需自行管理版本发布。另一个值得注意的是可复用LLM环境变量——在统一位置定义模型配置(如for_summarize、for_research)后,任意LLM节点均可引用,修改配置只需一处改动,且能随DSL导入导出。对自托管用户,升级时需注意几个破坏性变更:环境变量EDITION更名为DEPLOYMENT_EDITION;删除/替换了多个Agent运行时变量(旧的DIFY_AGENT_SHELLCTL_AUTH_TOKEN等失效);应用和工作流默认执行时长上限从 1200 秒提升到 3600 秒。如果是从 1.15.0 之前版本升级,还需额外运行一次性legacy-model-types数据迁移(不包含在flask db upgrade中),否则旧模型记录会导致API报错。数据库迁移中的add_conversation_cleanup_index会在大数据表上耗费较长时间。云Sandbox为按需付费,配置时需注意API Key与流量认证,成本取决于实际用量。
Dify v1.17.0正式发布,核心变化是Agent运行时重构:新增E2B云端沙箱作为本地执行后端之外的选项,Agent构建发布时生成Home快照,后续运行从快照恢复沙箱文件系统状态;同时引入工作区级Skill管理(草稿→发布→版本)、上下文感知的历史压缩,以及工作流中可复用的LLM环境变量。
Agent后端切换通过DIFY_AGENT_RUNTIME_BACKEND环境变量控制;官方随版本附带新的docker/docker-compose.e2b.yaml,用于部署E2B相关组件。快照机制在构建(publish)时捕获沙箱home目录(已安装软件包、准备文件、运行状态),随后对已发布Agent的运行将回到该状态。
安全侧新增Cloudflare Turnstile验证、Azure Key Vault /可插拔KMS、若干访问控制修复;平台最大执行时长默认值从 1200 秒提升到 3600 秒。自托管升级包含多项破坏性变更(环境变量改名和删除、数据库迁移),并有一条一次性legacy model数据迁移未包含在flask db upgrade中。
Agent运行时与知识管理
E2B后端为可选,配置项包括E2B API Key(DIFY_AGENT_E2B_API_KEY)、模板、活跃超时等;本地沙箱仍可用。
Context-aware历史压缩:系统识别各模型有效上下文窗口,分层压缩——先清除较旧工具结果,再压缩较早历史,避免长对话超窗,同时保留近期上下文。
LLM可复用环境变量:可在工作区层定义provider/model/mode/parameter配置(如for_summarize、for_research),任意LLM节点引用;一处修改生效所有引用位置,配置随DSL导入导出、片段、RAG pipeline及协同编辑保留。
Multimodal:LLM节点与Agent可直接传图像给视觉模型;非视觉附件在Agent对话中不再被静默丢弃。
TiDB Vector增加多语言全文索引,可用于混合检索(默认关闭)。
工作流、安全与运维变更
Human-in-the-loop表单现在可置于Loop和Iteration节点内部,在刷新页面后正确暂停/恢复。
统一追踪:可选用统一追踪(OPS_TRACE_UNIFIED_ENABLED)将父子span树组装在核心层,仅传输给适配器;首批支持Phoenix与LangSmith;默认关闭、向后兼容。新增GenAI span暴露LLM TTFT、Agent ReAct步骤、工具调用等指标。
安全修复涉及认证加固(登录尝试上限、邮件验证token过期、可疑域名处理)与多处所有权作用域绑定(数据集、文档、会话、OAuth等)。
静态环境变量变更:EDITION改名为DEPLOYMENT_EDITION;删除ENTERPRISE_ENABLED、DIFY_AGENT_SHELLCTL_AUTH_TOKEN、DIFY_AGENT_SHELLCTL_ENTRYPOINT、AGENT_BACKEND_RUN_TIMEOUT_SECONDS(替换为DIFY_AGENT_RUN_TIMEOUT_SECONDS)。
新增数据库迁移,涉及workflow版本号、会话清理索引、技能表和Agent home快照账本;迁移不含legacy-model-types(需单独执行)。
自托管升级注意事项
若部署版本早于 1.15.0 且未执行过一次性legacy model迁移,需单独运行flask data-migrate legacy-model-types --apply(先备份并检查dry-run输出),否则legacy模型可能导致API请求失败。
此次版本附带新数据库迁移,需先执行flask db upgrade;add_conversation_cleanup_index在conversations表数据量大时可能耗时较长。
若维护自定义docker-compose.yaml,需检查变更并重新应用自定义项,新增compose文件为docker/docker-compose.e2b.yaml。
默认执行最长时长由 1200 秒改为 3600 秒(APP_MAX_EXECUTION_TIME、WORKFLOW_MAX_EXECUTION_TIME),若依赖旧默认值需按需调整。