nyantused-cpun / gewu-tools

Listed

格物审视面:让 DSH 无视觉模型经视觉子代理完成视觉检验。Model-agnostic visual-inspection pipeline for DSH: HTML screenshots + vision-subagent briefing + source-code truth verification. Install: npm i gewu-tools

mainModelTool View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:nyantused-cpun/gewu-tools

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit d2ebc98Synced Aug 18, 2026

格物 gewu-tools

npm License: MIT GitHub release

格物审视面:让 DSH 中无视觉能力的模型,通过视觉子代理完成需要「亲眼检查」的任务。

格物:《大学》「格物致知,考察事物而后知」——先把东西看仔细,再下结论。 English: README.en.md

快速安装(npm)

npm i gewu-tools
pwsh node_modules\gewu-tools\scripts\install-gewu-plugins.ps1 -Install   # 挂载进 DSH(幂等)
# 或使用 DSH 插件管理器直接安装(需要 dsh.bundle manifest;安装后同样重启会话)
dsh plugin add gewu-tools
# 重启 DSH 会话后 gewu_prep / gewu_locate 即出现在工具目录;-Verify 四绿即安装成功
# 可选:注入自定义规范 preset(默认 community 零注入;也可用环境变量 GEWU_BRIEF_PRESET 指定)
pwsh gewu\scripts\install-gewu-plugins.ps1 -Install -Preset <preset文件路径>

它解决什么问题

DSH 的会话主脑通常是纯文本模型——它读不了渲染出来的页面,自然回答不了「这页方案好不好看、挤不挤、图连对没有」。视觉子代理(如 subagent_vision,mimo-v2.5 等)看得见,但有两个短板:

  1. 没有会话上下文:它不知道客户铁律、业务标记语义(比如 ⭐ 是「核心能力」不是装饰 emoji),会把有意设计误报成缺陷;
  2. 会看错:OCR 级误读(字认错)、页码归属被截图边界带偏。

格物把 2026-08-16 在 24 页售前方案上实测收敛的三步流水线做成两个工具:

① gewu_prep    截图 + 简报:HTML 逐页渲染 PNG,并生成一份完整的视觉子代理简报契约
               (纪律声明 / 伪影声明 / 页码归属规则 / 输出要求)
② 视觉子代理   派发:把 briefing 全文作为 prompt 调 DSH 原生视觉子代理(subagent_vision 等)
③ gewu_locate  真值核验:把审阅发现中的文字/数字定位回 HTML 源码(页码 + 行号),
               count=0 即 OCR 误读,不采信

实测收益:误报率显著下降(简报提供上下文)、关键数字零差错上会(源码核验)、整稿叙事线/密度/跨页一致性可审(子代理多图能力)。

模型无关性声明

本插件在视觉子代理 mimo-v2.5(稳)qwen3.7-plus(洞察强、误报略多) 上实测验证。实测结论:模型档位不决定审阅结果的可信度——

  • **简报契约(上下文)**消除无上下文误报:例如把业务标记 ⭐(核心能力)误判为装饰 emoji,实测在无简报的插件模式下系统性发生;
  • **真值核验闭环(gewu_locate)**把 OCR 误读与页码偏移挡在采信之外:实测 qwen3.7-plus 的 3 个核心新论断中 2.5 个经不起源码核验,全部被核验环节拦截。

档位差异只体现在审阅风格(高挡洞察更锐、稳挡结论更保守),不体现在结果对错上。无论接入何种档位的视觉模型,本流水线产出均可信、可审计——这也是格物把「核验」固化为流水线第三步的原因。

安装

前置:Windows + Chrome/Edge + Node 24+(仅脚本验证用)。

方式一:npm(推荐,一行安装 + 一行挂载)

npm i gewu-tools
pwsh node_modules\gewu-tools\scripts\install-gewu-plugins.ps1 -Install
# 或使用 DSH 插件管理器直接安装(需要 dsh.bundle manifest)
dsh plugin add gewu-tools
# 可选:注入自定义规范 preset(默认 community 零注入;也可用环境变量 GEWU_BRIEF_PRESET 指定)
pwsh node_modules\gewu-tools\scripts\install-gewu-plugins.ps1 -Install -Preset <preset文件路径>

方式二:社区通道(若已接入 awesome-dsh-plugins 生态)

pwsh <workspace>\.dsh\setup\install-community-plugins.ps1 -Install

方式三:独立脚本(随项目分发)

pwsh gewu\scripts\install-gewu-plugins.ps1 -Install    # 幂等
pwsh gewu\scripts\install-gewu-plugins.ps1 -Verify     # 只验证
pwsh gewu\scripts\install-gewu-plugins.ps1 -Uninstall  # 卸载
pwsh gewu\scripts\install-gewu-plugins.ps1 -Install -Preset <preset文件路径>  # 可选:注入自定义规范

-Preset 指定自定义规范 preset(默认 community 零注入;也可用环境变量 GEWU_BRIEF_PRESET 指定)。

安装脚本做的事:在 DSH 的 agent preset(默认 pre-sales,可用环境变量 GEWU_PRESET 覆盖)里追加 gewu-tools 挂载行,指向 <workspace>\.dsh\gewu-tools(安装位,项目目录的 Junction)。

安装后必须重启 DSH 会话(host 插件无热更新)。验证:install-gewu-plugins.ps1 -Verify 应四绿(preset 挂载行 / junction 链 / import 加载 / preset 预设加载)。

使用(主代理视角)

1. gewu_prep(html_path="output\<客户>\<客户>_方案_vN.html",
             client="<客户>",
             background="<项目定位/关键决策/业务标记语义,如 ⭐=核心能力>")
   → 返回 { pages: [...], briefing: "..." }

