dsh-rea-agents:在 DeepSeek Harness 里固定版本运行 REA

前言

在 DSH 里接逆向分析能力,常见做法是直接 npx -y rea-agents@latest 拉起 MCP。每次会话都可能悄悄换到新版本,工具参数、Evidence 处理或默认值一变,你很难区分是目标变了还是工具变了;供应链上也没有「你点过才升级」这一层。对专门产出推理证据的工具链,「永远最新」往往不是合适的默认。

下面介绍社区插件 dsh-rea-agents(维护者 appthin):把 REA(rea-agents)钉在配置档里的确切版本,从那份副本启动 MCP(README 写明约 207 个逆向分析工具),只有你在插件卡片上按「更新」时版本才会前进。

这是什么

dsh-rea-agents 是 DeepSeek Harness 的 REA 集成插件,分类为模型推理。它不负责安装 Ghidra、jadx 等分析引擎,只负责:在当前 profile 内用 pnpm add rea-agents@<版本> --save-exact 固定依赖、在卡片上管理安装/更新/卸载,并通过 bundle patch 注册 rea-agents 与 rea-agents-mcp 两条 loader,让 MCP 子进程从磁盘上的固定副本启动,启动器不查 PATH、不联网。

插件当前 npm 版本为 1.0.8(见仓库 package.json)。目录页:skillhub.cn/plugins/appthin/dsh-rea-agents;源码:github.com/appthin/dsh-rea-agents。

核心功能

能力 说明
安装 REA 将 registry 当前版本精确写入 profile 的 package.json,并记录到 dsh-rea-agents/pin.json
检测最新版本 使用配置档自己的 registry(pnpm view),沿用你的 registry / 代理 / 认证
更新 一次 pnpm add 原地迁移到新版本,而非静默拉 @latest
卸载 REA 移除固定副本;卸载 DSH 插件本身不会删已装的 rea-agents,需先在卡片点「卸载 REA」
版本对照 并列展示当前版本、仓库最新、配置档声明与当前 Node
供应链观察期 若 pnpm minimumReleaseAge 拦下过新版本,卡片会说明实际装上的版本及原因;可对无关阻塞包做一次豁免重试,但绝不豁免 REA 自身

插件总开关是总闸:关闭会同时拿掉 MCP 服务与卡片上的 REA 区块,打开则恢复,一般无需重启 DSH。

版本与环境要求

  • DSH:>= 0.1.6-alpha.1 且 < 0.3.0(peerDependencies 已按预发布分支声明)。
  • 本插件 Node:>= 22.19.0。
  • rea-agents:自身声明 ^22.19.0 || ^24.11.0 || >=26.0.0;不匹配时安装前页面会提示。

安装与启用

先做插件安装,再在卡片上安装 REA 本体——两步不能混为一谈。

1. 安装 DSH 插件

Desktop:侧栏 插件 → 右上角 添加 → 填入来源后安装。Desktop 的 profile 由 Electron 独占,dsh plugin --profile desktop … 会被 CLI 拒绝,请在应用内安装。

web / tui 等 profile(命令行):

# npm 包(发布后可用)
dsh plugin --profile web add dsh-rea-agents

# GitHub 仓库
dsh plugin --profile web add github:<你的账号>/dsh-rea-agents

# 本地目录(link,适合开发调试)
dsh plugin --profile web add file:D:/path/to/dsh-rea-agents

装完后重启 dsh 或等待 profile 热重载,打开 插件 → dsh-rea-agents 查看卡片。

2. 在卡片上安装 REA

在 插件 → dsh-rea-agents 卡片上点 安装。插件会写入依赖并执行 pnpm add rea-agents@<版本> --save-exact。

若 pnpm 不在 PATH,可设置 DSH_PNPM_PATH 指向 pnpm 可执行文件。

3. 验证

卡片应出现「REA 版本」区块。若没有,按 README 建议顺序排查:

  1. dsh plugin --profile web ls 确认装进了正在使用的 profile;
  2. 重启一次 dsh;
  3. 访问 http://127.0.0.1:<端口>/rea-agents/diagnose,根据 graph.selfPresent、gates、selfRows 判断卡在哪一步。

确认 MCP 已注册到模型侧,可在 DSH 里让助手执行:

列出你的 mcp__rea__ 工具,调用 mcp__rea__binary_session,参数为空 {},看看返回什么。

能列出 mcp__rea__ 前缀工具且 binary_session 返回会话信息(而非「没有这个工具」),说明链路已通。

更新与卸载插件

dsh plugin --profile web ls
dsh plugin --profile web add dsh-rea-agents      # 更新插件本身
dsh plugin --profile web remove dsh-rea-agents   # 卸载插件

典型用法与引擎自备

REA 是适配层:缺引擎时对应工具会报 provider_unavailable,提示里会说明要设的环境变量。常见自备项包括 Ghidra 12.1.x + JDK 21+(或 IDA)、apktool、jadx、adb、tshark、sigrok-cli、binwalk/unblob、WABT 等。请在启动 DSH 之前 设好用户或系统环境变量,MCP 子进程继承 harness 进程环境(部分凭据形变量会被清洗,REA 相关路径变量不在清洗范围内)。

示例(PowerShell,路径按本机修改):

GHIDRA_INSTALL_DIR     = D:\tools\ghidra_12.1.4_PUBLIC
JAVA_HOME              = D:\tools\jdk-21
REA_JADX_MCP_JAR       = D:\tools\jadx-headless-mcp-0.7.1-all.jar
REA_APKTOOL_COMMAND    = D:\tools\apktool\apktool.cmd
REA_ADB_PATH           = D:\Android\Sdk\platform-tools\adb.exe
REA_TSHARK_COMMAND     = D:\tools\Wireshark\tshark.exe
REA_CAPINFOS_COMMAND   = D:\tools\Wireshark\capinfos.exe
REA_SIGROK_COMMAND     = D:\tools\sigrok\sigrok-cli.exe
REA_WABT_BIN_DIRECTORY = D:\tools\wabt\bin

装齐引擎后若仍不可用,需要重启 DSH(环境变量仅在启动时读取)。

安装 REA 时 pnpm 可能对可选依赖 frida 报 ERR_PNPM_IGNORED_BUILDS:包已装好、CLI 能启动,仅依赖 Frida 绑定的运行时插桩类工具不可用;插件以磁盘结果判断安装是否成功。

适用场景与注意

适合谁:需要在 DSH 对话里稳定使用 REA 逆向工具链、且希望版本可审计、可回退、可对比跨会话结果的安全研究或二进制分析工作流。

权限与安全:插件以当前 dsh 进程权限运行;loopback API 只响应本机请求。安装前请自行查看 源码与 MIT 许可证,并理解它只向 profile 添加 rea-agents 这一个依赖、不读写 cordis.patch.yml 补丁层(loader 条目由插件 bundle patch 提供)。

生态说明:DSH 社区插件目录(如 SkillHub)是独立站点,与 DeepSeek / 幻方无官方从属关系;本文介绍的是社区维护的集成方式,不是官方应用商店条目。

结尾

若你已经在用 rea-agents@latest 且从未遇到过版本漂移或供应链顾虑,可以继续沿用现有方式。若你希望「页面上看到的版本就是 MCP 将要启动的那一份」,且升级必须显式点击,dsh-rea-agents 把这件事做成了插件卡片上的固定流程。

  • 目录页:https://www.skillhub.cn/plugins/appthin/dsh-rea-agents
  • GitHub:https://github.com/appthin/dsh-rea-agents
羽毛球分组比赛记分
小程序二维码

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

Xiaoye