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