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
羽毛球分组比赛记分
小程序二维码

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

小夜