# @anionex/dsh-vision-toolkit 中文文档

规范地址：https://npmcn.com/package/%40anionex/dsh-vision-toolkit/

版本：0\.1\.49
npm 元数据更新时间：2026-11-06T18:31:19.711Z
中文译文更新时间：2026-11-06T18:31:49.450Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40anionex/dsh-vision-toolkit
原文对照：https://npmcn.com/package/%40anionex/dsh-vision-toolkit/?lang=original
项目主页：https://agent-vision.anionex.me/
源码仓库：https://github.com/Anionex/dsh-vision-toolkit

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：10.1 MB，233 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：^22\.19\.0 \|\| \>=24\.0\.0
- 运行依赖：4 个
- peer 依赖：react ^18\.2\.0，@deepseek-ai/cordis ^4\.0\.1，@deepseek-ai/dsh-llm \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-agent \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-skill \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-tools \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-session \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/schemastery ^3\.18\.1，@deepseek-ai/dsh-settings \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-attachment \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-subprocess \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-api-remotes \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-credentials \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-client-locale \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-client-ui-tool \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-host-webserver \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-storage-domain \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-client-ui-slots \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-client-ui-settings \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-client-ui-primitives \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-client-ui-conversation \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5，@deepseek-ai/dsh-client-ui-input-trigger \>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5
- 首次发布：2026-08-14T11:27:29.781Z
- 最新版本发布：2026-11-06T18:31:19.529Z
- 近 30 天下载量：14649（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：43（近 12 个月 43 个）

## 中文简介

DeepSeek Harness-native inform-vision-toolkit:图像QQA,OCR,地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取.

## 安装

```sh
npm install @anionex/dsh-vision-toolkit
```

也可以使用：`pnpm add @anionex/dsh-vision-toolkit`、`yarn add @anionex/dsh-vision-toolkit`、`bun add @anionex/dsh-vision-toolkit`

## README

![DSH Vision Toolkit：让纯文本 DeepSeek Harness Agent 看懂图片并完成视觉任务](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/hero-v2.png)

# DSH Vision Toolkit

