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