dsh-system-prompt-studio:按会话在运行时查看与覆盖 system prompt

Introduction

When adjusting agent behavior in DeepSeek Harness (DSH), many are accustomed to modifying deployment-level persona prefixes or suffixes within configuration files. Modifying these often requires restarting the process, and since the same configuration applies to all sessions, it is not conducive to iterating on a “system prompt version for this specific conversation.”

dsh-system-prompt-studio places the ability to view and override system prompts at the client and session granularity: without restarting, you can append paragraphs to the current conversation (or global default), replace a named section, or replace everything entirely; changes take effect on the next model request, and you can compare them in the panel against the “content actually sent in the last request” and the assembled list of paragraphs.

Below, the plugin is explained based on its positioning, capabilities, installation and usage, and precautions. The maintainer is user-Mrz, and it is classified as a client plugin; see the GitHub repository and the SkillHub directory page.

What is it

The plugin is distributed as a scoped npm package @user-mrz/dsh-system-prompt-studio (current version in documentation is 0.2.0, license MIT). It targets the shared client product for DSH Web/Desktop, coordinating on both the Host and Client sides: the Host is responsible for session-related system prompt override logic, while the Client provides the System prompt panel in the title bar (or welcome area).

On npm, there also exists an unscoped package with the same name, dsh-system-prompt-studio, maintained by others; this is not this plugin. You must use the @user-mrz/ prefix when installing.

Core Features

Viewing the “Real Sent” System Prompt

The read-only area at the bottom of the panel can be expanded to view:

  • System prompt of the latest request: The system prompt actually sent to the model in the last request of this conversation;
  • Sections assembled for this conversation: The names, order, and character count of the paragraphs used for this assembly.

For conversations where assembly has not yet been completed, the list will state that enumeration is not possible rather than guessing.

Three Override Modes

Mode Effect
Append (default) Keep all sections and append your text at the end; relatively safe.
Replace a section Shadow-replace a named section, for example deployment:persona-suffix.
Replace everything Your text becomes the complete system prompt; highest risk (see precautions below).

After saving, no reload is required; the next message sent to the model will be assembled according to the new rules. Override rules are persisted per session, and you can set a global default, which makes new top-level conversations inherit automatically (global defaults do not apply to sub-agents).

Forked conversations inherit the parent session rules along the parentSession chain; the panel provides a Pin feature to pin the inherited result to this session.

When editing and the changes are unsaved, pressing Esc, clicking the overlay, or closing the button will prompt for confirmation to avoid accidentally losing your draft.

The plugin’s implementation relies only on Node.js built-in modules, has no additional npm dependencies at runtime, and does not import @deepseek-ai/* packages.

Environment & Installation

Requirements

  • DSH: >=0.2.2-0 and <0.3.0-0
  • Node.js: ≥ 22.19.0

Installation Commands

It is recommended to install from npm (the official method shown in the documentation):

dsh plugin --profile <profile> add @user-mrz/dsh-system-prompt-studio

Replace <profile> with your profile name; the Web build is usually web.

You can add a version number when a specific version is required, for example:

dsh plugin --profile <profile> add @user-mrz/dsh-system-prompt-studio@0.2.0

When tracking the default branch from GitHub, the documentation example shows installation with a ref:

dsh plugin --profile <profile> add github:user-Mrz/dsh-system-prompt-studio#v0.2.0

Uninstall:

dsh plugin --profile <profile> remove @user-mrz/dsh-system-prompt-studio

Uninstalling will not delete the override content you have already saved.

After Installation

The Host side takes effect immediately after installation; the Client side is newly injected JavaScript, and the button in the title bar will only appear after refreshing the page once.

You can use HTTP to check if the Host is ready (replace sessionId with the actual session ID):

curl "http://127.0.0.1:3080/api/system-prompt-studio?session=<sessionId>"

A response containing "ok":true and a capability field indicates it is available.

If you are using pnpm and build scripts are being intercepted: This package’s prepare script only validates whether the entry file exists; it does not compile or write to disk. Retry the add command after setting the corresponding allowBuilds to true in your profile’s pnpm-workspace.yaml as described in the README. Granting build permissions means the package code can execute outside the DSH agent sandbox during installation, so you should only enable this for source code you trust.

Typical Usage

  1. Click System prompt in the title bar of any conversation (if this session already has an override, the button will have a dot). When starting a new conversation, the title bar might be hidden by Harness, so use Set system prompt in the welcome area.
  2. Select the scope: this conversation or global default (global defaults only apply to top-level conversations and do not include sub-agents).
  3. Select a mode, enter the text, and save; changes take effect from the next message.
  4. Expand the two read-only blocks at the bottom to compare the content of the last actual request with the paragraph list.

For conversations where the first message has not yet been sent, you can also set the override in advance: Harness creates the agent when the conversation is created, so the assembly for the first message will include your rules.

Use Cases & Precautions

Suitable for: Developers who need to quickly test personas, replace deployment suffixes, or verify “what system prompt the model actually received” within a single conversation; compared to file-level personas, it is more suitable for runtime and session-based iteration.

Caution with “Replace everything”: This mode removes all first-party guidance (tool descriptions, structured output, plan mode strategies, etc.), and the quality of tool calls may drop significantly. Runtime context (working directory, sandbox policy, approval policy, etc.) is still sent as a snapshot from the user side and will not be replaced by your text. At the same time, it removes all prompt sections registered by other plugins—the tool schema may still exist, but the instructions telling the model when and how to call tools disappear. The result is often “the model becomes stupid” rather than an explicit error. The panel before saving will list the names and character counts of the paragraphs to be discarded, and separately mark the count of paragraphs belonging to other plugins.

If there are other third-party plugins on your profile that register prompt sections, the README suggests setting allowComplete: false in the plugin configuration line to disable “Replace everything”: the panel will gray out this mode, and saving will return COMPLETE_BLOCKED if it is still complete; existing complete overrides will no longer take effect and will fall back to first-party defaults (data is retained and not deleted).

The assembly layer of the same session only allows one active complete section; if another plugin also registers a complete section, assembly will fail with multiple complete prompt sections. Subsequent model requests for that conversation may all fail, and the interface will only show “request failed”. You need to change back to Append or Replace a section to restore functionality.

Security & Trust: The plugin runs with the permissions of the current DSH process. Before installing, you should read the source code and the MIT license to confirm the scope package name and origin. The community directory SkillHub is an independent site with no official affiliation to DeepSeek or Hyperplane.

Conclusion

dsh-system-prompt-studio brings the visibility and editability of system prompts into the session: three levels of override granularity, effective on the next request, comparing against real assembly results, and supporting global defaults and fork inheritance. You can still use configuration files when you need fixed behavior; this plugin is more suitable when you need to try out and iterate on a single conversation.

  • Directory page: https://www.skillhub.cn/plugins/user-Mrz/dsh-system-prompt-studio
  • Repository: https://github.com/user-Mrz/dsh-system-prompt-studio
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye