Releases: labring/FastGPT
Releases · labring/FastGPT
v4.15.0-beta3
📦 升级指南
镜像变更
- 更新 fastgpt-app(fastgpt 主服务) 镜像 tag: v4.15.0-beta3
- 更新 fastgpt-pro(fastgpt 商业版) 镜像 tag: v4.15.0-beta3
- 更新 fastgpt-code-sandbox 镜像 tag: v4.15.0-beta3
环境变量变更
Code Sandbox 新增 SANDBOX_API_MAX_BODY_MB、SANDBOX_MAX_OUTPUT_MB 等安全相关环境变量,并支持通过 queueId 对运行接口做分组排队;完整默认值如下:
| 变量 | 默认值 | 说明 |
|---|---|---|
SANDBOX_API_MAX_BODY_MB |
8 |
/sandbox API JSON 请求体总大小上限,包含 variables,单位 MB。 |
SANDBOX_MAX_OUTPUT_MB |
10 |
单次代码执行输出 JSON 大小上限,包含返回值和日志,单位 MB。 |
CHECK_INTERNAL_IP |
true |
沙箱网络请求默认开启内网 IP 检查,降低 SSRF 风险。 |
SANDBOX_MAX_TIMEOUT |
60000 |
单次代码执行超时时间,单位毫秒。 |
SANDBOX_MAX_MEMORY_MB |
256 |
单个沙箱内存上限,单位 MB;运行时会额外预留 50 MB 开销。 |
SANDBOX_POOL_SIZE |
20 |
JS/Python 预热 worker 数量。 |
SANDBOX_REQUEST_MAX_COUNT |
30 |
单次代码执行允许发起的最大网络请求数。 |
SANDBOX_REQUEST_TIMEOUT |
60000 |
沙箱内单次网络请求超时时间,单位毫秒。 |
SANDBOX_REQUEST_MAX_RESPONSE_MB |
10 |
沙箱内单次网络响应体最大大小,单位 MB。 |
SANDBOX_REQUEST_MAX_BODY_MB |
5 |
沙箱内单次网络请求体最大大小,单位 MB。 |
SANDBOX_QUEUE_ID_CONCURRENCY |
空 | 同一个 queueId 同时可进入执行流程的请求数;为空时不启用排队。 |
/sandbox/js 和 /sandbox/python 请求体新增可选字段 queueId。当配置 SANDBOX_QUEUE_ID_CONCURRENCY 且请求传入有效 queueId 时,同一 queueId 的请求会按 FIFO 排队;不同 queueId 或未传 queueId 的请求不受该限制,仍只受 worker 池并发限制影响。
🚀 新增内容
- 多模态模型支持音视频输入。
- 分享链接/门户页,支持语言切换,不再强制自动识别浏览器语言切换。
⚙️ 优化
- Skill 模块相关弹窗样式。
- Skill list 接口性能。
- 工作流节点名称和介绍输入。
- 工作流编辑页,因登录失效,跳出后自动保存草稿用于恢复。
- 登录页 UI。
🐛 修复
- TTS 语音播放适配最新 OpenAI SDK,避免报错。
- 知识库数据分块,遇到代码块时,可能出现超大分块。
🛠️ 代码优化
- 调整 token 计算依赖,提高性能。
- 重写了对话框相关代码,进行模块化细分。
- 优化单测性能,全量从 10 分支将至 5 分钟。
- 升级 ts6。
- GitHub action 增强安全性。
What's Changed
- Perf code by @c121914yu in #6978
- doc by @c121914yu in #6981
- chore: remove logger package by @xqvvu in #6979
- feat: support multimodal LLM inputs by @YYH211 in #6967
- feat(app): introduce resource reference index and optimize skill appCount query performance by @DigHuang in #6980
- test: parallelize Mongo-backed Vitest suites by @c121914yu in #6984
- fix(service): convert web readable stream to node stream in text2Speech by @DigHuang in #6985
- refactor(chat): split ChatBox into hooks, utils and UI modules by @xqvvu in #6966
- upgrade ts6 by @c121914yu in #6986
- fix(chat): isolate share chat cache keys by @xqvvu in #6988
- refactor(web): upgrade v2 MyModal padding layout and migrate skill workspace modals by @DigHuang in #6987
- feat: persist share chat language preference by @YYH211 in #6982
- feat(app): implement workflow node inline edit and spacing updates by @DigHuang in #6989
- chore: harden GitHub Actions workflows by @c121914yu in #6991
- fix: clarify MCP key runtime authorization snapshot by @c121914yu in #6992
- Fix chat login by @c121914yu in #6993
- chore: require OpenSandbox credentials by @c121914yu in #6994
- fix: harden code sandbox resource limits by @c121914yu in #6997
- refactor(skill): remove duplicate name constraint for skills and folders by @DigHuang in #6995
- fix(app): restrict nodrag class to active editing state in InlineEdit by @DigHuang in #7000
- style(app): optimize non-active hover effect in InlineEdit by @DigHuang in #7002
- fix: isolate Agent V2 chat preview state by @xqvvu in #7005
- fix: dataset code block splitting by @YYH211 in #6998
- refactor(skill): offload skill package decompression to sandbox container by @DigHuang in #7004
- Add local workflow draft cache and restore flow by @FinleyGe in #6923
- feat(code-sandbox): add queueId concurrency limit by @c121914yu in #7008
- fix: login ui by @shortlight5980 in #7009
- doc by @c121914yu in #7011
New Contributors
- @shortlight5980 made their first contribution in #7009
Full Changelog: v4.15.0-beta2...v4.15.0-beta3
v4.15.0-beta2
🚀 新增内容
- 支持 Skill 编辑,AgentV2 支持 Skill 使用,目前仅支持静态 Skill,无法指定反向调用系统工具。
- 重写 agentV2 loop 逻辑,采用线性 messages loop 模式。
- 知识库搜索支持原生多模态 embedding 模型以及图搜图。
- Chat API dataId 增加校验,避免出现重复 dataId。
⚙️ 优化
- 优化 OTEL 日志采集格式。
- 禁用工作流无效连接模式。
- 增加工作流节点,名字超长适配。
- 知识库搜索测试交互。
- 知识库数据编辑弹窗。
- reason hide 开关完善,确保只是 UI 不显示,但是 request llm 时候依然可以保留。
- 流恢复暂停体验:暂停后会等待后端返回真实生成态;若工作流尚未收尾,输入区保持禁发并提示「停止中」,避免上一轮未结束就发送下一轮。
- 异常中断会话更快恢复:服务崩溃或重启后,结合 Redis stream 活动检测(约 2 分钟无心跳)更快将卡住的「生成中」会话纠正为已完成;仍保留 30 分钟 Mongo 兜底,Redis 短暂异常时不会误改正在生成的会话。
- 切换应用记住最近会话:同一浏览器内切换应用时,会按应用恢复上次打开的 chatId,不再共用单一全局会话 id。
- 响应详情展示优化:完整响应弹窗中,表单输入节点的文件字段以文件列表形式展示,而不仅是 JSON 文本。
- chat2messages adapt 优化,避免出现独立的 reason
🐛 修复
- 工作流,单节点调试,存在异常默认值。
- 模型配置,defaultConfig 覆盖异常。
- 切换团队时,清除本地 chat 缓存。
- 对话流恢复:
- 刷新或断线续传后,已提交的表单输入值(含
fileSelect文件列表)能正确回填到交互节点内,不再出现空表单或文件消失。 - 自动续传开始时保留已加载的 AI 输出与节点响应;completed 记录覆盖时不再丢失已恢复的交互表单值与 flow 节点响应。
- 已提交表单后不再重复追加过期未提交交互;恢复过程中表单默认值能随
formInputResult同步更新。 - 新对话发起后,侧栏临时历史项优先展示用户输入生成的标题,服务端标题落库后再覆盖,避免长时间显示「新对话」。
- 切换不同应用时,侧栏或会话内容短暂展示其他应用聊天记录的问题。
- 刷新或断线续传后,已提交的表单输入值(含
- 停止对话提示:移除停止时的 warning toast,改为与后端生成态同步的状态提示。
- v1/completions 接口,nodeResponse 中,quoteList 未返回
q,a。
🛠️ 代码优化
- 拆分 AI request、工作流运行详情代码。
- 用户自定义密钥计费逻辑。
- 流恢复相关模块补充设计文档与单元测试(stop 状态、stale 清理、历史标题、dataId 校验、表单回填等)。
- volumn manager 将 bun 改成 Node.js 运行。
📦 升级指南
镜像变更
- 更新 fastgpt-app(fastgpt 主服务) 镜像 tag: v4.15.0-beta2
- 更新 fastgpt-pro(fastgpt 商业版) 镜像 tag: v4.15.0-beta2
如果使用 Opensandbox,更新下面镜像
- 更新 fastgpt-agent-sandbox 镜像 tag: v0.2.0
- 更新 fastgpt-agent-volume-manager 镜像 tag: v0.2.0
环境变量更新
- 如使用 opensandbox,则 AGENT_SANDBOX_VOLUME_MANAGER_MOUNT_PATH 不再生效,可移除。opensandbox 固定挂载持久化数据到
/workspace,旧的沙盒持久化会受到影响。
What's Changed
- doc by @c121914yu in #6906
- fix: detect v1 client abort explicitly by @c121914yu in #6908
- fix: avoid client abort close false positives by @c121914yu in #6910
- refactor: record message into otel body instead of attributes by @xqvvu in #6911
- chore(deps): bump mermaid from 10.9.4 to 10.9.6 by @dependabot[bot] in #6917
- fix: clear reference values in node debug by @c121914yu in #6915
- fix: tool connection by @c121914yu in #6919
- docs: add root password FAQ by @c121914yu in #6921
- ci: preview sandbox proxy image by @DigHuang in #6930
- fix: scroll chat resume to bottom by @xqvvu in #6928
- fix(document): prevent path traversal in meta API route by @sebastiondev in #6931
- style(input): horizontal padding to input field by @DigHuang in #6937
- ci: move sandbox proxy to release workflow by @DigHuang in #6934
- fix: defaultconfig by @c121914yu in #6938
- chore: disable turbopack dev/build fs cache by @xqvvu in #6939
- feat: add image dataset UI by @YYH211 in #6932
- Agent loop by @c121914yu in #6925
- perf: workflow v1 abort check by @c121914yu in #6945
- feat: support image dataset search by @YYH211 in #6942
- Update 41420.mdx by @c121914yu in #6947
- fix: make file_url name optional by @c121914yu in #6951
- fix(oss): use list() instead of getBucketInfo() in ensureBucket to avoid bundling issue by @octo-patch in #6833
- fix: make external S3 endpoint check non-blocking during health check by @TheOne-Xin in #6864
- fix(s3): use Buffer instead of string for health check body by @shikaiwei1 in #6913
- fix: set charset for source file previews by @YYH211 in #6916
- chore: suppress API input Zod error noise by @xqvvu in #6952
- fix: docs by @xqvvu in #6955
- fix: default model by @c121914yu in #6957
- fix: clear chat cache when switching teams by @xqvvu in #6956
- Support image embedding indexes for multimodal dataset search by @YYH211 in #6948
- perf: adapt messages by @c121914yu in #6959
- fix: reason by @c121914yu in #6963
- fix: chatitem animation by @c121914yu in #6965
- Merge tmp-chat into main by @xqvvu in #6958
- feat(skill): edit-debug iframe via standalone sandbox-proxy by @DigHuang in #6879
- fix: volumn manager by @c121914yu in #6971
- perf: deploy by @c121914yu in #6972
- Package by @c121914yu in #6973
- Fix deploy yml by @c121914yu in #6974
- perf: yml proxy by @c121914yu in #6975
- perf: quote code by @c121914yu in #6977
New Contributors
- @sebastiondev made their first contribution in #6931
Full Changelog: v4.15.0-beta1...v4.15.0-beta2
v4.14.22
🐛 修复
- 工作流默认选中模型未回传表单值,导致看到的模型和实际运行模型不一致。
- 工作流自动保存时,存在边丢失风险。
- admin 修改系统通知弹窗时候报错。
- 工作流混用思考/非思考模型,可能出现独立 reason 字段上下文,导致模型调用报错。
What's Changed
- fix: avoid standalone reasoning messages by @c121914yu in #6960
Full Changelog: v4.14.21...v4.14.22
v4.14.21
v4.14.20
升级指南
1. 更新镜像 tag
- 更新 fastgpt-app(fastgpt 主服务) 镜像 tag: v4.14.20
- 更新 fastgpt-pro(fastgpt 商业版) 镜像 tag: v4.14.20
🐛 修复
- 增强工作流 zod 数据类型适配性。
- 模型配置,无法完全覆盖 defaultConfig。
Full Changelog: v4.14.19...v4.14.20
v4.15.0-beta1
升级指南
镜像变更
- 更新 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
v4.14.19
变更说明
- 兼容更低版本浏览器内核
- 修复表单输入,文件类型时,未过滤掉 icon,导致请求体过大。
- 修复分享链接,未正确展示虚拟机文件入口。
What's Changed
- Fix 4.14.x by @c121914yu in #6898
- fix: support older browsers for share page (#6903) by @c121914yu in #6904
Full Changelog: v4.14.18...v4.14.19
v4.14.18
变更说明
- 增加admin关闭微信发布渠道功能。
- 修复工作流工具、工作流表单输入中文件上传类型检查错误。
- 修复在对话页频繁切换未结束对话,导致流恢复顺序异常。
Full Changelog: v4.14.17...v4.14.18
v4.14.17
升级指南
1. 更新镜像 tag
- 更新 fastgpt-app(fastgpt 主服务) 镜像 tag: v4.14.17
- 更新 fastgpt-pro(fastgpt 商业版) 镜像 tag: v4.14.17
🐛 修复
- API 知识库 parentId 类型校验错误。
- 门户页对话无法上传文件。
- 商业版未包含内部文件解析接口,如果未配置 S3 External Endpoint,会导致文件解析失败。
What's Changed
Full Changelog: v4.14.16...v4.14.17
v4.14.16
升级指南
1. 更新镜像 tag
- 更新 fastgpt-app(fastgpt 主服务) 镜像 tag: v4.14.16
- 更新 fastgpt-pro(fastgpt 商业版) 镜像 tag: v4.14.16
⚙️ 优化
- embedding 适配 base64 字符串返回值。
🐛 修复
- helper-bot 前缀输出 Error~ 信息
- 阿里云 oss copy 接口。
- 工作流节点弹窗高度过高,导致底部一行节点无法显示。
- 临时解决评估列表权限问题,只能看到自己创建的评估。
Full Changelog: v4.14.15...v4.14.16