按哈希存取图片,精确读像素并找回历史画面
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/20 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add xiciyang/dsh-visual-memory该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 12 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令
查看扫描证据(共 2 处,展示前 2 条)
- 执行外部命令固定命令lib/index.mjs:181
const child = execFile('python3', [IMAGING], { maxBuffer: 32 * 1024 * 1024 }, (error, stdout, stderr) => { - 执行外部命令固定命令verify.mjs:43
const stdout = execFileSync('python3', [IMAGING], { input: JSON.stringify(request), maxBuffer: 32 * 1024 * 1024 })
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
为 DSH 智能体提供无损视觉记忆:图片只存一次,按 sha256 寻址,读取精确像素,对比历史帧,按文本、标签或轮次召回,全程不引入第二个视觉模型。
README
由 DeepSeek 最新模型翻译生成dsh-visual-memory
给 DSH agent 的无损视觉记忆:图存一次,之后每个问题都从原始字节回答——像素精确、帧可重放、可按文字/标签/sha256/轮次/近似重复找回,不经过第二个视觉模型的转述。
存一次,读得准,找得回
DSH 0.2.0-rc.2 · Node >= 22 · MIT · node verify.mjs 17/17
安装
推荐:直接锁仓库,任何 registry 镜像下都成立
dsh plugin --profile <name> add github:xiciyang/dsh-visual-memory
npm(registry.npmjs.org)短命令
dsh plugin --profile <name> add @xiciyang/dsh-visual-memory
dsh --profile <name> --dump-config # 应出现 "# == @xiciyang/dsh-visual-memory" 这一层
装的时候报 0.0.0-stage?
展开完整文档(README 剩余 1 节)
dsh-visual-memory
给 DSH agent 的无损视觉记忆:图存一次,之后每个问题都从原始字节回答——像素精确、帧可重放、可按文字/标签/sha256/轮次/近似重复找回,不经过第二个视觉模型的转述。
存一次,读得准,找得回
DSH 0.2.0-rc.2 · Node >= 22 · MIT · node verify.mjs 17/17
安装
推荐:直接锁仓库,任何 registry 镜像下都成立
dsh plugin --profile <name> add github:xiciyang/dsh-visual-memory
npm(registry.npmjs.org)短命令
dsh plugin --profile <name> add @xiciyang/dsh-visual-memory
dsh --profile <name> --dump-config # 应出现 "# == @xiciyang/dsh-visual-memory" 这一层
装的时候报 0.0.0-stage? 那是 pnpm 的元数据缓存过期(首次 staged 发布留下的占位版本被缓存了),不是包坏了:pnpm store prune,或删掉 ~/.cache/pnpm//metadata/<registry>/dsh-visual-memory.jsonl 再装即可。
当前版本用 npm view @xiciyang/dsh-visual-memory version 查。
一个 bundle 层、七个工具。卸载:dsh plugin --profile <name> remove @xiciyang/dsh-visual-memory。
从本地源码装:
git clone https://github.com/xiciyang/dsh-visual-memory
dsh plugin --profile <name> add ./dsh-visual-memory
30 秒判断它是否适合你
| 你要做的事 | 用这个 | 而不是 |
| 读某个历史截图里某一格的精确颜色 | visual_read_pixels | 让视觉模型"再看一眼"然后信它编的 hex |
| 对比两个 UI 状态 / 重放某一帧 | visual_inspect、visual_compare | 每轮都重新上传两张图 |
| 找回第 40 轮见过的那张图 | visual_recall(文字/标签/sha256/轮次/dHash) | 往回翻对话 |
| 原样保存一张截图(不改一个字节) | visual_remember(逐字节、内容寻址) | base64 塞进文本记忆 |
不适合:你要的是云端图床(这里是本地文件)、Android(像素引擎会起 python3)、或者只是一次性"描述这张图"——DSH 原生图片输入已经覆盖。
为什么不是"又一个记忆插件"
文本记忆存的是描述,这里存的是原始字节:原文件逐字节落盘、按 sha256 内容寻址,之后所有问题都从原图回答,而不是从视觉模型的转述回答。两个直接后果:
- 像素是准的。visual_read_pixels 返回每个格子的 #rrggbb,不会像视觉模型那样四舍五入;
- 换模型不改答案。同一条记忆在任何路由下都可复现,因为证据是文件本身。
安装
从公开仓库装(npm 发布待完成)
dsh plugin --profile <name> add github:xiciyang/dsh-visual-memory
dsh --profile <name> --dump-config # 应出现 "# == @xiciyang/dsh-visual-memory" 这一层
从本地源码装:
git clone https://github.com/xiciyang/dsh-visual-memory
dsh plugin --profile <name> add ./dsh-visual-memory
快速开始
// 1. 把当前看到的图存下来,并让它可检索
visual_remember({ path: "./shot.png", text: "结算页,¥199,两个按钮", tags: ["ui","checkout"] })
// 2. 之后不用重新上传,直接找回来
visual_recall({ query: "结算" }) // 也支持 sha256 / id / tags / 轮次区间 / 近似重复
// 3. 精确读某几个格子的颜色
visual_read_pixels({ id: "VM-…", region: "120,40,200,80", rows: 2, cols: 4 })
// 4. 把过去多帧裁到指定区域、放大、拼成一张带标签的对比图
visual_inspect({ views: [{ id: "VM-…", region: "0,0,800,600" }, { id: "VM-…" }], layout: "side-by-side" })
运行要求
- DSH 0.2.0-rc.2(engines.dsh: ">=0.2.0 <0.3.0");包内声明 dsh.bundle.patch,dsh plugin add 才会激活这一层。
- Node.js ≥ 22。
- Python 3 + Pillow(python3 -m pip install pillow):像素引擎 lib/imaging.py 是子进程,插件不自带图像编解码。
- 仅限桌面 / 服务器:像素引擎 spawn python3,Android 暂不支持(dsh-plugin-lint 报 A2-subprocess-tool)。纯 JS 后备是下一步。
- 观测路径需要声明了 image 输入的模型路由;插件不假设,而是探测实时路由(visual_memory_status.routeCapability)。
纯文本路由下图片照样存储,可通过 DSH 输出的 sha256:xxxxxxxx 句柄找回。
配置
没有配置文件——三个位置由宿主约定决定,改工作区即可改存储根:
| 内容 | 位置 | 说明 |
| 记忆库 | <会话工作区>/.dsh-visual-memory/ | 每个工作区一套,index.jsonl 追加式 |
| 库注册表 | $DSH_HOME/visual-memory-roots.json | gallery 路由用;最近 20 个工作区 |
| 原图 | $DSH_HOME/attachments/v1/files/<sha>/ | 逐字节、内容寻址,不随索引删除 |
要换存储位置,换会话工作区;要清空记忆,删 .dsh-visual-memory/(原图仍在 attachments,可回收)。
兼容性
| DSH | 状态 |
| 0.2.0-rc.2 | 2026-10-17 验证通过:node verify.mjs 17/17,真实工具端到端调用 |
| < 0.2.0 | 未测试;engines.dsh 会拒绝安装 |
| ≥ 0.3.0 | 未测试;要放宽版本范围,先在该版本上跑一遍 npm test |
验证
npm test # = node verify.mjs
node verify.mjs # 17 项检查,不需要启动 DSH 进程
覆盖:加载器强制的 bundle 契约、重启后仍生效的 profile 接线、用已知颜色夹具验证像素引擎(probe / read_pixels / crop / compose / overlay)、曾经把工具打挂的 lossless-JSON 不变量、以及把每张已存原图重新哈希对齐 sha256。
它不声称覆盖宿主侧路径(ctx.attachments、ctx.fs、ctx.tools)——那部分靠真实调用工具验证。
能力对照(对标 VISTA)
| VISTA harness 组件 | 本插件 |
| 视觉观测(模型收到像素) | DSH 原生多模态输入 read_image;路由声明的模态是探测出来的,不是假设的 |
| 无损视觉记忆(原始形态,按 turn/frame 索引) | visual_remember → ctx.attachments.saveFile 逐字节存储(内容寻址、不重编码)+ 追加式索引(turn/step/seq/sha256/dHash/尺寸/tags/text) |
| 主动检索过去的观测 | visual_recall:query / id / sha256 前缀 / tags / 轮次区间 / 时间序 / 感知近似 |
| 空间上的视觉检查(原图任意区域放大) | visual_inspect 的 region + scale;临时裁剪交给 vision_crop |
| 跨时间的视觉检查(多帧一次取) | visual_inspect 把 N 张存档观测拼成一张带标签的图 |
| 状态对比 / 回放 | visual_compare(并排 / 网格 / 堆叠) |
| 精确像素(VISTA 的 read_pixels) | visual_read_pixels:rows×cols 的 #rrggbb 中心读数矩阵 |
| —(混合路由,论文没有) | visual_memory_status.routeCapability 解析实时路由并报告 nativeImageInput |
工具
| 工具 | 回答什么 |
| visual_remember | 把这张图无损存下来,并让它可被找到 |
| visual_recall | 那张图是哪张 / 按文字、哈希、标签、轮次、相似度找回来 |
| visual_attend | 把我看过的区域画在图上,并记账 |
| visual_inspect | 把这些观测、这些区域,放大,拼成一张 |
| visual_read_pixels | 每个格子的颜色到底是多少 |
| visual_compare | 把这些图并排放在一起并标注 |
| visual_memory_status | 现在到底有什么能力,当前模型能不能看见 |
Web 接缝:GET /_dsh/visual-memory/gallery 渲染记忆库(缩略图、注意力账本、索引文本、哈希); /_dsh/visual-memory/raw?id=VM-… 返回逐字节原图,&v=<变体> 返回该条目自己登记的叠加图或对比图。
Web 接缝不是 Agent 的权限边界:每个请求先经组合的 connection.requestRejection (Host/Origin 栅栏 + 浏览器认证)放行;root 只能是本插件登记过的库;v 只能取自该条目登记的变体,且真实路径必须落在该库的 artifacts/ 内——调用方给的路径永远不会被读。
存储布局
<会话工作区>/.dsh-visual-memory/ index.jsonl 追加式;按 id 折叠,后写覆盖 artifacts/attention/.png 注意力叠加图 artifacts/compare/.png 对比图 artifacts/inspect/.png 单视图裁剪 + 拼接图 ~/.dsh/visual-memory-roots.json 哪些工作区有库(gallery 路由用) <DSH_HOME>/attachments/v1/files/<sha>/<name> 逐字节原图
能力边界
- 字节 归 ctx.attachments(宿主服务,逐字节 saveFile,内容寻址)
- 裁剪 / 像素差 / 调色板 / 描摹 / OCR / 看图问答 归 dsh-vision-toolkit
- 索引 / 注意力账本 / 带标签合成 / 多视图拼装 / 能力探测 归本插件
visual_attend 只产出叠加图 + 注意力账本(把"看过哪里"变得可见且持久),裁剪本身仍交给 vision_crop——每个能力只有一个实现,避免第二套实现分叉。
许可
MIT,见 LICENSE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
xiciyang/dsh-visual-memory
按哈希存取图片,精确读像素并找回历史画面
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 21,780未汉化DSH
73.5
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 1,947已汉化MCP
72.7
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,347已汉化DSH
71.9
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13917 个插件含 PR 收录与…
★ 343已汉化DSH
71.6