document/content/self-host/upgrading/4-15/41506.mdx
对话标题生成模型不再通过环境变量 CHAT_TITLE_MODEL 配置,升级后可在「模型配置」的「默认模型配置」中选择「对话标题模型」。该配置可以不设置,不设置时不会调用模型生成标题,仅使用用户问题截断作为标题。
如此前配置过 CHAT_TITLE_MODEL,升级后可从 fastgpt 和 fastgpt-pro 的环境变量中移除,并在页面中重新选择对应模型。
本版本将 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 统计。apps 表去掉与 App _id 重复的 Skill ID,再删除剩余 Skill ID 下匹配到的旧 chats、chatitems、chat_item_responses 和旧格式 Chat S3 文件前缀。该接口不会回填几亿条历史 App Chat 的 sourceType。
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 仅在配置变化时重新写入。
如果启用 Agent Sandbox,需同步更新下面镜像:
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,仅用于临时排查模型调用详情;如需排查历史问题,请在升级前导出相关日志或保留原始请求信息。
{ teamId, requestId },避免 requestId 被其他团队复用读取敏感 trace。linux/arm64 + Alpine/musl 架构,回退到 pdfjs 解析方案。