dsh-mp-automator

DSH PLUGIN视觉与多模态

仓库 VincentJiang06/dsh-mp-automator · npm dsh-mp-automator

视觉与多模态 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DSH plugin 让智能体驱动微信开发者工具中的真实小程序,通过八个 mp_* 工具实现选择器寻址、新鲜度门与几何断言,为纯文本模型提供可信的自动化测试。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 2 复刻 0 · 未关闭 issue 0
最近更新 2026-08-16 创建于 2026-08-16
README 12.2 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add dsh-mp-automator
兼容 DSH 版本0.2.0-rc.2 等 10 个版本版本不匹配时安装会报错
Node.js 要求>=20来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/dsh-attachment@>=0.1.0-rc.5、@deepseek-ai/dsh-llm@>=0.1.0-rc.5 等 5 个需要同时安装的同级依赖
npm 包名dsh-mp-automator可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-mp-automator:DeepSeek Harness 的微信小程序自动化测试插件

  • 驱动真实小程序
  • 八个 mp_* 工具
  • 选择器寻址防过期
  • 新鲜度门拦截旧构建
  • 双路径截图与图片经济

适用场景

视觉识别

上游标签

automation-testingdeepseek-harnessdsh-pluginwechat-miniprogram

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

视觉与多模态
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方VincentJiang06仓库 dsh-mp-automator · 默认分支 main
分类视觉与多模态vision
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue2 / 0 / 0收录时的数值,非实时
创建 / 更新2026-08-16 · 2026-08-16最后推送 2026-08-16
本站收录2026-08-27首次进入本站目录的时间

README 全文

12.2 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-mp-automator

微信小程序自动化测试 · DeepSeek Harness (dsh) 插件
WeChat Mini Program automated testing for dsh agents



让 dsh 智能体驱动微信开发者工具里真实运行的小程序:读页面、点元素、截图、看控制台。
你只需要在小程序项目目录里开一个 dsh 会话,然后用自然语言下测试任务:

> 你:测试首页的"立刻开始"按钮能进入扫码页
> agent:(mp_query 确认按钮可见 → mp_act 点击 → 验证路由已跳转 → mp_console 确认无报错)
> ✅ 按钮可见、可点、路由跳转正确、无控制台错误

Eight mp_* tools let a dsh agent drive a real Mini Program in WeChat DevTools.
The correctness discipline is built into the tools — not into prompts the
model may ignore.


目录 · Contents

  1. 工作原理 · How it works
  2. 快速开始 · Quick start
  3. 八个工具 · The eight tools
  4. 为什么可信:三种静默失败与对应的门 · Why trust it
  5. 截图:双路径与图片经济 · Screenshots
  6. 配置 · Configuration
  7. 配套技能 · Companion skill
  8. 排障 · Troubleshooting
  9. 设计笔记 · Design notes

1. 工作原理 · How it works

dsh agent(任意模型;视觉能力可选)
│
│  调用 mp_* 工具 —— 纪律层:新鲜度门、选择器寻址、字节预算、图片经济
▼
dsh-mp-automator(本插件)
│
│  驱动 vince-mp CLI —— 全 JSON 契约,首次调用协商版本 >=0.2.0 <0.3.0
▼
微信开发者工具 自动化端口
▼
你的小程序(真实运行时、真实 WXML)

分层职责 · Layering:vince-mp-cli
拥有自动化事实(DevTools 连接、元素解析、路径策略);本插件拥有面向智能体的纪律
(什么时候拒绝执行、输出多少字节、图片何时该进上下文)。The CLI owns automation
truth; this plugin owns agent-facing discipline.

2. 快速开始 · Quick start

前置 · Prerequisites:macOS ·
微信开发者工具
(在 设置 → 安全设置 里开启服务端口)· Node ≥ 20 · dsh ≥ 0.1.0-rc.5

# ① 安装本插件驱动的自动化 CLI(拥有 DevTools 连接)
npm i -g vince-mp-cli

# ② 把插件装进你的 dsh profile
dsh plugin --profile web add dsh-mp-automator
# ③ 在小程序项目目录里(有 project.config.json 的那层)开 dsh 会话
cd your-miniprogram-project && dsh

④ 直接下测试任务。其余 mp_ 工具会自动起会话;模型不需要任何前置仪式。
Open the session
inside the Mini Program project* — tools resolve the
project from the session's working directory — then just describe the test.

3. 八个工具 · The eight tools

