ue-log-reader:DeepSeek Harness UE 日志速读插件

前言

DeepSeek Harness(DSH)采用“一切皆插件”的理念,将特定能力以模块形式挂载到推理流程中。在 Unreal Engine(UE)开发中,Saved/Logs 目录下的日志文件往往体积庞大,包含海量冗余信息。ue-log-reader 是一个由 Reseezhang 维护的 DSH 插件,属于模型推理类别。它通过模型调用 uelog 工具扫描日志文件,进行流式解析和聚合去重,最终渲染成速读卡片,并提供一键复制缺陷单摘要的功能,旨在解决日志分析繁琐的问题。

核心功能

插件提供以下能力:

  1. 流式解析与去重:支持流式逐行解析日志(可处理数百 MB 文件),默认只解析尾部 200MB 以控制资源占用。按“类别 + 归一化消息”聚合去重,将重复刷屏的错误合并为一条记录。
  2. 崩溃提取:自动提取崩溃原因、前 10 帧堆栈信息以及引擎版本。
  3. 速读卡片渲染:在 DSH 界面上渲染速读卡片,包含文件头信息(名称、体积、时间跨度)、统计色块(Fatal/Error/Ensure/Warn,支持点击筛选)、Top 问题列表(悬停显示原文)以及可折叠的崩溃详情。
  4. 缺陷单生成:提供“复制缺陷摘要”按钮,一键生成纯文本缺陷单(含版本、时间、崩溃原因、堆栈、高频问题)。
  5. 格式兼容:支持标准 UE 日志格式与 Android adb logcat 格式。
  6. 安全校验:显式路径必须落在 projectRoot/logRoots 内(含 URL 编码变体校验);所有操作为只读,确保不会修改日志目录。

安装与启用

插件依赖 DeepSeek Harness 桌面版 2.x(Web profile 亦可)。安装方式如下:

方式 A:一键安装脚本(推荐)

在仓库根目录执行:

powershell -ExecutionPolicy Bypass -File install-uelog.ps1

方式 B:手动复制

  1. 将 ue-log-reader 目录复制到目标 profile 的 node_modules/。
  2. 在 profile 的 package.json 的 dsh.profile.bundles 中追加 "ue-log-reader"。
  3. 重启 DeepSeek Harness。

方式 C:作为依赖安装

在 package.json 中配置依赖并注册 bundle:

{
  "dependencies": {
    "ue-log-reader": "github:Reseezhang/ue-log-reader"
  },
  "dsh": {
    "profile": {
      "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "ue-log-reader"]
    }
  }
}

配置

默认配置位于 lib/index.js 的 DEFAULTS。可在 profile 级 cordis.patch.yml 中覆盖:

- id: ue-log-reader
  config:
    projectRoot: "D:/Projects/MyGame"   # UE 项目根目录(必配;缺省退回工作区根)
    logRoots: []                        # 额外允许的日志根目录(如 adb 拉取的真机日志目录)
    maxBytes: 209715200                 # 单文件扫描上限(默认 200MB,超过只解析尾部)
    maxTopIssues: 15                    # Top 问题列表上限
    scanRateMax: 6                      # 扫描全局限流(10s 窗口内最大次数)

使用

  1. 重启 DeepSeek Harness。
  2. 在对话中输入指令,例如“分析一下日志”或“刚闪退了,看看日志”。
  3. 模型自动调用 uelog 工具扫描 Saved/Logs/ 下的最新日志(或指定显式路径)。
  4. 速读卡片会出现在 uelog 工具调用节点上,展示统计信息和崩溃详情。
  5. 点击卡片上的“复制缺陷摘要”生成缺陷单文本,或点击“打开日志目录”定位文件。

真机日志支持

插件支持解析 adb logcat 输出。对于真机日志:
1. 使用 adb logcat -d > device.log 导出日志到文件。
2. 将文件放入 Saved/Logs/ 或配置 logRoots 指向的目录。
3. 在对话中请求分析,卡片头会显示 logcat 徽标。

插件会自动识别 Fatal signal 崩溃块并提取堆栈。对于真机 release 包的内存地址堆栈,符号化(转成函数名)需匹配构建的符号表,当前版本仅显示地址帧。

注意事项

  • 前置版本:需要 DeepSeek Harness 桌面版 2.x。
  • 零依赖:解析逻辑使用 Node.js 内置模块,无需额外安装依赖。
  • 安全与权限:插件以当前 DSH 进程权限运行,安装前应检查源码。默认只读操作,路径必须受控。
  • 许可证:采用 MIT 许可证。

短结尾

ue-log-reader 将 UE 日志的复杂解析过程封装为模型工具调用,通过可视化的速读卡片降低了开发者的排查成本。该插件适合需要在 DSH 流程中快速定位 UE 崩溃或性能问题的开发者。项目地址见 GitHub。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