Introduction¶
DeepSeek Harness (DSH) supports extending how system prompts are processed through plugins. When developing multi-agent systems or debugging different conversation styles, repeatedly copying and pasting prompts manually or restarting the application can reduce debugging efficiency. dsh-persona-dafeiyu provides a centralized persona library management solution. It includes commonly used personas, supports importing custom personas, and enables prompt switching without a restart by using dynamic functions.
Core Features¶
This plugin primarily addresses the inconvenience of persona switching. Its core capabilities are as follows:
- Built-in Personas: Provides three fixed personas: Da Fei Yu, A-Cha, and Ting Lan. These personas are hardcoded in the code and cannot be deleted or overwritten.
- Custom Import: Supports importing new personas via files (.md/.txt) or by directly pasting text. After import, personas can be managed in the settings page (rename, delete, enable/disable).
- Effective Scope: Supports “Global” and “Conversation” modes. In Global mode, all sessions share the current persona; in Conversation mode, each conversation can independently select a persona.
- Instant Switching: The persona text is a dynamic function. After switching personas, the next request immediately takes effect, without restarting DeepSeek Harness.
- On-Demand Loading: The status endpoint only returns persona metadata (such as a description). The full prompt content is fetched only after clicking “Show Full Text”, avoiding excessive interface payload size.
Installation and Enablement¶
Prerequisites:
* Node.js ≥ 20
* DeepSeek Harness (DSH) ≥ 0.2.0-rc.1 (compatible with 0.2.0-rc.2)
Installation command (replace <profile> with your profile name):
dsh plugin --profile <profile> add dsh-persona-dafeiyu
After installation, the plugin is automatically registered as a standalone dafeiyu:persona section.
Usage¶
After installing and enabling the plugin, a new section named “Da Fei Yu” appears in the DSH settings page. Here, you can view the current persona, switch personas, enable or disable personas, or import a new persona.
On the small bar above the input box, you can switch between “Global” and “Conversation” modes. After switching to “Conversation” mode, the persona name becomes a clickable control; clicking it lets you choose a persona for the current session (default: “Follow Global”).
When importing a new persona, you can upload a .md, .markdown, or .txt file, or paste text directly into the settings page and click “Import”.
Technical Details¶
- Dynamic Evaluation: The
textfield of a persona is registered as a dynamic function. It is re-evaluated every time the system prompt is assembled, so switching personas does not require a restart. - Persistent Storage: The persona library file is stored at
<DSH_HOME>/storages/dsh-persona-dafeiyu/personas.json. - API Design: Provides
/api/dsh-persona-dafeiyu/statusto retrieve metadata, and/api/dsh-persona-dafeiyu/persona?id=<id>to retrieve the full text on demand.
Conclusion¶
dsh-persona-dafeiyu uses a persona library approach to turn system prompt management from manual copy-pasting into visual list-based management, and leverages dynamic functions to achieve seamless switching. It is suitable for developers who need to switch frequently among multiple preset personas.