Release 2.2.7

发布日期

2026年5月27日

发布信息

  • 更新范围:从 2.2.6 版本文档对应提交 bd3de7cfacb8f30d9a88e56df473b51b5545da82 之后,到当前提交 be395e43524eea73bb837648fb23a52cb9422e3b
  • 版本号依据:packages/plugins/@yiwendata/yiask/package.json 当前工作区版本 2.2.7

更新内容

新功能

  • 新增关键词向量库查询能力。位于系统配置 -> 问答优先级调整 -> 关键词向量库。
  • 新增跨 Agent 委派工具轨迹日志记录。callAgent 在委派执行时会补充工具调用轨迹落盘,便于排查多 Agent 协作中的工具执行过程与生成文件关联结果。

缺陷修复

  • 修复嵌套鉴权响应头互相污染的问题。聊天链路中的嵌套鉴权响应现在会隔离响应头处理,减少多层请求下的鉴权状态串扰。
  • 修复深度归因分析中的指标对比符号与结果识别逻辑,减少指标涨跌方向、对比符号和归因数据判断不一致的问题。
  • 修复生成文件预览在全屏模式下弹窗被遮挡的问题,减少分享、操作类弹窗在预览页中的显示异常。
  • 修复 KPI 可视化组件的最小高度设置,减少卡片内容较少时的布局压缩问题。

迁移文件

如需同步本版本元数据调整,请下载迁移文件:migration-1779809381096.nbdata

使用指南见:版本更新指南

升级流程

  1. 上传迁移文件 migration-1779809381096.nbdata,等待迁移执行完成。
  2. 更新部署版本到 2.2.7。

出现错误时

  1. 【出现 invalid SQL 报错时】进入应用 container,重新执行 yarn nocobase upgrade
  2. 必要时,重启container,确认服务恢复正常。

升级补充

如果是从较老版本升级到 2.2.7,并且项目已经使用过 HTML 报告功能,需要额外做一次历史文件目录迁移。

原因是:

  • 新结构要求生成文件放在 storage/private/deepagent-workspace/<sessionId>/workspace/
  • 旧项目里部分历史 HTML 报告文件可能仍然直接放在 storage/private/deepagent-workspace/<sessionId>/

这种情况下,建议在容器内执行一次迁移脚本,把每个会话目录根下的文件移动到对应的 workspace/ 目录中。

不满足下面任一条件时,可以跳过:

  • 不是从老版本升级到 2.2.7
  • 项目没有使用过 HTML 报告功能

操作步骤

  1. 进入应用容器。
  2. 进入目录:
cd /app/nocobase/storage/private/deepagent-workspace
  1. 创建脚本 move-to-workspace.js
const fs = require("fs");
const path = require("path");

const currentDir = process.cwd();

function moveFilesToWorkspace() {
  const entries = fs.readdirSync(currentDir, { withFileTypes: true });

  for (const entry of entries) {
    // 只处理当前目录下的子目录
    if (!entry.isDirectory()) continue;

    const dirPath = path.join(currentDir, entry.name);
    const workspacePath = path.join(dirPath, "workspace");

    // 创建 workspace 目录
    if (!fs.existsSync(workspacePath)) {
      fs.mkdirSync(workspacePath);
      console.log(`创建目录: ${workspacePath}`);
    }

    const subEntries = fs.readdirSync(dirPath, { withFileTypes: true });

    for (const subEntry of subEntries) {
      // 跳过 workspace 自己
      if (subEntry.name === "workspace") continue;

      // 只移动文件,不移动子目录
      if (!subEntry.isFile()) continue;

      const oldPath = path.join(dirPath, subEntry.name);
      const newPath = path.join(workspacePath, subEntry.name);

      fs.renameSync(oldPath, newPath);
      console.log(`移动: ${oldPath} -> ${newPath}`);
    }
  }

  console.log("处理完成");
}

moveFilesToWorkspace();
  1. 执行脚本:
node move-to-workspace.js

脚本行为说明

  • 只处理 deepagent-workspace 目录下的一级子目录,也就是每个 <sessionId> 目录
  • 如果 <sessionId>/workspace/ 不存在,会先自动创建
  • 只移动 <sessionId> 根目录下的文件,不移动子目录
  • 已存在的 workspace/ 目录会被跳过,不会递归搬运它内部的内容