工具 作用 · What it does
mp_session start / status / stop / restart / reconnect 持久 DevTools 会话(其余工具自动起会话,主要用 restart 自救)
mp_doctor 项目体检:DevTools cli、tsc --noEmit、编译产物新鲜度 —— 结果喂给新鲜度门
mp_inspect page / stack / data(+path) / sysinfo / snapshot(元素事实表)
mp_query 选择器 → 几何事实表:fully-visible / partial / offscreen / read-failed 标志 + 遮挡候选对,相对当前滚动窗口判定(披露 scrollTop=)
mp_act 按选择器执行 tap / input / longpress · 导航 nav / switchTab / reLaunch · 免摄像头 scan 注入
mp_screenshot PNG 落盘 captures/ + 几何事实表;视觉路由额外附真图;`` 永远写明发生了哪种(见 §5)
mp_console 报错优先,然后是最新的日志(自动翻到缓冲区尾部)
mp_eval 逃生舱:在页面 appservice VM 里执行 JS —— 受新鲜度门管,配置可一键关闭

所有结果自带字节上限且自包含——长测试会话经历上下文压缩后依然可读,不会烂成
"见上文"。Every result is byte-clamped and self-contained, so long sessions
survive context compaction.

4. 为什么可信:三种静默失败与对应的门 · Why trust it

用 LLM 测小程序会以三种安静的方式失败——每种都产出毫无意义的绿色结果。
本插件对每一种都有结构性回答,而不是提示词层面的叮嘱:

静默失败 · Silent failure 结构性回答 · Structural answer
uid 过期:DevTools 自动化层在重连/导航/快照/第二客户端接入时无声重编号元素 uid,重放旧 uid 会点到错误元素且不报错 选择器寻址 —— mp_act 在同一次独占调用内重新解析元素;uid 永不跨调用存活。Selector-addressed actions: no uid ever crosses a call boundary
构建过期:编译出的 .js 比 .ts 源码旧,所有断言跑在没人打算发布的代码上 新鲜度门(G1) —— 每次执行前跑真实的快速体检(实测 0.10–0.18s,无缓存窗口),产物过期直接拒绝;纯 JS 项目无从判断时如实警告而不是假装通过
看不见的截图:纯文本模型"截"了一张自己永远看不见的图,然后凭想象描述它 双路径 —— 每张截图都产出几何事实表(任何模型可用);视觉路由额外附真 PNG;`` 一行永远写明到底发生了哪种,模型无法假装看过图

失败时的输出也是纪律的一部分:每个 CLI 错误码都映射到下一步该做什么
(见 §8 排障),解析一律 fail-closed——只有严格的
ok === true 算成功。Failure output is part of the contract: every CLI error
code maps to a remedy, and parsing fails closed.

5. 截图:双路径与图片经济 · Screenshots

双路径 · Dual path — 每次 mp_screenshot:

  • 任何模型都拿到:PNG 落盘 + 几何事实表(元素、坐标、可见性标志)。
    纯文本路由(如 DeepSeek V4)额外得到一行明示:"图在磁盘、不在你的上下文"。
  • 视觉路由(provider 声明了 input: [text, image],模板见
    docs/PROVIDER-TEMPLATE.yaml)额外把真实
    PNG 作为 image block 附进上下文——已用 kimi-k2.7-code 实测从像素读出按钮文字
    与页面文案(证据)。

图片经济 · Image economy(0.3.0)— 视觉路由上每张附加的图片会在之后的每次
请求上持续计费
,所以附加是被预算管理的:

  • imageBudget(默认 3):每个会话最多附加 3 张——预算按会话对象隔离,
    多个会话共享插件实例也互不泄漏
  • sha256 去重:画面没变就不重复附加(免费,披露为"deliberate economy")
  • 预算耗尽是诚实的:超预算后照常给几何事实表 + 计费原因说明,绝不静默跳过
  • 实测全链路:attach → dedupe → attach → attach → exhausted,API 请求里恰好
    3 个 image block

已实测的边界 · A proven boundary:wx.showLoading / toast 这类原生浮层不进
DevTools 截图
(浮层前后 PNG 字节级相同)——不要用截图断言 toast 出现过,
配套技能会教模型这条。

6. 配置 · Configuration

# 你的 profile 的 cordis.patch.yml 里
- id: mp-automator
config:
freshnessMode: block   # block(默认) | warn | off —— 新鲜度门行为
enableEval: true       # mp_eval 逃生舱开关
imageBudget: 3         # 每会话最多附加的截图数(视觉路由);0 = 完全禁用附图
screenshotDir: captures  # 截图落盘目录(项目内相对路径)
binPath: vince-mp      # CLI 不在 PATH 上时给绝对路径
键 默认 说明
freshnessMode block block 产物过期拒绝执行;warn 只警告;off 完全关闭(不跑体检进程)
enableEval true 关掉后 mp_eval 拒绝一切调用
imageBudget 3 钳制为非负整数;0 显式禁用附图
screenshotDir captures 始终被约束在项目目录内
binPath vince-mp 版本窗口 >=0.2.0 <0.3.0,窗口外拒绝并给升级指引

7. 配套技能 · Companion skill

