Introduction¶
The core principle of DeepSeek Harness (DSH) is “everything is a plugin.” When developing with local models or orchestrating workflows, external capabilities are often needed. doubao-dsh-plugin was created specifically to solve the problem of “how to seamlessly invoke Doubao model capabilities within DSH.”
The plugin injects the doubao_ask tool into DSH through a locally running Doubao Relay (forwarded by Quicker). It supports web search, image generation, and multimodal image understanding, and provides browser-side capture for “pasting an image into a local path.”
Prerequisites: Doubao Relay¶
All capabilities of this plugin (search, image generation, and image understanding) rely on the OpenAI-compatible interface of a local Doubao Relay. The plugin itself does not include the Relay; the Quicker application must forward the local web version of Doubao into API calls.
Setup steps:
- Install Quicker.
- Download the shared action (click here to obtain).
- ⚠️ Note: This action has not been updated for a long time and requires manual code replacement. In Quicker, right-click the action and select “Edit”, find the “Run C# code” step, replace the entire script code area with the code from
c#code.txt, save, and run the action again. At this point, the Relay will listen on127.0.0.1:56666.
If the Relay is not running, tool calls will result in errors.
Installation and Enablement¶
Use the official provided npm one-click install command:
dsh plugin --profile web add doubao-dsh-plugin
After installation, you must restart the harness for the changes to take effect. The client bundle automatically scans and assembles itself on startup.
Core Features¶
- Tool injection: Registers the
doubao_asktool, making it immediately visible to the model on startup. - Web search and image generation: Supports real-time search and image generation. Images are displayed in the conversation as Markdown links.
- Multimodal image understanding: Supports image understanding by passing a URL, base64, or local file path. If a local image exceeds 512KB, it is automatically compressed to 800px width before being sent.
- Paste image to path (paste-to-path): This is a distinctive feature of the plugin. It intercepts
pasteevents in the browser, saves the image bytes as a private temporary file (path format similar to<temp>/doubao-dsh-paste/p-*/paste<ext>), and inserts the path text into the input box. Text-only models will not trigger the “model does not support images” admission gate; after the model sees the path, it callsdoubao_askand sets theimageparameter to that path. - Image deduplication and output: Automatically collapses duplicate image links, prioritizes keeping original image variants, and outputs a structured
imagesfield. - Logging: Fully records requests, responses, and other information.
Parameters¶
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | The question to search for or ask |
| image | string | No | Image path (URL / data URL / local path) |
| system | string | No | Additional system instruction |
| timeoutMs | number | No | Timeout in milliseconds; default 90000 |
Usage¶
- Direct image understanding: Paste an image directly into the input box. The browser captures the image, saves it as a local path, and the model then invokes the tool for image understanding. The first image understanding may take about 15~20 seconds (depending on the Relay response speed).
- Instruction-driven interaction: Directly ask in the conversation to “search for X” or “generate an image of X”; the model will automatically invoke this tool.
Notes¶
- This plugin runs with the permissions of the DSH process. Please check the source code and license before installing.
- The client code runs in the browser and reuses the validation implementation logic from modlens.
- Each request forcibly starts a new conversation (
new_conversation).