Foreword¶
In DeepSeek Harness (DSH) for agents, common problems are: explaining the persona every time in a session, and long-term preferences scattered across different contexts or external files. DSH’s philosophy is “Everything is a plugin,” the community directory is an independent site, with no official affiliation to DeepSeek / HF, and do not understand it as an official app store.
Below introduces dsh-soul-md. First explain its positioning, then core features, installation, and notes.
What is it¶
dsh-soul-md is a DeepSeek Harness (DSH) plugin, repository is Scorp1o117/dsh-soul-md, maintainer is Scorp1o117, license is MIT.
Its one-sentence positioning is: Persona + long-term memory for DeepSeek Harness — zero file management. For users, the main operation is entering the card name and content in Settings → 人设卡 and saving, without the need to manually maintain a set of scattered persona files.
Core Features¶
Persona Card¶
- Persona card content is rendered into the system prompt as the
soul:personasection. - Supports multiple cards.
- Can specify a default card.
- Can switch personas in the “人设” (Persona) select in the conversation header by chat.
soul_read/soul_updateallow the AI to read and evolve its own persona card.- Do not write
{{/}}in the card body; unknown variables will cause rendering failure.
Long-term Memory¶
- Provides
memory_append/memory_read/memory_rewritetools, using a persistent memory file. - If a current active persona card exists, use that card’s memory; otherwise, use global memory.
- Memory is also injected as a
soul:memoryprompt section, with a set length limit. memory_append/memory_rewritereject exceedingmemory.maxBytes, default value is1048576.- The length of the injected section is limited by
memory.injectMaxChars, default value is8000.
Parsing Order¶
Every time the prompt is assembled, the parsing order for persona cards is:
session choice > workspace mapping > default card > none
Switching personas takes effect from the next turn, no restart required.
Regarding workspaces, Settings → 人设卡 lists each workspace and provides a card dropdown selection. Sessions in that workspace default to the assigned card, though session-level switching still takes priority.
Installation and Activation¶
The steps below are from verified installation and mounting methods.
- Confirm the runtime environment.
Node engine requirement is:
>=20.18
- Confirm the DSH version.
dsh-soul-md0.5.8 and newer requires DSH0.1.0-rc.7or newer, and is tested against0.1.0-rc.7,0.1.0-rc.8,0.1.1-rc.1.
If the current DSH is 0.1.0-rc.6, you need to pin dsh-soul-md@0.5.6, as it is the last version with the legacy settings-allowlist compatibility patch.
- Install the package.
The verified install command is:
pnpm add dsh-soul-md
If pinning an old version is necessary, use:
pnpm add dsh-soul-md@0.5.6
- Mount to the profile patch.
The plugin is a plain Cordis row. It needs to be mounted to:
$DSH_HOME/profiles/<name>/cordis.patch.yml
Add:
- insert:
- id: soul-md
name: 'dsh-soul-md'
- Restart and open the settings page.
dsh web
Then open:
Settings → 人设卡
Enter the card name and content, and save.
Typical Usage¶
- Create a persona card.
Go to:
Settings → 人设卡
Enter the card name and content, such as role, tone, and work quality requirements. After saving, the plugin will render the card into the soul:persona section of the system prompt.
-
Switch personas per session.
Find the “人设” (Persona) select in the conversation header and select a card for the current chat. Switching takes effect from the next turn. -
Specify default persona per workspace.
In theSettings → 人设卡page, a card dropdown selection is provided for each workspace. After setting, sessions in that workspace will default to the assigned card. -
Let the AI maintain persona and memory.
The AI can use:
soul_read
soul_update
memory_append
memory_read
memory_rewrite
memory_append / memory_rewrite are limited by memory.maxBytes. soul_update is used to update the current evolvable persona card.
- Upgrade from old versions.
If upgrading from ≤ v0.4, the plugin will auto-import the oldpathcard and old memory file on first run.
Configuration and Limits¶
The plugin exposes the soul-md settings namespace and does not modify files in the host installation.
Configuration and limits that need special attention:
memory.maxBytes: Default1048576.memory_append/memory_rewritereject exceeding this size.memory.injectMaxChars: Default8000. Limits the length of the injectedsoul:memorysection.- Do not have
{{/}}in the card body. - It is recommended to write work-quality rules into the card, for example, prioritizing task quality and avoiding roleplay affecting actual work.
Use Cases and Notes¶
Suitable for these DSH use cases:
- Want to use different personas for different chats, instead of manually pasting role instructions every time.
- Want the AI to retain long-term memory across multiple sessions.
- Want to set default personas per workspace, while allowing session-level overrides.
- Want the AI to read and evolve its persona card via
soul_read/soul_update. - Want card content directly rendered into the
soul:personaprompt section.
Notes:
- The plugin runs with the current dsh process permissions. You should check the source code, MIT license, dependencies, and version requirements before installing.
dsh-soul-md0.5.8 and newer requires DSH0.1.0-rc.7or newer.- DSH
0.1.0-rc.6users must pindsh-soul-md@0.5.6. - The community directory is an independent site, with no official affiliation to DeepSeek / HF, nor is it an official app store.
Conclusion¶
The value of dsh-soul-md lies in putting “Persona Cards” and “Long-term Memory” into the DSH settings page flow: creating cards, selecting defaults, switching by session or workspace, while retaining memory injection and size limits.
The plugin clue directory page is:
https://www.skillhub.cn/plugins/Scorp1o117/dsh-soul-md
The GitHub repository is:
https://github.com/Scorp1o117/dsh-soul-md