skill/mp-testing/SKILL.md 是判断力层:
inspect→act→verify 三拍节奏、选择器纪律、断言配方(fully-visible 才算可见、
partial 不算)、截图经济纪律、诚实的 mp_eval 边界。装进 dsh 读取的任意
skill 根即可——没有它工具照常能用,但测试的质量来自打法。
Tools carry capability and gates; the skill carries judgment.

8. 排障 · Troubleshooting

工具的错误输出自带 remedy 行,下面是最常见的几条 · Most-seen failures and
their built-in remedies:

错误码 含义 → 该做什么
AUTOMATION_PORT_TIMEOUT 自动化端口没开 → 开发者工具 设置→安全设置 开启服务端口,然后 mp_session restart
APP_NOT_RUNNING 小程序没在模拟器里跑 → 先看 DevTools 控制台有没有编译错误,不要盲目重试
STEP_TIMEOUT 单步超时 → mp_session restart;若只有截图反复超时,是 DevTools 渲染进程卡死(实测存在)→ 退出重启开发者工具本体
NOT_INSTALLED 缺 CLI → npm i -g vince-mp-cli
NO_PROJECT_CWD / INVALID_PROJECT 会话不在小程序项目目录里 → 到有 project.config.json 的目录重开会话
门拒绝:stale 编译产物比源码旧 → 重新编译(或等 DevTools 编译完)再测;不要为了绿而把门关掉

9. 设计笔记 · Design notes

本插件经对抗性迭代产出:五透镜攻击电池(外加跨厂商 DeepSeek 攻击手)击穿第一版
设计(9 个 P1、四个根因),重铸后的版本用结构性设计消灭根因;每个版本发布前由
独立审查 + fix-audit 双重把关。完整台账、红→绿测试证据与四路由真机测试矩阵见
docs/(未打进 npm 包)。Built by adversarial iteration; the full
ledger and live-test matrix live in the repo.

四个结构性决策 · Four structural decisions:

  1. 不镜像共享状态,改寻址模型 —— uid 表归 daemon 所有且会不可见地重编号,
    插件侧任何计数器都必输;所以让选择器成为唯一句柄。
  2. 处处 fail closed —— 只有严格 ok === true 算成功;缺失的体检文档导致
    拒绝,而不是假定通过。
  3. stderr 是契约的另一半 —— CLI 把抛出的错误打到 stderr,两条流都要解析。
  4. 预算写进代码 —— 字节上限、行数上限、图片预算全部是代码里的钳制 +
    显式披露,不是文档里的承诺。

状态归属准则(0.3.0 审查沉淀):项目属性按项目键控(新鲜度、类型检查),
上下文属性按会话键控(图片预算)
——键选错一个维度,正确的缓存就变成跨会话
的谎言。State keyed by what it is a property OF: the project, or the session.

License

MIT © Vincent Jiang

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-mp-automator 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add dsh-mp-automator` 即可。对应的 npm 包名是 `dsh-mp-automator`。

dsh-mp-automator 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-mp-automator 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-mp-automator 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.1.7-rc.2、0.1.7-alpha.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2、0.1.3-alpha.1。版本较多,只列出前 8 个。

dsh-mp-automator 需要什么运行环境?

Node.js >=20;需要同时安装 @deepseek-ai/dsh-attachment@>=0.1.0-rc.5、@deepseek-ai/dsh-llm@>=0.1.0-rc.5、@deepseek-ai/dsh-subprocess@>=0.1.0-rc.5、@deepseek-ai/dsh-tools@>=0.1.0-rc.5、@deepseek-ai/schemastery@>=3.18.0。环境不满足时安装会失败,建议先确认本机版本。

dsh-mp-automator 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-mp-automator 有哪些功能?

驱动真实小程序、八个 mp_* 工具、选择器寻址防过期、新鲜度门拦截旧构建、双路径截图与图片经济。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

视觉与多模态
按星标排序,可作替代方案

open-design

open-design

L4 · 沙盒安装通过 10.0 万 星

awesome-gpt-image-2

awesome-gpt-image-2

GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+ 套工业级模板与可复用 Skills,新增 2.5 同提示词对比

L3 · 安装规范通过 3.4 万 星

PicGo

PicGo

L3 · 安装规范通过 2.7 万 星

iPolloWork

iPolloWork

L4 · 沙盒安装通过 6,775 星

modlens

modlens

ModLens 是 DeepSeek Harness 的视觉插件,为纯文本模型外挂视觉能力,粘贴图片即得结构化 JSON 证据(OCR、版面

L5 · 运行验证通过 4,207 星

OpenBiliClaw

OpenBiliClaw

本地私有、开源的自进化跨平台 AI 内容发现 Agent:先理解你,再主动从 B站、小红书、抖音、YouTube、X、知乎、Reddit、微

L4 · 沙盒安装通过 3,398 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。