wanshichenguang / dsh-tool-vision

목록에 있음

DSH plugin: image_describe (识图) tool over the DashScope OpenAI-compatible vision API (qwen3.7-flash). Bring your own DASHSCOPE_API_KEY.

main도구 소스 보기

설치

npx -y @deepseek-ai/dsh plugin --profile web add github:wanshichenguang/dsh-tool-vision

이 설치 명령은 GitHub 저장소 주소에서 생성된 확인되지 않은 시작점입니다.

README

유지 관리자가 작성한 문서 스냅샷입니다.

GitHub에서 보기 ↗
커밋 bb8f60f동기화 2026. 8. 17.

dsh-tool-vision

English | 中文

A DeepSeek Harness plugin: the model-facing image_describe(识图) tool. It reads a local image file and asks the DashScope OpenAI-compatible API (qwen3.7-flash) to describe it or answer a focused question.

Works in every agent preset: the bundle patch inserts the tool at the host plane, so every session sees it in the tool catalog.

Install

dsh plugin --profile web add dsh-tool-vision

Restart dsh web (or install it from the Plugin Market with one click). The tool appears as image_describe in the model's tool catalog.

Paste bridge

On the web surface, pasting or dropping an image into the composer while the session's model is text-only (positively confirmed from provider metadata) uploads each draft image to the plugin's host route, releases the draft, and appends [image: <path>] text to the prompt before sending — so the request never trips the host's image admission, and the model can read the file with image_describe. Vision-capable or unknown models keep the native intake (the image attaches inline, unchanged).

The uploaded copies live in the harness data home ($DSH_HOME/media, default ~/.dsh/media) under the same naming convention as the harness's own image-to-path conversion.

The sent message also renders the images back inside its user row in the transcript: a conversation node matches the [image: <path>] markers in the user message and displays the copies served by the host route while hiding those transport markers from the visual bubble. The stored path text remains unchanged for the text-only model.

API key

The plugin ships no key. Set the key in the environment that starts DSH:

DASHSCOPE_API_KEY=sk-xxxx

You can also pass it per-row in cordis.patch.yml:

- id: tool-vision
  name: 'dsh-tool-vision'
  config:
    apiKey: sk-xxxx

Without a key the tool registers normally and fails with VISION_NO_API_KEY on use, naming the fix.

Tool

ToolArgsBehavior
image_describepath (string), prompt (string, optional)Resolves the image (absolute path, or relative to the workspace), sends it as a base64 data URL plus the prompt to POST {baseUrl}/chat/completions, and returns the assistant text. Omitting prompt uses defaultPrompt (a complete content description).

Config

KeyDefaultMeaning
baseUrlhttps://dashscope.aliyuncs.com/compatible-mode/v1DashScope OpenAI-compatible endpoint.
apiKeyDASHSCOPE_API_KEY environment variableDashScope API key; an explicit config value wins over the environment.
modelqwen3.7-flashVision model id.
defaultPrompt请详细描述这张图片的内容:画面主体、关键细节、文字信息(如有)、布局与结构。Instruction used when a call omits prompt.
timeoutMs120000Cooperative tool-call timeout budget (ms).
maxImageBytes20971520Cap on one image's byte size.
maxOutputChars65536Cap on the returned description text.

Security

  • No credentials ship with the package; the key stays in your environment or profile config.
  • The HTTP client sets redirect: 'error': the configured endpoint receives the credential, and a redirect fails the call instead of forwarding the key or the image to another origin.
  • The image bytes go only to the configured endpoint.

Known Limitations and Deferred Work

  • Single provider, single request shape — the tool targets the DashScope OpenAI-compatible endpoint only; a provider-selection seam is deferred until a second vision backend needs the same schema.
  • No vision-specific permission policy — the tool executes without requesting ctx.approval; a deployment that needs confirmation must add a tools/pre-execute policy.

License

MIT

프로젝트 파일 및 신호

표시된 항목은 디렉터리 스냅샷에서 감지된 공개 저장소 신호입니다.

보안 정책감지됨
문서감지됨

저장소 정보

언어
JavaScript
라이선스
MIT
마지막 업데이트
2026. 8. 17. AM 7:45

신중하게 설치하기

소스 코드, 권한, 수명 주기 스크립트, 의존성 및 네트워크 접근을 검토하고 신뢰하지 않는 플러그인은 격리 환경에서 테스트하세요.