前言¶
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