🚀 新增内容
- 支持 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