📦 升级指南
1. 修改默认模型配置
对话标题生成模型不再通过环境变量 CHAT_TITLE_MODEL 配置,升级后可在「模型配置」的「默认模型配置」中选择「对话标题模型」。该配置可以不设置,不设置时不会调用模型生成标题,仅使用用户问题截断作为标题。
如此前配置过 CHAT_TITLE_MODEL,升级后可从 fastgpt 和 fastgpt-pro 的环境变量中移除,并在页面中重新选择对应模型。
2. 清理旧 Skill Debug 对话数据
本版本将 Skill Edit 对话迁移到标准 Chat 存储模型。历史 Skill Debug 数据曾把 skillId 写入 Chat 三表的物理 appId 字段,且没有 sourceType;历史 sandbox 实例也需要补齐 sourceType/sourceId。升级后旧 Skill Debug 对话不会被新 Skill Edit 对话读取,但建议执行一次 root-only 初始化接口完成 sandbox 实例字段迁移并清理旧 Skill Debug 对话。该接口仅用于本次升级迁移,不作为 OpenAPI 对外接口。
执行前请先确认新的 Chat source 索引已经创建完成。该初始化接口默认 dry-run,只统计不删除:
curl -X POST 'https://你的域名/api/admin/4150/init4150-beta6' \
-H 'Content-Type: application/json' \
-H 'rootkey: 你的ROOT_KEY' \
-d '{"dryRun":true}'返回结果确认无误后,将 dryRun 改为 false 执行迁移和删除:
curl -X POST 'https://你的域名/api/admin/4150/init4150-beta6' \
-H 'Content-Type: application/json' \
-H 'rootkey: 你的ROOT_KEY' \
-d '{"dryRun":false}'接口参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
dryRun
| boolean | true
| 是否只统计不执行。 |
该接口会全量读取 skills 表,不支持只传部分 Skill ID。原因是 sandbox 实例迁移需要先识别所有 Skill,再把剩余未命中 Skill 且带 appId 的实例统一视为 App sandbox;如果只扫描部分 Skill,会把未扫描到的 Skill sandbox 误标成 App。
迁移逻辑:
- 查询
skills表拿到全部_id。 - 对缺少
sourceType或sourceId的agent_sandbox_instances,如果匹配appId=skillId或metadata.skillId=skillId,写入sourceType=skillEdit和sourceId=skillId,并清理旧appId/metadata.skillId字段。 - 对剩余缺少
sourceType或sourceId、未命中 Skill 且存在非空appId的 sandbox 实例,写入sourceType=app和sourceId=appId,并清理旧appId/metadata.skillId字段。 - 对已经具备
sourceType/sourceId但残留旧appId或metadata.skillId的 sandbox 实例,只清理旧字段,不覆盖现有标准归属。 - 没有
appId、appId=null或appId=""且无法通过metadata.skillId归属到 Skill 的 orphan sandbox,会在非 dry-run 模式下删除远端 sandbox、OpenSandbox volume、S3 归档和 Mongo 记录;dry-run 只通过orphanMatchedCount统计。 - 清理旧 Skill Debug chat:先用
apps表去掉与 App_id重复的 Skill ID,再删除剩余 Skill ID 下匹配到的旧chats、chatitems、chat_item_responses和旧格式 Chat S3 文件前缀。
该接口不会回填几亿条历史 App Chat 的 sourceType。
3. 更新环境变量(可选)
Agent Sandbox 新增包管理镜像源配置。配置后,Agent Sandbox 初始化时会在 sandbox HOME 下写入 npm、yarn、bun、pip 和 uv 的镜像配置文件,提升在私有网络或跨境网络环境中安装依赖的稳定性。
# Agent Sandbox 内 npm/yarn/pnpm/bun 使用的 npm registry
AGENT_SANDBOX_NPM_REGISTRY=
# Agent Sandbox 内 pip/python -m pip/uv 使用的 PyPI index URL
AGENT_SANDBOX_PYPI_INDEX_URL=该配置会按内容 hash 缓存在 sandbox runtime state 中,同一个 sandbox 仅在配置变化时重新写入。
4. 更新镜像
- 更新 fastgpt-app(fastgpt 主服务) 镜像 tag: v4.15.0-beta6
- 更新 fastgpt-pro(fastgpt 商业版) 镜像 tag: v4.15.0-beta6
- 更新 fastgpt-plugin 镜像 tag: v1.0.0-beta6
- 更新 aiproxy 镜像 tag: v0.6.2
如果启用 Agent Sandbox,需同步更新下面镜像:
- 更新 fastgpt-agent-sandbox-proxy 镜像 tag: v0.2.0-beta3
- 更新 fastgpt-agent-sandbox 镜像 tag: v0.2.0-beta3
风险点
1. LLM 请求追踪记录增加团队隔离
LLM 请求追踪记录(llm_request_records)新增 teamId 字段,GET /api/core/ai/record/getRecord 会按当前登录团队查询 { requestId, teamId },避免仅凭 requestId 读取其他团队的请求体、知识库召回片段和模型响应。
同时,llm_request_records 的唯一索引从单字段 requestId 调整为复合唯一索引 { teamId: 1, requestId: 1 }。如自托管环境关闭了 SYNC_INDEX,升级后需要执行一次索引同步,确保旧的 requestId_1 唯一索引被移除。
风险点:升级前已写入的旧追踪记录没有 teamId,升级后将无法再通过 requestId 查询,页面会按追踪记录已过期处理。该记录本身有 TTL,仅用于临时排查模型调用详情;如需排查历史问题,请在升级前导出相关日志或保留原始请求信息。
🚀 新增内容
- 商业版支持本地直连 FastGPT 调试插件。
- 沙盒支持自定义 npm 和 pip 源,主动探测版本升级。
⚙️ 优化
- 对话标题生成模型改为使用系统默认模型配置管理,便于运行时切换和统一维护。
- LLM 请求追踪记录按团队隔离查询,唯一索引调整为
{ teamId, requestId },避免requestId被其他团队复用读取敏感 trace。 - Skill Edit 对话统一使用标准 Chat 存储和清理链路,历史 Skill Debug 对话可通过初始化接口清理。
- Agent Sandbox 支持配置 npm 和 PyPI 镜像源,初始化时自动写入常见包管理器配置,减少 sandbox 内依赖安装失败。
- PDF 解析兼容
linux/arm64 + Alpine/musl架构,回退到pdfjs解析方案。
🐛 修复
- chat/completions 接口,返回 nodeResponse 时候,过滤掉了 q/a/index,该版本恢复返回。
代码优化
- chat 接管接口抽象,不再绑定 app, 改成平台级别通用。
What's Changed
- doc by @c121914yu in #7174
- doc by @c121914yu in #7175
- deploy doc by @c121914yu in #7178
- Fix test by @c121914yu in #7179
- feat: integrate Skill assisted generation by @YYH211 in #7166
- fix: agent v2 plan select expand/fold animation by @xqvvu in #7181
- feat(app): persist skill debug sessions and optimize playground UI by @DigHuang in #7180
- fix: translations by @xqvvu in #7182
- refactor(sandbox): unify runtime preparation flow and support package mirrors by @DigHuang in #7184
- feat(ide-agent): add filesystem exec and path operations support by @DigHuang in #7191
- feat: support source typed skill edit chat by @c121914yu in #7185
- feat: add skill context for agent helper generation by @YYH211 in #7187
- Docs updates and fix portal chat tool call issue by @YYH211 in #7194
- fix(chat): align share chat history controls by @xqvvu in #7195
- feat(sandbox): support runtime upgrade and advanced file/command operations by @DigHuang in #7189
- feat(plugin): support local plugin debug channel by @FinleyGe in #7176
- Change fastgpt-agent-sandbox-proxy tag to v0.2.0-beta2 by @Deepturn in #7196
- fix: title generation and fix chat api parase by @c121914yu in #7192
Full Changelog: v4.15.0-beta5...v4.15.0-beta6