Introduction¶
The core idea of DeepSeek Harness (DSH) is “everything is a plugin”. By extending the toolchain, it gives agents diverse capabilities. In local file management and data governance scenarios, existing general-purpose plugins often cannot directly operate on disk, or they lack deep semantic understanding of local data structures.
dsh-yingnao is a DSH plugin maintained by qiuyiwu1989-star, which brings local disk indexing capabilities into Harness. Its core value is enabling agents not only to “see” local data but also to discover hidden associations through semantic search and dispatch governance tasks. The plugin uses the MIT License and can manage local machines without API keys.
Core Features¶
The plugin mainly provides the following capabilities:
- Index local disks: Establish file indexes through a locally running Yingnao service. Files are not moved; only index data is written to the database.
- Inspect dark areas of the disk: Agents can inspect unindexed or unprocessed spaces on the disk and evaluate governance progress.
- Search files: Support file retrieval based on name, path, or content.
- Find semantic neighbors: Using semantic similarity, find other related files from a known file, which is more efficient than simple text search.
- Dispatch governance tasks: Agents can dispatch tasks such as file cleaning and formatting to a local service for execution.
Installation and Enablement¶
Installation requires executing the official provided command, and you must start the Yingnao service locally.
- Install the plugin:
Use the following command to add the plugin to DSH:
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:qiuyiwu1989-star/dsh-yingnao
The build output is packaged with the repository, so no additional build script permissions are needed. Restart the profile after installation.
- Start Yingnao:
The plugin connects tohttp://127.0.0.1:5050by default. You need to run the Yingnao indexing service locally (the desktop client handles this automatically, or runpython3 app.pydirectly).
Typical Usage¶
After installation and running, agents can call the following tools:
-
yingnao_overview:
Before executing any governance, first inspect the disk state. Understand how much space remains “dark” (unindexed) and the quality of the processed data. -
yingnao_search:
Search for files. Use it when you need to locate a specific file or path. It degrades rather than fails; even if a file has no extractable text, it still matches by name and path. -
yingnao_related:
Find semantically related files. When an agent has an anchor file (for example, a draft), use this tool to expand outward and find semantic neighbors. This helps agents discover relevant materials they never explicitly searched for. -
yingnao_govern:
Dispatch governance tasks. This is the execution arm of the plugin, used to perform cleanup or normalization operations.
Governance Boundaries and Configuration¶
When using yingnao_govern, its boundaries must be clear.
Boundaries of Governance Operations¶
Not all operations are executed directly by the agent. The following two categories of operations cannot be decided by the agent:
* Operations involving money (such as OCR re-extraction and LLM annotation).
* Operations that move real files (such as inbox archiving).
For the above operations, Yingnao marks them as needs_confirm. The agent can only queue them, and they will be executed only after the user confirms them in the desktop client.
Other operations (such as quality checks and character normalization) are reversible and are executed immediately.
Configuration Items¶
Plugin behavior can be controlled through a YAML configuration file:
- insert:
- id: yingnao
name: 'dsh-yingnao'
config:
endpoint: 'http://127.0.0.1:5050'
timeoutMs: 60000
passthrough: true
allowGovern: true
endpoint: Address of the local Yingnao indexing service.timeoutMs: Query timeout (default 60000 ms), used to handle slow requests across SSH tunnels.passthrough: Whether to registeryingnao_call(egress channel).allowGovern: Whether to allow governance tasks to be executed. When set tofalse,yingnao_governdegrades to read-only mode.
In addition, the address in the configuration file can be overridden with the environment variable YINGNAO_ENDPOINT.
Error Classification¶
The plugin classifies errors so agents can adjust their behavior, rather than returning stack traces:
| Error Type | Action the Agent Should Take |
|---|---|
offline |
Yingnao is not running. Do not retry; prompt the user to start the service. |
tunnel |
The service is online but cannot connect to the database. It may recover; retry once later. |
notfound |
The specified resource cannot be found. Adjust the parameters; do not directly retry. |
server |
Server-side exception. Retry once; if it continues to fail, prompt the user. |
Ecosystem Pairing¶
This plugin is often used in pairs with dsh-deepbrain. The former provides judgments based on evidence chains, while the latter provides the source of raw materials. By combining the two, agents can both generate content based on previous decisions and trace back to the specific local files underlying those decisions.
Summary¶
dsh-yingnao solves the automation problem of local file governance. Through semantic indexing and a controlled governance task interface, it enables agents to effectively manage local data without overstepping by moving files or consuming resources unnecessarily. For data processing workflows that require localization and privacy protection, this is an essential tool.
- Directory page: https://www.skillhub.cn/plugins/qiuyiwu1989-star/dsh-yingnao
- Source repository: https://github.com/qiuyiwu1989-star/dsh-yingnao