v4.15.2
pingcap/autoflowv4.15.2Jul 17, 2026by c121914yu
AI Summary
Introduces major Agent V2 architecture refactor with unified execution engines, OpenSandbox updates, and new file download modes. Adds enterprise certification capabilities and various UI/UX improvements.
Key Highlights
- Major Agent V2 architecture refactor with unified fastAgent and piAgent engines
- OpenSandbox image upgrades to fix Chinese filename download issues
- New STORAGE_DOWNLOAD_URL_MODE environment variable for file access control
- Enterprise and Company certification capabilities added
- Security hardening for archive parsing and CI supply chain
Breaking Changes
- AGENT_ENGINE environment variable values changed: 'default' is no longer valid, must use 'fastAgent'; 'pi' is no longer valid, must use 'piAgent'
- OpenSandbox images must be updated for existing deployments
- STORAGE_DOWNLOAD_URL_MODE configuration requires STORAGE_EXTERNAL_ENDPOINT if using 'short-redirect'
New Features
- Enterprise and Company certification capabilities
- Portal page support for AgentV2 application selection
- Real-time error hints for workflow nodes
- Custom tool parameter nodes support manual JSONSchema input
- File upload/download links converted to short access links
Full Release Notes
## 📦 升级指南 ### 1. OpenSandbox 镜像升级 如果部署中启用了 OpenSandbox,请同步更新以下镜像: - `opensandbox/server:v0.2.1` - `opensandbox/execd:v1.0.21` - `opensandbox/egress:v1.1.4` 升级后可修复中文文件名的文件无法下载的问题。完整配置请参考 [OpenSandbox 配置](../../config/sandbox/opensandbox)。 ### 2. AGENT_ENGINE 环境变量值调整 V4.15.2 起,`AGENT_ENGINE` 使用新的枚举值。升级前,请按下表修改部署环境变量: | 旧值 | 新值 | | --------- | ----------- | | `default` | `fastAgent` | | `pi` | `piAgent` | 旧值不再兼容。继续使用 `default` 或 `pi` 会导致环境变量校验失败,FastGPT 无法启动。未配置 `AGENT_ENGINE` 时,可正常启动,系统默认使用 `fastAgent`。 ### 3. 修改文件下载模式变量 V4.15.2 新增 `STORAGE_DOWNLOAD_URL_MODE` 环境变量,默认值为 `short-proxy`。 - `short-proxy`:返回 FastGPT 短链,由 FastGPT App 代理文件下载。 - `short-redirect`:返回 FastGPT 短链,校验后跳转到临时 S3/CDN 地址。 如需使用短链但不希望文件流量经过 FastGPT App,可配置: `STORAGE_DOWNLOAD_URL_MODE=short-redirect` 使用 `short-redirect` 时,必须配置 `STORAGE_EXTERNAL_ENDPOINT`。 ### 4. 镜像变更 - 更新 fastgpt-app(fastgpt 主服务) 镜像 tag: v4.15.2 - 更新 fastgpt-pro(fastgpt 商业版) 镜像 tag: v4.15.2 - 更新 fastgpt-plugin 镜像 tag: v1.0.2 ## 🚀 新增内容 1. 工作流节点增加实时错误提示。 2. 自定义工具参数节点,支持手动输入 jsonschema,同时支持必填选项。 3. 文件上传、下载链接改用短访问链接,减少长链接占用上下文及模型输出异常;已签发的旧版链接仍保持兼容。 4. 针对无明确后缀的文件链接,进行 buffer 推测后缀,提高文件解析成功率。 5. 企业认证/公司认证能力。 6. 门户页支持选择 AgentV2 应用进行对话。 ## ⚙️ 优化 1. Skill 未关联应用时的删除弹窗文案。 2. 适配最新微信发布渠道 sdk。 3. 将插件的已下线命名改成已卸载。 4. 判断器节点采用唯一 ID 作为标识,而不是 index,实现删除、排序时,目标分支保持不变。 5. 系统工具生成的文件不会 1 小时过期,改成长期,跟随会话一起删除。 6. 同步模式下不显示注册用户按钮。 7. 对话框流输出,淡入效果性能优化。 8. 升级 `LiteParse` 版本,解决并发解析 PDF 报错问题;文件解析 worker 默认数量由 10 调整为 5,仍可通过 `PARSE_FILE_WORKERS` 配置。 9. 前端请求增加并发去重能力,模型列表和沙盒依赖接口的相同请求会复用进行中的结果,减少工作流节点和选择器重复触发的请求。 10. 工作流 SSE 返回 nodeResponse。 ## 🐛 修复 1. 优化 CI 流程,通过 hashtag 固定 step 版本,规避 CI 供应链投毒攻击风险。 2. 移除 PPTX 解析依赖的高风险解压库,改为流式解压解析流程,规避恶意代码执行风险。 3. 自定义分块标识符拒绝传入单一"|"或连续"||"符号,避免错误解析大量 chunks。 4. 企微版本客户付款后自动购买 license 判断逻辑优化,避免重复购买/少购买的情况 5. 插件市场空 Tag 标签问题 6. 修复循环运行节点的迭代项和并行运行节点的任务项耗时计算错误,改为分别记录每个子项的实际运行时间,不再累加子节点耗时。 7. Agent Loop 部分边界情况优化。 8. 删除正在上传的对话文件时,会同步中止预签名和上传请求,避免已删除文件重新出现或错误更新其他文件。 9. 修复调用上传、草稿上传及首轮媒体消息场景下,文件持久化、类型或元数据可能丢失的问题。 ## 🛠️ 代码优化 ### 常规代码优化 1. Agent V2 辅助生成/ChatAgentHelper 重构,复用对话框。 2. 保存包含超长 base64/data URL 的 AI 请求记录时可能触发栈溢出,提前进行截断。 3. SSE 事件统一封装,强化类型提示。 4. packages/service 和 packages/global 移除 next 依赖。 5. 新增 `AUTH_COOKIE_SECURE` 环境变量,启用后登录 Cookie 将添加 `Secure` 属性,仅通过 HTTPS 传输。 ### Agent Loop 重构 1. Workflow Agent 与 ToolCall 统一接入共享的 Agent Loop 执行内核。ToolCall 关闭 plan 和 ask 能力,其他循环执行、上下文处理、工具事件、交互恢复及计费规则与 Workflow Agent 保持一致。 2. 统一 `fastAgent` 和 `piAgent` 的 Provider 接口,可通过 `AGENT_ENGINE` 切换执行引擎,并共用标准化的输入、运行时和返回结果协议。 3. 统一 plan、ask、sandbox、文件读取、知识库搜索和业务工具的事件生命周期,使 SSE、运行详情和错误信息保持一致。 4. 统一 `assistantResponses`、节点响应、Provider 状态和上下文压缩快照的生成及持久化流程,移除旧执行链路中的重复适配层。 5. 统一模型调用、上下文压缩和工具执行的 usage 收集入口,避免同一笔用量被重复计费或统计。 6. 优化工具调度:允许安全工具批量并行执行,并保持工具响应按模型调用顺序写回;plan、ask 等有状态工具继续串行执行。 ## What's Changed * Deplot doc by @c121914yu in https://github.com/labring/FastGPT/pull/7251 * fix: hide skill delete reference text when unused by @DigHuang in https://github.com/labring/FastGPT/pull/7255 * fix: secure wechat outlink binding by @c121914yu in https://github.com/labring/FastGPT/pull/7260 * feat: company certification by @shortlight5980 in https://github.com/labring/FastGPT/pull/7122 * feat(chat): support Agent v2 in portal app selectors by @DigHuang in https://github.com/labring/FastGPT/pull/7259 * feat(login): add WeCom auto redirect switch by @FinleyGe in https://github.com/labring/FastGPT/pull/7264 * fix: pin DNS for safe axios direct requests by @c121914yu in https://github.com/labring/FastGPT/pull/7261 * docs: add admin coupon openapi schema by @c121914yu in https://github.com/labring/FastGPT/pull/7272 * feat(marketplace): support community plugins and uninstall flow by @FinleyGe in https://github.com/labring/FastGPT/pull/7250 * feat(chat): helper bot ui & file upload support by @DigHuang in https://github.com/labring/FastGPT/pull/7245 * chore(deploy): configure plugin service base url by @FinleyGe in https://github.com/labring/FastGPT/pull/7273 * feat(chat): show Agent v2 in team app filters by @DigHuang in https://github.com/labring/FastGPT/pull/7274 * fix certification by @shortlight5980 in https://github.com/labring/FastGPT/pull/7270 * perf(marketplace): cap tool grid columns by @FinleyGe in https://github.com/labring/FastGPT/pull/7278 * fix(service): set default expiration for invoked file uploads by @FinleyGe in https://github.com/labring/FastGPT/pull/7279 * ci: add Forgejo platform support with custom variables by @ctlaltlaltc in https://github.com/labring/FastGPT/pull/7265 * fix(ai): avoid stack overflow saving base64 request records by @YYH211 in https://github.com/labring/FastGPT/pull/7280 * fix: use stable branch ids for ifelse node by @c121914yu in https://github.com/labring/FastGPT/pull/7276 * feat(skill): update sandbox runtime upgrade modal by @DigHuang in https://github.com/labring/FastGPT/pull/7275 * refactor(workflow): type workflow SSE events by @c121914yu in https://github.com/labring/FastGPT/pull/7283 * fix(marketplace): filter empty tool card tags by @FinleyGe in https://github.com/labring/FastGPT/pull/7285 * fix certification by @shortlight5980 in https://github.com/labring/FastGPT/pull/7282 * fix(certification): remove initiative expire by @shortlight5980 in https://github.com/labring/FastGPT/pull/7288 * fix: clamp uploaded file access url expiration by @c121914yu in https://github.com/labring/FastGPT/pull/7289 * fix(volume-manager): default pvc storage class to empty by @lingdie in https://github.com/labring/FastGPT/pull/7291 * fix: guard embedding token limits by @YYH211 in https://github.com/labring/FastGPT/pull/7269 * chore(deploy): upgrade OpenSandbox images and integrate agent-sandbox-proxy by @DigHuang in https://github.com/labring/FastGPT/pull/7294 * fix(wecom): track purchased license capacity by @FinleyGe in https://github.com/labring/FastGPT/pull/7292 * fix(security): harden archive parsing and CI actions by @FinleyGe in https://github.com/labring/FastGPT/pull/7293 * fix:split register methods from team sync mode by @shortlight5980 in https://github.com/labring/FastGPT/pull/7230 * docs(upgrading): sync v4.15.2 release notes by @FinleyGe in https://github.com/labring/FastGPT/pull/7299 * fix(ci): use allowlisted action versions by @c121914yu in https://github.com/labring/FastGPT/pull/7301 * perf(chat): reduce long stream rendering cost by @c121914yu in https://github.com/labring/FastGPT/pull/7297 * fix(markdown): strengthen streaming tail fade by @c121914yu in https://github.com/labring/FastGPT/pull/7303 * perf(markdown): cache completed streaming blocks by @c121914yu in https://github.com/labring/FastGPT/pull/7306 * fix(workflow): record loop and parallel item runtimes independently by @c121914yu in https://github.com/labring/FastGPT/pull/7312 * fix(workflow): materialize editable node text by @DigHuang in https://github.com/labring/FastGPT/pull/7308 * perf: agent loop by @c121914yu in https://github.com/labring/FastGPT/pull/7055 * feat:add new UI components for pricing plans by @siiigure in https://github.com/labring/FastGPT/pull/7188 * refactor: decouple engine packages from Next.js by @ctlaltlaltc in https://github.com/labring/FastGPT/pull/7300 * feat(s3): add short access links and SDK core by @xqvvu in https://github.com/labring/FastGPT/pull/7281 * fix: stabilize concurrent PDF parsing with LiteParse WASM by @c121914yu in https://github.com/labring/FastGPT/pull/7318 * feat(workflow): add workflow check issue handling and validation mess… by @siiigure in https://github.com/labring/FastGPT/pull/7167 * refactor(s3): remove presigned download mode by @xqvvu in https://github.com/labring/FastGPT/pull/7321 * fix(chat): add MyTooltip for app name overflow handling by @siiigure in https://github.com/labring/FastGPT/pull/7322 * fix(chat): allow users to update own history metadata by @xqvvu in https://github.com/labring/FastGPT/pull/7325 * chore(workflow): update workflowUtilsContext and add normalization fo… by @siiigure in https://github.com/labring/FastGPT/pull/7324 * feat: configure auth cookies, simplify form results, and track referrals by @c121914yu in https://github.com/labring/FastGPT/pull/7320 ## New Contributors * @lingdie made their first contribution in https://github.com/labring/FastGPT/pull/7291 **Full Changelog**: https://github.com/labring/FastGPT/compare/v4.15.1...v4.15.2