[![Anionex%2Fdsh-vision-toolkit | Trendshift](https://trendshift.io/api/badge/trendshift/repositories/149708/daily?language=TypeScript)](https://trendshift.io/repositories/149708?utm_source=trendshift-badge&utm_medium=badge&utm_campaign=badge-trendshift-149708)

[![由 dshfind 推荐](https://img.shields.io/badge/%E7%94%B1%20dshfind-%E6%8E%A8%E8%8D%90-FFD700?style=flat-square)](https://dshfind.com/zh/plugins/Anionex/dsh-vision-toolkit) [![dshfind 评分：94——最高分插件](https://img.shields.io/badge/dshfind%20%E8%AF%84%E5%88%86-94%20%7C%20%E6%9C%80%E9%AB%98%E5%88%86%E6%8F%92%E4%BB%B6-5B4CF0?style=flat-square)](https://dshfind.com/zh/plugins/Anionex/dsh-vision-toolkit) [![npm](https://img.shields.io/npm/v/@anionex/dsh-vision-toolkit?style=flat-square&color=5B4CF0)](https://www.npmjs.com/package/@anionex/dsh-vision-toolkit)

[![MIT](https://img.shields.io/badge/license-MIT-0B7285?style=flat-square)](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/LICENSE) [![DSH](https://img.shields.io/badge/DSH-Web%20%2B%20Headless-5B4CF0?style=flat-square)](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/cordis.patch.yml)

**更强大的视觉工具箱——给 DeepSeek Harness 里的纯文本模型装上眼睛：图片问答、长图 OCR、前端 UI 还原、GUI 视觉任务，一套视觉工具箱和一个 Skill。**

🚀 粘贴图片，直接提问 ｜ 一行命令安装即用 ｜ 场景丰富

[亮点](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E4%BA%AE%E7%82%B9) ｜ [快速开始](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B%E4%B8%89%E6%AD%A5%E5%AE%8C%E6%88%90) ｜ [工具一览](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E5%B7%A5%E5%85%B7%E4%B8%80%E8%A7%88) ｜ [配置与限制](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E9%85%8D%E7%BD%AE%E4%B8%8E%E9%99%90%E5%88%B6) ｜ [常见问题](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98) ｜ [交流群](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E5%BC%80%E5%8F%91%E4%B8%8E%E7%A4%BE%E5%8C%BA)

🌐 [English](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/README.md) ｜ **中文**

🏆 本项目为deepseek harness生态首个综合性视觉工具插件：内测前已立项，并在内测期间参考本人的[`agent-vision-toolkit`](https://github.com/Anionex/agent-vision-toolkit)做出。

> **原创声明：** 这套视觉工具的体系和划分方式，以及 `vision-skills` Skill，均由作者个人原创并持续打磨，相关工具、方法和工作流来自长期的真实使用与反复迭代。

> 如果这个项目对你有帮助，或给了你一些灵感，欢迎 Star 🌟 & Fork。

## 亮点

-   **粘贴图片，直接提问。** 在 DSH Web 里粘贴图片，文本模型会自动切换到看图模式变体，不需要手动复制路径或更换模型。图片保留原生缩略图、会话记录和工作区路径；Web 可以预览产物。
-   **一行命令安装即用。** 安装插件后即可在 **设置 → 视觉工具** 中配置视觉模型并开始使用。
-   **不只是看图描述，是获取图中真正需要关注的内容。** 模型不只是生成通用描述，而是围绕“报错在哪里”“按钮在哪”等当前任务提取证据。
-   **一套经过实战验证的视觉任务方法论**：项目提供的skill，会告诉 agent 面对不同视觉任务时应该看什么、选择哪个工具、按什么步骤推进，以及最后如何验证结果。

[`agent-vision-toolkit`](https://github.com/Anionex/agent-vision-toolkit) 的视觉能力不只停留在图片描述：Agent 可以读取、定位、裁剪、描摹、还原和验证视觉内容。DSH Vision Toolkit 是这套工具箱面向 DeepSeek Harness 的原生接入，让它进入 Web 和 Headless Profile。

本项目提供两层能力：

1.  **视觉工具和 Skill**：让 Agent 知道什么时候该看图、定位、OCR、裁剪、描摹或做像素对比。
2.  **DSH 原生接入**：把这些能力放进 Profile、会话、Settings、Artifacts 和 Web 界面。

```sh
dsh plugin --profile web add @anionex/dsh-vision-toolkit
```

**上游工具箱：** [Anionex/agent-vision-toolkit](https://github.com/Anionex/agent-vision-toolkit) · **项目网站：** [agent-vision.anionex.me](https://agent-vision.anionex.me/)

## ❤️ 赞助

> 想赞助本项目？详见 [FUNDING.md](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/FUNDING.md) 或发送邮件到 davidyang042@gmail.com。

点击折叠

<table><tbody><tr><td align="center"><a href="https://aihubmix.com/?aff=sinZ" rel="nofollow noopener noreferrer"><img src="https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/logo_aihubmix.png" alt="AIHubMix" height="48" loading="lazy" decoding="async" referrerpolicy="no-referrer"></a></td><td>感谢 <a href="https://aihubmix.com/?aff=sinZ" rel="nofollow noopener noreferrer">AIHubMix</a> 赞助本项目！AIHubMix 是稳定、高并发的 AI 大模型 API 聚合平台，一个 API Key 即可接入 Claude、GPT、Gemini、DeepSeek 等主流模型，兼容多种协议，并提供<b>免费模型选择</b>。注册时，海外用户请使用 <a href="https://aihubmix.com/?aff=sinZ" rel="nofollow noopener noreferrer">AIHubMix 入口</a>，中国大陆用户请使用 <a href="https://inferera.com/?aff=sinZ" rel="nofollow noopener noreferrer">Inferera 入口</a>。</td></tr><tr><td align="center"><a href="https://api.ewo.so/register?aff=U6PT7J" rel="nofollow noopener noreferrer"><img src="https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/logo_eapi_dark.png" alt="E-API" height="48" loading="lazy" decoding="async" referrerpolicy="no-referrer"></a></td><td>感谢 <a href="https://api.ewo.so/register?aff=U6PT7J" rel="nofollow noopener noreferrer">E-API</a> 赞助本项目！E-API 聚合主流 AI 模型，兼容 OpenAI、Anthropic 与 Codex 接口；部分 Claude 模型相比官方价<b>最高优惠约 98%</b>，DeepSeek V4 系列<b>优惠约 25%</b>。</td></tr></tbody></table>

**目录**

-   [亮点](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E4%BA%AE%E7%82%B9)
-   [最近更新](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E6%9C%80%E8%BF%91%E6%9B%B4%E6%96%B0)
-   [适合谁用](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E9%80%82%E5%90%88%E8%B0%81%E7%94%A8)
-   [实际效果](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E5%AE%9E%E9%99%85%E6%95%88%E6%9E%9C)
-   [快速开始：三步完成](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B%E4%B8%89%E6%AD%A5%E5%AE%8C%E6%88%90)
-   [工具一览](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E5%B7%A5%E5%85%B7%E4%B8%80%E8%A7%88)
-   [配置与限制](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E9%85%8D%E7%BD%AE%E4%B8%8E%E9%99%90%E5%88%B6)
-   [常见问题](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)
-   [赞赏](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E8%B5%9E%E8%B5%8F)
-   [开发与社区](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/#readme-%E5%BC%80%E5%8F%91%E4%B8%8E%E7%A4%BE%E5%8C%BA)

## 最近更新

-   **2026-08-20 · AIHubMix 申请教程：** 新增通过 Inferera 入口申请 API Key 并配置 Gemini 3.7 Flash 视觉模型的图文教程，并在视觉工具设置中直接提供入口。
-   **2026-08-19 · 透明变体路由默认开启：** 模型选择器默认只显示每个模型一项并保留原模型名，粘贴图片、历史图片和内置 `read_image` 工具都能直接使用，不再需要手动切换到 `(Vision Toolkit)` 变体；如需恢复显式条目，可在 设置 → 高级设置 → 图片输入 关闭“透明变体路由”。
-   **2026-08-16 · Windows Python：** 支持 Microsoft Store Python，解决 Windows 用户首次创建隔离环境失败的问题。
-   **2026-08-17 · 视觉升级：** 默认模型切换到 Gemini 3.7 Flash，并修复 Qwen/Gemini 检测框坐标顺序错位的问题。
-   **2026-08-16 · 图片粘贴：** 文本模型自动切换到 `(Vision Toolkit)` 变体并保留工作区路径，解决粘贴图片被拦截或后续无法复用的问题。
-   **2026-08-16 · 服务稳定性：** 扩大服务容量，减少高峰期出现 `429` 的情况。
-   **2026-08-16 · 真实模型测试：** Settings 新增完整图片请求测试，解决 `/models` 可访问却不能证明模型真的会看图的问题。

## 适合谁用

1.  想获得类似多模态模型一样的交互体验：直接粘贴图片，提出要求或疑问
2.  不只是看图问答，想要完成更复杂、更有价值的视觉任务，例如草图变前端页面，图片转html，提取长截图里的聊天信息等等；后续也会不断补充更多的场景。

随附的 `vision-skills` Skill 携带完整的上游 playbook，说明每个工作流何时使用、按什么顺序调用工具，以及如何验证结果：

| 手册 | Agent 学会做什么 |
| --- | --- |
| [读取长截图、聊天记录和滚动页面](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/skill/references/long-screenshot-ocr.md) | 找到低内容切割带、按顺序 OCR 每个分块、保留聊天发言人/时间戳/引用、只合并重复的重叠部分，并标出有风险的边界供验证 |
| [根据截图或设计重建 UI](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/skill/references/restore-ui.md) | 优先复用项目组件和素材，再用代码原生 UI、提取的视觉素材、渲染截图和视觉对比来对齐页面或组件 |
| [还原图标、Logo、插画或其他图形](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/skill/references/restore-graphic.md) | 从源图像提取透明 PNG，或按需重建可编辑/可缩放 SVG，然后验证形状、颜色和 alpha 边缘 |
| [把草图、示意图或白板转成结构化代码](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/skill/references/restore-structure.md) | 把节点、标签、连接和方向恢复为可编辑的 Mermaid、Graphviz 或其他结构化表示 |
| [通过截图操作 GUI](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/skill/references/gui.md) | 定位控件、执行一个动作、再次截图，并先验证结果状态再继续 |

## 实际效果

### 在 DSH 里直接粘贴图片提问

![DSH Web 中，纯文本 DeepSeek 模型通过 Vision Toolkit 回答用户粘贴图片里的内容](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/dsh-view-example.png)

_用户粘贴一张图片，纯文本模型自动切换到对应的_ `Vision Toolkit` _变体，并围绕用户的问题读取画面。_

### 从截图到可编辑页面

![用于还原的信息图原始截图](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/upstream/infographic-reference.webp) ![根据截图还原出的可编辑 HTML 和 CSS 页面](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/upstream/infographic-result.webp)

> 提示词示例：“（使用vision-skills），把这张图片还原成html”

_左：参考截图；右：用 HTML/CSS 还原出的可编辑结果。视觉结果可以继续进入截图和像素对比流程，而不是停在“描述图片”。_

### 从手绘稿到可用界面

![作为 UI 还原输入的手绘 JupyterLab 界面草图](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/upstream/ui-sketch.webp) ![根据手绘参考还原出的 JupyterLab 工作区界面](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/upstream/ui-result.webp)

_左：手绘参考；右：根据参考还原的可用界面。_

> 提示词示例：“（使用vision-skills），把这张草稿图做成可用的前端页面”

### 快速 UI 还原：先出一版近似稿

![快速 UI 还原参考图：YouMind 首页原图](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/upstream/ui-fast-restore-reference.webp) ![使用快速 UI 还原模式生成的近似首页](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/upstream/ui-fast-restore-result.webp)

> 提示词示例：“（使用vision-skills），把这张图片 快速 还原成html”

_左：原始页面；右：保留主要布局、内容和视觉层级的快速还原稿，允许颜色和图标库近似。快速模式的目标是约三分钟内产出首版截图。_

## 快速开始：三步完成

### 1\. 安装

```sh
dsh plugin --profile web add @anionex/dsh-vision-toolkit
```

Headless Profile 也可以安装：

```sh
dsh plugin --profile headless add @anionex/dsh-vision-toolkit
```

使用 **DSH Desktop 桌面版**？桌面版自带 `dsh` 命令行，但有意不写入系统 PATH，请不要在系统终端里执行上面的命令。请从托盘打开 **DSH 终端（Open DSH Terminal）**，在桌面版自己的终端中安装到 Desktop Profile：

```sh
dsh plugin --profile desktop add @anionex/dsh-vision-toolkit
```

安装完成后重启 DSH Desktop。DSH Desktop 2.0.1 内置插件市场的“一键安装”存在已知问题，修复前请优先使用上面的终端命令安装。

完整的桌面版安装、更新与排查步骤见 [DSH Desktop 安装与更新指南](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/docs/dsh-desktop-install.zh.md)。

### 2\. 重启并确认

重启正在运行的 Web Profile，打开 **设置 → 视觉工具**，配置视觉模型，然后运行**测试视觉模型**确认连接。

首次启动会自动准备隔离运行环境：插件优先使用系统已有的 Python 3.11+；如果系统没有，会自动从国内镜像（`dsh-vision-python-bootstrap-1317715800.cos.ap-guangzhou.myqcloud.com`）下载一个带完整性校验的托管 Python（约 35MB，仅首次需要网络），镜像不可用时自动回退到 GitHub 官方发布源。锁定依赖（Pillow、NumPy、vtracer）会优先从腾讯云 PyPI 镜像（`mirrors.cloud.tencent.com/pypi/simple`）安装，镜像不可用时回退到官方 PyPI。普通安装不需要下载 `agent-vision-toolkit` 源码，也不需要设置本地路径。

运行环境在后台准备，不阻塞 Profile 启动。首轮即可看到 Skill；视觉工具调用会等待准备完成，并报告准备失败的原因。禁用插件会取消未完成的准备任务；准备失败后仍可通过设置修复。

### 3\. 粘贴图片，直接说你要做什么

在会话中粘贴截图，或把图片放进会话工作区，然后调用 `/vision-skills`。例如：

```text
看看这张截图，告诉我报错原因和最值得先修的地方。
找到右上角的登录按钮，返回原图像素坐标并生成带框预览图。
把这个图标裁出来并转成 SVG。
按照 reference.png 还原页面，每轮截图后做像素对比，直到主要差异消失。
```

## 工具一览

插件提供 10 个可以单独调用、也可以组合使用的视觉工具：

| 工具 | 最适合解决的问题 | 主要结果 |
| --- | --- | --- |
| `vision_glance` | “这张图里发生了什么？” | 针对性回答、描述、OCR、多图比较 |
| `vision_ground` | “我要找的东西在哪？” | 原图像素坐标、可选带框预览 |
| `vision_detect` | “图里有哪些按钮/图标/元素？” | 编号元素清单、坐标、可选预览 |
| `vision_crop` | “把这块区域单独取出来” | PNG 或 JPEG 裁剪图 |
| `vision_trace` | “把这个图形变成可编辑矢量” | SVG |
| `vision_pixel_diff` | “实现和参考图到底差在哪？” | 差异比例、重点区域、热力图、JSON |
| `vision_long_screenshot_ocr` | “读完这张很长的截图” | Markdown、分块图、清单和审计结果 |
| `vision_extract_foreground` | “把主体抠出来” | 透明 PNG |
| `vision_dominant_colors` | “这块区域用了哪些主要颜色？” | 主色板或候选色排序 |
| `vision_html_screenshot` | “按精确视口渲染本地页面，或一次捕获整页” | PNG 和可选的 CSS `pageHeight` |

坐标始终使用原图像素格式 `x1,y1,x2,y2`，因此定位结果可以直接交给裁剪、描摹或后续自动化。

对于长 HTML 文档，传入 `fullPage=true`。请求的宽高仍作为布局视口，生成的 PNG 会覆盖完整文档，并以 CSS 像素返回 `pageHeight`。

## 工作原理

插件把远程图片理解和可重复的本地图片处理放进同一套 Agent 工作流。下面的流程图展示了具体的职责边界。

### 让描述始终围绕当前任务

多数文本模型视觉桥接的做法是让多模态模型生成一段通用描述，再把描述交给文本模型，这等于多了一层必然有损的语义转换。Vision Toolkit 反过来恢复 **Agent 为什么想看这张图**：把用户消息或模型给出的调用原因作为 focus hint（聚焦提示）传给视觉模型，得到的是围绕当前步骤的重点描述——更少 token、更准确、响应更快。

![通用图片描述与带 focus hint 的任务感知描述对比（一）](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/upstream/focus-hint-comparison-1.webp) ![通用图片描述与带 focus hint 的任务感知描述对比（二）](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/upstream/focus-hint-comparison-2.webp)

**架构与图片输入行为**

```mermaid
flowchart LR
    Image["截图或本地 HTML"] --> Skill["vision-skills Skill"]
    Skill --> Agent["文本 Agent 选择任务"]
    Agent --> Vision["需要理解图片时调用视觉模型"]
    Agent --> Local["裁剪、SVG、像素等任务在本地处理"]
    Vision --> Result["回答、OCR、坐标"]
    Local --> Artifact["PNG、SVG、热力图、JSON"]
    Result --> Session["继续推理和行动"]
    Artifact --> Session
```

视觉能力来自打包的固定版本 `agent-vision-toolkit`。DSH 插件负责安装、会话级工具暴露、Credential、路径校验、取消、超时、结果文件和 Web 展示。运行时不会在后台拉取上游 `main`。

`vision-skills` Skill（上游原名 `vision-tools`）现在以上游 `SKILL.md` 和全部 5 篇上游 SOP 为明确底稿： 只适配工具名、结构化参数、Artifact 交付、渐进式暴露，以及 DSH 的路径和生命周期边界； 上游的工具选择规则、由粗到细方法和任务流程保持不变。精确的上游 Skill commit、 源文件哈希、适配后哈希和可审查补丁分别记录在 `assets/skill/UPSTREAM.json` 与 `patches/vision-tools-dsh.patch`。

对于明确标记为纯文本的模型，插件会注册 `<模型名> (Vision Toolkit)` 变体。默认情况下，在 DSH Web 粘贴图片时会自动切换到该变体，并把图片路径与带当前任务重点的视觉描述一起交给模型。

桥接说明只描述当前请求中转换的图片块，不限定助手在其他路由或轮次中的能力。原生视觉模型和输入模态未知的模型不会被包装。转换只发生在发出的消息副本上，不会改写已保存的会话；此次措辞修正不会删除会话中已有的描述或陈述。

## 配置与限制

### 配置视觉模型

在 **设置 → 视觉工具** 中配置视觉模型提供方，并把 API Key 保存为 DSH Credential。Settings 只保存 Credential 引用，不会回显密钥。

**AIHubMix 图文教程：** [申请 AIHubMix API Key 并配置 Gemini 3.7 Flash 识图](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/docs/aihubmix-gemini-vision.zh.md)。教程包含账号与 API Key 获取截图、Vision Toolkit 的准确配置、模型选择和常见问题排查。

也可以在 Profile patch 中配置：

```yaml
- id: vision-toolkit
  config:
    provider:
      baseUrl: https://api.example.com/v1
      credential: MY_VISION_KEY
      model: your-vision-model
      protocol: openai
```

支持 OpenAI Chat Completions 兼容端点、OpenAI Responses 和 Anthropic Messages。已有配置仍默认使用 Chat Completions。若要使用兼容 Responses 的端点，请设置 `protocol: responses`；插件会在 API 地址后拼接 `/responses`。可选的 `reasoningEffort` 仅随 Responses 请求发送：

```yaml
      protocol: responses
      reasoningEffort: medium
```

`reasoningEffort` 留空时使用模型或代理的默认值。常见值包括 `none`、`minimal`、`low`、`medium`、`high` 和 `xhigh`；为兼容第三方代理和未来扩展，该字段也接受由字母、数字、`.`、`_`、`-` 组成且不超过 64 位的提供方自定义值。实际支持范围与计费由模型或代理决定；较高强度可能增加推理 token、延迟和费用。Responses 请求会设置 `store: false`，但该标记不能替代核查服务商自己的数据保留政策。Web Settings 页面还可以调整超时、图片限制、并发、运行时和图片输入变体。 Profile patch 还可以通过 `provider.headers` 配置非秘密的部署元数据。需要按会话路由的网关可在 `provider.sessionHeaders` 中列出一个或多个运行时生成的请求头；例如 OpenCode Zen 要求 `x-opencode-session`：

```yaml
- id: vision-toolkit
  config:
    provider:
      headers:
        x-tenant: acme
      sessionHeaders:
        - x-opencode-session
```

静态请求头是保存在 Settings 中的普通明文，不是 Credential。不要在 `provider.headers` 中填写 API Key、Bearer Token、Cookie 或其他秘密；视觉 API Key 仍应使用 `provider.credential`。插件会拒绝客户端自有的鉴权头和 HTTP 路由/请求帧控制头、大小写不敏感的重复项、两个字段间的冲突、非法名称或值、合计超过 32 项、名称超过 128 字节、值超过 4096 字节，或总量超过 16384 字节的配置。

每个会话请求头都会获得 HMAC-SHA256（带密钥的不可逆摘要）的前 32 位十六进制值，密钥在 DSH 进程启动时随机生成。同一进程内，相同 operation identity（一次调用采用的会话身份）得到稳定值；重启后会轮换。有 Session 的调用只把 Session id 作为内部 HMAC 输入；确实没有 Session 时才回退到 `workspace:<绝对路径>`，原始 Session id 和 workspace 路径都不会发送。同一次 Settings 健康检查的 `GET /models` 与真实模型请求共用派生值。请求头只注入配置 provider 的同源 URL 且路径必须位于其 base path 下。两个字段均为空时，不创建额外请求头环境变量，provider 的网络请求头语义保持原样。

高级设置中的 **默认保存目录** 可以把产物、粘贴图片和缓存放到 `/tmp/dsh-vision-toolkit` 等 POSIX 绝对共享根目录下；插件会为当前用户和工作区创建权限为 0700 的私有子目录。留空时继续使用工作区内原有的 `.dsh-vision-toolkit` 目录。Windows 目前会拒绝配置共享根目录，因为插件尚不能安全校验其所有权和访问控制列表。

Windows 上，会话工作区必须允许当前用户创建、写入 `.dsh-vision-toolkit` 及其内容。只读工作区（例如 `C:\Program Files (x86)`）会阻止视觉执行工具运行。请改用用户目录下具有写权限的项目目录作为会话工作区，并将 **默认保存目录**（`storageDir`）留空。创建存储失败时不会自动回退到用户目录或临时目录；Settings 健康检查成功不代表会话工作区可写。

配置的保存目录变更后，插件会把之前验证过的根目录保留为只读输入位置。Web Profile 会把这段历史保存在插件自有的 `vision_toolkit_storage` storage-domain sidecar 中；即使当前 Settings 提供方只读，Profile 重启后原有粘贴图片路径仍可继续使用。使用配置共享存储的自定义 Profile 应组合 `@deepseek-ai/dsh-storage-domain`。

如果受信任的内部端点使用自签证书或 MITM 代理，可在启动 DSH 进程时设置 `VISION_SSL_VERIFY=0`。插件会把该值传入隔离的 Python 运行环境；未设置或使用其他值时仍默认校验证书。还支持大小写不敏感的假值 `false`、`off`、`no`、`none` 和 `disabled`。

`timeoutMs` 默认是 `30000`，允许范围为 `1000`–`600000`。排队等待和执行各自获得这份预算，因此排队调用的总耗时可能超过 `timeoutMs`。执行预算包括图片准备、所有服务请求尝试和重试等待；它并不是每次 HTTP 请求的超时。对于较慢的服务商，可根据实测延迟提高单次调用的 `timeoutMs`，必要时再调整 Profile 默认值。即使服务商仍在处理，父进程也会在执行截止时间取消未完成的任务。日志用 `queueMs` 和 `upstreamMs` 区分排队与上游耗时；后者包含 CLI 启动、重试和失败收集，并不等同于纯服务端延迟。

### 配置 Python 运行时

大多数用户无需配置 Python 运行时：插件会优先使用系统 Python 3.11+，找不到时自动从国内镜像下载固定版本的托管 Python；国内镜像不可用时回退到 GitHub 官方发布源。

需要覆盖 `runtime.python`、使用 `runtime.mode: external`、验证运行时，或允许读取其他目录时，请参阅 [Python 运行时配置](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/docs/python-runtime.zh.md)。

## 常见问题

| 问题 | 处理方式 |
| --- | --- |
| `plugin storage directory is not writable` | 将会话工作区改为当前用户可写的目录后重试。Windows 上将 **默认保存目录**（`storageDir`）留空；安全 ACL 校验就绪前，共享存储仍不可用 |
| 视觉模型测试失败：`Vision API returned an incompatible response structure` | 通常是 API 地址少了路径前缀。LM Studio、Ollama 等本地 OpenAI 兼容服务需填写 `http://127.0.0.1:1234/v1`（带 `/v1`）；OpenAI Chat Completions 会拼接 `/chat/completions`，OpenAI Responses 会拼接 `/responses`，只填端口号可能命中未知端点 |
| 粘贴图片后仍提示模型不支持图片 | 重启 Web Profile 并刷新页面，确认当前模型已切换到带 `(Vision Toolkit)` 的变体；也可以把图片先放进会话工作区，再调用 `/vision-skills` |
| 工具提示 `timed out` | 查看诊断日志中的 `queueMs` 和 `upstreamMs`；对于可成功但较慢的服务调用，提高单次 `timeoutMs`。排队和执行使用独立预算 |
| 视觉服务提示 429 | 按错误中的 `Retry-After` 等待后重试；如果需要稳定高额度，切换到自己的视觉端点 |
| 图片过大或像素超限 | 先裁剪或缩放图片；错误会明确显示是字节还是像素限制 |
| 自定义 Credential 缺失 | 在 **设置 → 视觉工具** 填写 API Key，并确认 Credential 名称与配置一致 |
| OpenCode Zen 返回 `400 MissingSessionID` | 在 Profile patch 的 `provider.sessionHeaders` 中加入 `x-opencode-session`，然后重启 Profile；不要把 Session id 或 API Key 写进 `provider.headers` |
| 首次运行时准备失败 | 自动下载托管 Python 需要网络和磁盘权限（默认先走国内镜像，失败时回退 GitHub）；失败时检查网络或包缓存，也可以安装 Python 3.11+ 或在 Settings 中配置 `runtime.python`，然后重新测试 |
| 找不到 Chrome | 安装 Chrome、Chromium 或 Edge；只有 HTML 截图不可用，其他工具不受影响 |
| DSH Desktop 提示找不到 `dsh` 命令，或内置插件市场安装失败 | 从托盘打开 **DSH 终端**，运行 `dsh plugin --profile desktop add @anionex/dsh-vision-toolkit`，再重启 DSH Desktop。桌面版 2.0.1 的内置市场存在已知安装问题，当前请优先使用终端安装 |
| 产物无法预览 | 使用“打开文件”或结果中的工作区路径；预览 URL 只在 Web 路由可用时存在 |

## FAQ

**视觉模型会怎样影响成本？**

每次检查都是一条独立的多模态请求，只携带必要意图和图片，调用之间不会累积上下文。实际费用取决于服务商、图片、模型，以及 Responses 的 `reasoningEffort`；较高强度可能消耗更多推理 token 并增加延迟。留空可使用提供方默认值；若更看重可预测的本地成本，也可以使用本地部署的小型多模态侧模型（例如 Gemma 4 或 Qwen 3.5/3.6 系列）。

## 赞赏

如果本项目对你有价值，欢迎请开发者喝杯咖啡☕️

![微信收款码](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/wechat-reward.png)

## 开发与社区

-   贡献前请阅读 [CONTRIBUTING.md](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/CONTRIBUTING.md)。
-   Bug、功能建议和使用问题请提交到 [GitHub Issues](https://github.com/Anionex/dsh-vision-toolkit/issues)；渠道说明见 [SUPPORT.md](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/SUPPORT.md)。
-   安全漏洞请按 [SECURITY.md](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/SECURITY.md) 私下报告。
-   版本变化见 [CHANGELOG.md](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/CHANGELOG.md)，赞助说明见 [FUNDING.md](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/FUNDING.md)。
-   通用视觉工具、跨 Agent 接入和视觉任务方法论请访问上游 [agent-vision-toolkit](https://github.com/Anionex/agent-vision-toolkit)。
-   国内访问：项目已同步至 [AtomGit](https://atomgit.com/Anionex/dsh-vision-toolkit)，方便国内开发者访问、下载和使用。

![agent-vision-toolkit 项目交流群二维码](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/assets/community-group-qr.png)

我是 [anionex](https://anionex.me/)，一位 AI 原生开发者，曾位列 GitHub 全球开发者趋势榜第 **3** 名，项目累计超过 16k stars。想了解我后续的工作，欢迎在 [GitHub](https://github.com/Anionex) 关注我。

[`agent-vision-toolkit`](https://github.com/Anionex/agent-vision-toolkit) 由 [Anionex](https://anionex.me/) 创建。本仓库维护它面向 DeepSeek Harness 的原生集成。

## 许可证

插件采用 [MIT License](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/LICENSE)。打包的上游快照保留其原始 MIT 许可证，见 [`vendor/agent-vision-toolkit/LICENSE`](https://npmcn.com/package/%40anionex/dsh-vision-toolkit/vendor/agent-vision-toolkit/LICENSE)。

## 常见问题

### @anionex/dsh-vision-toolkit 是什么？

DeepSeek Harness-native inform-vision-toolkit:图像QQA,OCR,地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取地取\.

### 如何安装 @anionex/dsh-vision-toolkit？

在项目目录运行 npm install @anionex/dsh-vision-toolkit，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（^18\.2\.0）、@deepseek-ai/cordis（^4\.0\.1）、@deepseek-ai/dsh-llm（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-agent（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-skill（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-tools（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-session（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/schemastery（^3\.18\.1）、@deepseek-ai/dsh-settings（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-attachment（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-subprocess（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-api-remotes（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-credentials（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-client-locale（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-client-ui-tool（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-storage-domain（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-client-ui-slots（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-client-ui-settings（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-client-ui-primitives（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-client-ui-conversation（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）、@deepseek-ai/dsh-client-ui-input-trigger（\>=0\.1\.0-rc\.8 \<0\.2\.0 \|\| ^0\.1\.1-rc\.1 \|\| ^0\.1\.2-alpha\.1 \|\| ^0\.1\.5-rc\.1 \|\| 0\.2\.0-rc\.2 \|\| 0\.2\.1-rc\.2 \|\| 0\.2\.1-rc\.3 \|\| 0\.2\.1-rc\.5）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @anionex/dsh-vision-toolkit 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @anionex/dsh-vision-toolkit 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @anionex/dsh-vision-toolkit 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js ^22\.19\.0 \|\| \>=24\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @anionex/dsh-vision-toolkit 可以商用吗？

@anionex/dsh-vision-toolkit 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @anionex/dsh-vision-toolkit 的下载量有多少？

根据 npm 官方下载统计，@anionex/dsh-vision-toolkit 在 2026/10/06 – 2026/11/04 这 30 天内被下载 14,649 次，日均约 488 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @anionex/dsh-vision-toolkit 还在维护吗？

最新版本 0\.1\.49 发布于 2026/11/07（1 天前）；至今共发布 43 个版本，其中过去 12 个月发布了 43 个；首次发布于 2026/08/14。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

