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