升级指南
镜像变更
- 更新 fastgpt-plugin 镜像
- 更新 AIProxy 镜像 tag: v0.5.6
环境变量变更
fastgpt-app, fastgpt-pro 可增加文件解析并发线程数
# 文件解析 worker 并发数(可选)
PARSE_FILE_WORKERS=10
# 文件解析超时时间(秒)(可选)
PARSE_FILE_TIMEOUT_SECONDS=600
# HTML 转 Markdown worker 并发数(可选)
HTML_TO_MARKDOWN_WORKERS=10
# 文本切块 worker 并发数(可选)
TEXT_TO_CHUNKS_WORKERS=10
# 自动同步 mongo 数据库索引, 改成 boolean 字符串值,而不是 0 和 1(可选)
SYNC_INDEX=true
# 是否启用可信反向代理客户端 IP 校验(可选)
TRUSTED_PROXY_ENABLE=false
# 可信反向代理 IP/CIDR 列表,逗号或空白分隔。仅 TRUSTED_PROXY_ENABLE=true 时生效;仅显式可信代理传入的 X-Forwarded-For/X-Real-IP 会用于客户端 IP 解析(可选)
TRUSTED_PROXY_IPS=确认是否遗漏环境变量
本次升级,增加了对于环境变量的检测,避免漏填必须的环境变量,需重点检查fastgpt-app和fastgpt-pro是否包含:
# 密钥加密密钥,两个服务需一致
AES256_SECRET_KEY=
# 文件 token 密钥,两个服务需一致
FILE_TOKEN_KEY=🚀 新增内容
- 新增循环节点,弃用旧的批量执行。
- 全局变量输入框支持输入 object 类型数据。
- 工具调用模式下,如果开启了虚拟机功能,用户对话框上传的文件会直接注入到虚拟机中。
- 第三方知识库接入钉钉知识库。
- 增加文件解析/HTML转Markdown/文本切块 worker pool,避免并发太高导致资源耗尽,可通过环境变量调整其 pool 数量。
- 模型思考配置。
- S3 支持配置 CDN。
⚙️ 优化
- 增加父子节点选中互斥功能,解决:同时选中父子节点时,移动节点会出现抖动。
- 调整文件注入 messages 位置,从 system 调整至 user,便于命中缓存。
- 非管理员/访客,触发余额不足时候,提示优化。
- 无创建权限时,隐藏模板功能。
- 加强第三方知识库请求的 SSRF 防护。
- codex-sandbox 加强 AST 检查,防止绕过安全检查。
- 站点同步限流错误提示,重复提示。
- 加强 IP 检测,避免伪造绕过。
- 图片处理线程,支持配置是否转化成 base64 发送给模型。
🐛 修复
- 修复 Agent v2 模式下,模型响应报错会导致 step 重复执行
代码优化
- 重新调整代码结构,升级 Next.js 最新版,切换至 Turbopack 构建,提高构建速度;升级容器默认 Node.js 至 24。
- 优化 Agent tool 声明和运行,统一所有 tool 的声明和运行方式。
- 文件上传内容从 system prompt 中放到 user message 中,提高 cache 命中率。
- 服务端 env 加载全部使用
@t3-oss/env-core,增加更多类型检查。其余服务,也采用集中导出 env 的方式进行环境变量使用。 - 升级了项目工程化工具链版本,包括 ESLint、Prettier、textlint 和 lint-staged 工具。
What's Changed
- perf: agent tool code by @c121914yu in #6798
- perf: wechat channel by @c121914yu in #6800
- perf: SSRF check by @c121914yu in #6805
- fix(storage): swap reversed sourceKey/targetKey in OssStorageAdapter.copyObjectInSelfBucket by @octo-patch in #6806
- fix(embedding): decode base64 embedding responses before vector processing by @octo-patch in #6807
- doc by @c121914yu in #6810
- helper-error by @YYH211 in #6802
- Update 41411.mdx by @c121914yu in #6811
- perf: adapt reason text by @c121914yu in #6812
- fix: messages adapt test by @c121914yu in #6813
- feat(workflow): add loop run node with start/break sub-nodes by @DigHuang in #6797
- feat: support multiple valueTypes for text input variables by @DigHuang in #6801
- chore(workflow): deprecate loop node and add deprecation skill by @DigHuang in #6815
- perf: stop loop by @c121914yu in #6816
- chore(deps-dev): bump postcss from 8.5.6 to 8.5.10 in /document by @dependabot[bot] in #6814
- fix: adapt systemTool by @c121914yu in #6817
- doc by @c121914yu in #6818
- doc by @c121914yu in #6819
- update doc by @c121914yu in #6823
- Update sdk by @c121914yu in #6824
- fix: template height by @c121914yu in #6825
- fix(workflow): clarify multi-select tooltip copy by @amingbo in #6827
- fix(drag): mutex selection between nested parent and child nodes by @DigHuang in #6821
- api_dataset_error by @YYH211 in #6828
- chore: bump pro submodule for hydration stability by @xqvvu in #6808
- update shell by @c121914yu in #6830
- fix: file-bug by @YYH211 in #6799
- .codex by @c121914yu in #6832
- chore: update actions workflow yamls by @xqvvu in #6835
- fix: home chat file uploads by @xqvvu in #6838
- [codex] chore: add skip file type check env by @xqvvu in #6839
- fix: step-retry-error by @YYH211 in #6829
- sandbox tool inject by @c121914yu in #6836
- [security] fix(app): validate stored MCP tool URLs by @Hinotoi-agent in #6826
- chore: update admin release workflow by @xqvvu in #6842
- fix(share): show contact admin message and hide plan button for visitors on insufficient AI points by @DigHuang in #6846
- Action by @c121914yu in #6847
- perf: template permission by @c121914yu in #6848
- perf: catch error toast by @c121914yu in #6849
- perf: ssrf check by @c121914yu in #6852
- perf: codex-sandbox check by @c121914yu in #6851
- fix: skip allowed extensions by @xqvvu in #6854
- fix: stt usage by @c121914yu in #6855
- fix(workflow): relax variable update reference validation to ignore stale valueType by @DigHuang in #6859
- feat(reason): configurable reasoning effort with tool-call propagation by @DigHuang in #6837
- feat: dingding dataset by @YYH211 in #6856
- feat(app): sync aiChatReasoningEffort in SimpleApp form and refine AI settings inputs by @DigHuang in #6862
- fix: use upload control file config by @xqvvu in #6858
- fix: scope chat resume to current app by @xqvvu in #6860
- chore(deps): bump mongoose from 8.12.1 to 8.22.1 by @dependabot[bot] in #6870
- chore(deps): bump axios from 1.13.6 to 1.15.2 by @dependabot[bot] in #6871
- Pick by @c121914yu in #6875
- Perf worker and env load by @c121914yu in #6861
- perf: ip check by @c121914yu in #6850
- Doc by @c121914yu in #6880
- fix: doc by @c121914yu in #6881
- redirect by @c121914yu in #6884
- redirect by @c121914yu in #6885
- redirect by @c121914yu in #6886
- chore: bump and clean deps by @xqvvu in #6878
- fix: redirect by @c121914yu in #6887
- fix: ts by @c121914yu in #6890
- rerank config by @YYH211 in #6892
- docs: update ai settings guide by @DigHuang in #6894
- fix: form input icon store by @c121914yu in #6891
- support cdn in s3 by @c121914yu in #6896
- chore: migrate eslint config by @xqvvu in #6895
- fix: reduce base64 image payloads by @c121914yu in #6897
- fix: support older browsers for share page by @c121914yu in #6903
- fix: invalidate team vector count cache after vector changes by @c121914yu in #6902
- chore: upgrade lint toolchain by @xqvvu in #6901
- fix: share field filter by @c121914yu in #6905
New Contributors
- @amingbo made their first contribution in #6827
- @Hinotoi-agent made their first contribution in #6826
Full Changelog: v4.14.13...v4.15.0-beta