dsh-vista:给 DeepSeek Harness 带来可寻址的视觉记忆

前言

DeepSeek Harness(DSH)的 agent 经常要处理截图、图表和渲染后的页面。真正重要的那张图,往往在下一次工具调用或上下文压缩之后就消失了。重新截图既昂贵又有损,而且屏幕已经变了;你需要的往往是三步之前那张图。dsh-vista 把 agent 见过的每一张图保存进一个可寻址的归档,并提供三个工具让它随时回去查看。

是什么

dsh-vista 是一个 DSH 记忆类插件,由 ZhangShurong 维护。它基于 MIT 的 VISTA 论文(Han 等人,2024)实现,将「无损视觉记忆、主动视觉检视、精确像素读取」这些核心思想带入 DeepSeek Harness。它不是 VISTA 官方实现,而是面向 DSH 的原生适配。

核心功能

1. 自动归档与标记

每一张送到模型面前的图像都会自动带上一个稳定的 id,格式如下:

<visual id="v12" source="tool:read_image" size="1280x720"></visual>

即使原图已经掉出上下文窗口,模型之后仍然可以引用 v12。

2. inspect

选择一个已归档的 visual 和可选区域;从原图裁剪,并用最近邻插值放大。

输出:图像块。

3. read_pixels

把区域划分成等分的行和列,采样每个格子中心像素。输出:调色板 + 符号行。

注意:read_pixels 只测量,不做对齐、变换或解释像素。

4. visuals

列出最近的 visual,包含 id、来源、尺寸和时间戳。

输出:JSON。

安装与启用

通过 npm 安装:

dsh plugin --profile web add dsh-vista

或锁定版本:

dsh plugin --profile web add dsh-vista@0.1.3

从 GitHub 源码安装:

dsh plugin --profile web add github:ZhangShurong/dsh-vista#v0.1.3

安装后验证:

dsh --profile web --dump-config | grep dsh-vista
dsh --profile web

典型用法

inspect 示例

{
  "question": "点击之后按钮移动了吗?",
  "views": [
    {
      "label": "点击前的按钮",
      "visual": "v11",
      "region": { "x": 1180, "y": 40, "width": 100, "height": 60 }
    }
  ]
}

read_pixels 示例

{
  "palette": { "0": "#FF0000", "1": "#0000FF" },
  "views": [
    { "label": "quadrant", "visual": "v1", "rows": 2, "columns": 2, "samples": ["01", "11"] }
  ]
}

工作原理

tool result / attachment
        │
        ▼
tools/post-execute ──► archive bytes, assign vN, prepend <visual id="vN">
        │
        ▼
     model sees: <visual id="v12" ...></visual>  [image]
        │
        ├── inspect(v12, region)      ──► cropped + enlarged image
        ├── read_pixels(v12, region)  ──► palette + symbol rows
        └── visuals()                 ──► index of previous images

归档是内容寻址且仅追加的(index.jsonl 加上 archiveDir 下的文件)。DSH 的附件服务仍然拥有到达模型的图像;dsh-vista 保存第二份副本,让 visual ids 在压缩和图像卸载后仍然存活。

配置

默认值在 src/config.ts 中。在 bundle 行或 profile patch 中覆盖:

- id: dsh-vista
  config:
    archiveDir: /home/me/.dsh/dsh-vista/archive
    displaySize: 1024
    maxInspectViews: 8
    maxPixelViews: 16
    maxPixelSamples: 4096
    annotate: true
    retentionDays: 7

字段说明:

字段 默认值 含义
archiveDir $DSH_HOME/dsh-vista/archive 字节存储和 index.jsonl。
displaySize 1024 inspected crop 的最长边。
maxInspectViews 8 每次 inspect 调用的视图数。
maxPixelViews 16 每次 read_pixels 调用的视图数。
maxPixelSamples 4096 每次 read_pixels 调用的总采样数。
annotate true 在每个归档图像前插入 <visual id="...">。
retentionDays 7 删除更旧的归档 visual;0 永久保留。

适用场景与注意

适合有视觉检视需求的 DSH agent:需要对比历史截图、读取精确像素颜色、在压缩/卸载后仍能访问图像的场景。

注意:插件以当前 dsh 进程权限运行。安装前应检查源码与许可证。

生态背景

DeepSeek Harness 理念是「一切皆插件」。社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

短结尾

dsh-vista 解决了视觉记忆在 DSH 中易丢失的问题,通过归档和三个检视工具让历史图像始终可寻址。目录页与源码见下方。

参考资料

  • GitHub:https://github.com/ZhangShurong/dsh-vista
  • 目录页:https://www.skillhub.cn/plugins/ZhangShurong/dsh-vista
  • VISTA 论文:https://arxiv.org/abs/2610.02200
  • VISTA 代码:https://github.com/joshhhhhan/VISTA
羽毛球分组比赛记分
小程序二维码

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

Xiaoye