2. 把 briefing 全文作为 prompt 调视觉子代理(subagent_vision):
   → 逐页问题清单 + 整体结论

3. 对每条关键发现调 gewu_locate(html_path=..., needle=<发现中的文字/数字>)
   → 页码 + 行号;count=0 说明视觉模型 OCR 误读,该发现不采信

gewu_prep 参数

参数说明
html_path方案 HTML 路径(必填)
client / background写入简报的客户名与背景(强烈建议提供,上下文决定审阅质量下限)
focus关注问题清单(默认:版式/规范一致性/密度/图表可读性/核心论断/跨页一致性)
out_dir截图输出目录(默认 <工作区>/_tmp_vision_test/<文件名>_shots
width / height视口尺寸(默认 1280x900)
nav_offsetsticky 顶导航偏移(默认 64,无 sticky 导航设 0)

gewu_locate 参数html_pathneedle(待核验文字/数字)、max_matches(默认 8)。

自定义规范注入(preset)

preset 是格物的扩展点:你可以把自己的设计规范、验收标准写成一份 preset 文件,注入到 gewu_prep 生成的简报里,让视觉子代理按同一把尺子审阅你的页面。默认使用内置 community preset(零注入,保持与 1.0.0 一致的社区基线)。

字段类型说明
namestring非空字符串,preset 名称
versionstring非空字符串,preset 版本
defaultFocusstring | null覆盖默认关注问题清单;传 null 使用内置默认
sectionsstring[]注入简报正文的规范/验收标准段落;单段 ≤ 2000 字,总长 ≤ 8000 字
dispatchHintsstring | null调度提示(例如建议一次吃多少页);可空
requiresobject预留扩展依赖声明;非法对象会导致降级

最小示例 brief-preset.js

export default {
  name: "my-design-standard",
  version: "1.0.0",
  defaultFocus: "版式一致性、信息密度、图表可读性",
  sections: [
    "视觉规范:主色 #123456,标题左对齐,卡片间距 24px。",
    "验收标准:每页必须有一条核心论断,核心数据需与业务标记语义一致。"
  ],
  dispatchHints: null,
  requires: {}
};

preset 文件非法时(非对象、缺少 name/version、字段类型不符、sections 超长等),格物自动回退 community,并在 gewu_prep 返回 preset_degraded: truepreset_error 说明原因。

CLI 用法(跨宿主)

index.js 可脱离 DSH 独立运行;无 DSH 宿主(Trae/Codex/Kimi 等)可经此 CLI 获得与插件同源的截图+简报+核验产物。

# 截图 + 简报(与 gewu_prep 同源)
node gewu\index.js --prep <html> [--client <客户>] [--background "..."] [--focus "..."] [--out-dir <dir>] [--width <n>] [--height <n>] [--nav-offset <n>]

# 真值核验(与 gewu_locate 同源)
node gewu\index.js --locate <html> --needle "<文本/数字>" [--max-matches <n>]

# 冒烟别名(旧位置参数,等同快速自检)
node gewu\index.js <html> [outDir]

产物:--prep--out-dir(默认 _tmp_vision_test/<文件名>_shots)写 prep_result.json + briefing.txt--locate_tmp_vision_test/<文件名>_locate/locate_result.json

退出码:0 成功;1 业务失败(HTML 不存在、截图失败等);2 参数错误。

工作原理

  • 截图:读 HTML 的 <section> 锚点(优先 v2-page 类),逐页用 headless Chrome 视口截图;sticky 导航经 iframe 上移推出画面;无锚点自动降级整页长截图。宿主进程直起 Chrome——不受 DSH 受限沙箱对子进程命名管道的限制。
  • 简报契约(内置在 briefing 里,实测三坑的对应解法):
    • 纪律声明:子代理跳过入口协议、不向用户提问、用 read_image 读图(防卡死);
    • 伪影声明:固定视口截图会串页,底部出现下一节标题是截图伪影不是设计问题;页码归属按「视口内下一节内容归下一页」;
    • 输出要求:逐页「页码|问题|严重度|修改建议」,只报可见问题。
  • 真值核验needle 在源码中逐次定位,返回所在 section 页码 + 行号 + 脱标签摘录。

测试

# 冒烟(不经 DSH,直接跑核心逻辑):需 Chrome + node
node gewu\index.js <任意带锚点的 HTML 路径> [输出目录]
# 预期:mode=anchors ok=true pages=N failed=-

目录结构

gewu/
├── index.js                # 插件本体(cordis + defineTool,含 standalone CLI 入口)
├── package.json            # gewu-tools(dsh.bundle manifest)
├── cordis.patch.yml        # dsh plugin add 装配补丁
├── presets/                # 内置 community preset 与 preset 契约
├── README.md / README.en.md
├── CHANGELOG.md
├── LICENSE                 # MIT
├── docs/TESTING.md         # 实测方法与结论摘要
└── scripts/install-gewu-plugins.ps1   # 安装脚本(Install/Verify/Uninstall/DryRun)

兼容性

  • DSH 0.1.0-rc.6(cordis 插件 + defineTool 接口)
  • 依赖:仅 @deepseek-ai/dsh-tools(peer,经工作区 AiBridge 解析)
  • 浏览器:自动探测 Chrome/Edge(Program Files / LocalAppData),无需配置

友情链接

以下项目与格物生态互补,欢迎关注。

维护与许可

  • 版本:1.1.0(2026-08-17);变更见 CHANGELOG.md
  • 许可证:MIT
  • 临时文件:wrapper 与 Chrome profile 自动清理

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

DocumentationDetected

Repository information

Language
JavaScript
License
MIT
Latest release
v1.0.0
Last updated
Aug 18, 2026, 8:13 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.