dsh system prompt(システムプロンプト)解説
DeepSeek Harness が毎回のモデル呼び出し前にシステムプロンプトへ組み込むもの——固定アイデンティティ、ペルソナスロット、ツールガイダンス、そしてそれらを書き換えるプラグイン。
最終更新: 2026-10-04
すべてのターンは、あなたが入力するより先にモデルが読むシステムプロンプトから始まります。DeepSeek Harness(dsh)では、このテキストは手作業で編集するファイルではなく、公式の system-prompt パッケージ(packages/core/system-prompt)がリクエストごとに組み立てます。固定のアイデンティティ行、デプロイのペルソナ、ファーストパーティのツールガイダンス、プラグインが登録したプロンプトセクションすべてを、順序付きの 1 つのメッセージへ統合します。
このページでは、その組み立ての中身、誰が変更できるのか、そして人気のプロンプトプラグイン——ペルソナエディター、prompt armor、思考言語インジェクター——の接続方法を解説します。プロンプトが送られた後に起きることについては agent loop ガイドをどうぞ。このページはテキストそのものに絞ります。
TL;DR
- ▸システムプロンプトは保存されたファイルではなく毎ステップ組み立てられます:system-prompt パッケージが登録セクションを order 順にソートし、renderPrompt で描画します。
- ▸固定部分は 1 行だけ——「You are an AI agent powered by DeepSeek Harness.」——includeHarnessIdentity 設定(デフォルト true)で制御されます。
- ▸コードを書かずに文章を追加できます:personaPrefix と personaSuffix の 2 つの設定項目、または設定ページの persona プラグイン。
- ▸プラグインは ctx.systemPrompt.section(...) で注入します。complete を付けたセクションはそのスコープのプロンプト全体を置き換えます。
dsh のシステムプロンプトはどこから来るか
公式サブシステム文書は契約を正確に定義しています:system-prompt パッケージは「プロンプト貢献者と 1 回のアセンブリ呼び出しの間でやり取りされるデータ」を所有します。貢献者は PromptSection を登録します——一意な name、数値の order、静的またはその都度解決される text を持ちます。セクションは order 昇順で連結され(同順は名前順)、マージ結果がモデルへシステムメッセージとして届きます。
設計を支える 3 つの用語:
PromptSection
貢献される 1 ブロック:name、order、text(静的またはアセンブリごとのプロバイダー)、任意の undefined} 補間。名前の重複は登録時にスローされます。
Assembly(アセンブリ)
1 回の assemble() 呼び出し:グローバル層と要求スコープの層をマージし、ツールスキーマと変数を解決し、system-prompt/assemble ウォーターフォールを実行します。
Surface node 0
描画されたテキストは「派生履歴のシステムメッセージ」としてコミットされます——最初のステップで surface ノード 0 として追加され、テキストが変わるとその場で置き換わります。リクエストフィールドではありません。
モデルが受け取るもの:順番どおりに
ファーストパーティのデフォルトが有効な場合、描画結果は固定順序に従います——−1000 のアイデンティティ行から 10200 のペルソナサフィックスまで、以下のスロットはすべて実在し、パッケージ README が文書化している描画順序と一致します:
- 1
固定アイデンティティ行
order −1000 · includeHarnessIdentity「You are an AI agent powered by DeepSeek Harness.」——唯一のハードコードされた文で、プロンプトの先頭に来ます。includeHarnessIdentity: false で省略できますが、公式がこれを推奨するのはプロンプト全体を所有するデプロイだけです。
- 2
デプロイペルソナのプレフィックス
order 0 · deployment:persona-prefixpersonaPrefix 設定、または persona プラグインの貢献。README はこのスロットがモデル名の紹介を担うと述べています。デフォルトは空。
- 3
ファーストパーティの共通ガイダンス
first-party guidance生成されたツール SDK と構造化出力ガイダンス:マウントされた機能の呼び出し方をモデルに伝えます。登録されたツールスキーマも同じアセンブリに乗ります。
- 4
Harness source 行
order 10000 · harness source環境情報を含むサフィックスは order 10000 の harness source エントリから始まります。
- 5
Web surface
order 10100 · Web surfaceデプロイが公開するローカル Web URL が order 10100 で続きます。
- 6
デプロイペルソナのサフィックス
order 10200 · deployment:persona-suffixpersonaSuffix 設定——order 10200、プロンプトの最後の一言。
- ↻
動的ランタイムコンテキスト
別経路PromptContext → user-role snapshot順序付きの PromptContext はシステムテキストに入りません:出典付きの user-role スナップショットとしてモデル履歴に入ります——キャッシュに優しい別経路です。includeRuntimeContext: false またはスコープのサプレッサーで一括除去できます。
それ以外の登録は宣言された order の位置に入ります——外部の貢献は任意の有限整数を使えます。非常口が 1 つだけあります:complete: true を付けたセクションは唯一のプロンプトセクションになります。アセンブリはツールと変数を解決した上で、そのテキストを忠実にプロンプト全体として復元します——有効な complete セクションが 2 つあると、不正なプロンプトを送る代わりにアセンブリは明確なエラーで失敗します。
誰が変えるのか:3 つのプラグインカテゴリ
YAML を手で編集する人はほぼいません——コミュニティはプラグインで変更します。当サイトのディレクトリはこのクラスタに 40 以上のプラグインを登録しており、実用途で 3 カテゴリに分かれます(星数は 2026-10-04 検証):
ペルソナエディター
xilin3/dsh-prompt-persona(★14)は設定ページからデプロイペルソナをライブプレビュー付きで編集できます——コードなしで 2 つのペルソナスロットを埋める方法。同じスロットは素の personaPrefix / personaSuffix 設定でも変更できます。
Prompt armor(プロンプト防具)
minglink/dsh-infinite-gen-4(★2,294、クラスタ最高星)は armor 系で最も知られたエントリ:テキストを足すのではなく、デプロイ済みプロンプトをプロービングや抽出から堅牢化します——注入ではなく防御です。
インジェクションとプロンプトコンテキスト
len7183/dsh-think-zh(★32)と max-null/dsh-chinese-thinking(★10)は思考言語ディレクティブを注入し(次節)、asktheway/dsh-auto-memory(★81)は長期記憶をプロンプトテキストではなく動的ランタイムコンテキストとして提供します。
中国語思考という差別化の軸
このクラスタを初期に形作った需要が 1 つあります:会話が中国語でも、モデルの思考チェーンはデフォルトで英語になるというもの。公式ディスカッション #8798 に要望が集まり、2 つのコミュニティプラグインがプロンプト層から答えています——フォークもモデル切替も不要です。
len7183/dsh-think-zh(★32)は設定に思考言語の切り替え(簡体字中国語/デフォルト英語)を追加し、返信言語は質問の言語に追従しつつコードと識別子は原文のまま。max-null/dsh-chinese-thinking(★10)はより軽量な代替です。どちらも組み立て済みプロンプトへディレクティブを 1 つ注入する方式で、それこそペルソナスロットとプラグインセクションが存在する意義です。
コストと、プロンプトがモデルに届く仕組み
README はコストに率直です:アイデンティティは有効ならリクエストごとの固定費、ペルソナのプレフィックス・サフィックスとプラグインテキストは毎リクエスト繰り返され、描画長に応じて増減します。相殺の仕組みは削除ではなくキャッシュです:
- ▸描画結果が変わらない間、プロンプトはプレフィックス安定を保ちます:履歴内のシステムノードはそのまま、KV キャッシュがターンをまたいで再利用されます。
- ▸ペルソナ編集・ツール追加・順序変更など、どんな変更も最初の変化トークンから再利用を無効化します。
- ▸継続中のリクエスト系列で systemPromptUpdate: 'in-history' を宣言すると、変更後のプロンプトはキャッシュ済み履歴の後ろに追加され、履歴までのプレフィックスは再利用可能のままです。
- ▸コンテキスト圧縮はこの部分を圧縮できません——圧縮は保持された履歴が対象で、ステップごとのアセンブリは対象外です。節約のレバーは登録を減らすことです。
FAQ
dsh のシステムプロンプトでよく聞かれる質問。
dsh のシステムプロンプトは変更できますか?
できます——強い順に 3 つの方法。設定:system-prompt プラグイン項で personaPrefix と personaSuffix を設定(includeHarnessIdentity: false でアイデンティティ行を除去)。設定ページ:dsh-prompt-persona のようなペルソナエディターで同じスロットを YAML なしで視覚的に編集。コード:ctx.systemPrompt.section(undefined) でセクションを登録——complete: true を付けるとそのスコープのプロンプト全体を置き換えますが、有効な complete が 2 つあるとアセンブリは失敗します。
システムプロンプトが長いと遅くなりますか?
トークンは余計にかかりますが、キャッシュが大部分を吸収します。アイデンティティ+ペルソナ+プラグインテキストは毎リクエスト繰り返されますが、描画が不変である限り履歴のシステムノードはそのまま、プロバイダー側の KV キャッシュがターン間で再利用されます。全額を払い直すのは最初の変化トークンから——毎ターン書き変わる persona テキストが高くつくパターンで、安定したテキストは初回以降ほぼ無料です。
プラグインはどうやってプロンプトに注入するのですか?
レジストリ経由です。プラグインが ctx.systemPrompt.section(undefined) を呼ぶと、そのセクションは毎アセンブリで order 昇順に連結されます。agent 自身の ctx から登録したものはスコープ付きで、同名のグローバルをその agent に対してだけ影で上書きします。マージ後、system-prompt/assemble ウォーターフォールが結果を書き換えられます——complete セクションが存在する場合を除いて。リスナーはそれを追加・置換できません。
profile が違うとシステムプロンプトも変わりますか?
変わり得ます。アセンブリはグローバル層と要求スコープの層をマージし、スコープ付きのセクション・変数・ツールプロバイダーは agent ごとに同名グローバルを影で上書きします——同じインストールでも、仕事用と個人用の profile が別のペルソナセクションを登録すれば、別のプロンプトを受け取ります。固定のアイデンティティ行とファーストパーティのガイダンスは、profile が明示的に無効化したり complete セクションを持ち込んだりしない限り共通です。
これはモデル内蔵のシステムプロンプトと同じものですか?
いいえ——別レイヤーです。モデルベンダーのチューニングは重みの中にあり、dsh からは見えません。dsh のシステムプロンプトはハーネスが実行時に組み立て、システムメッセージとして送るテキストで、固定部分は 1 行のアイデンティティだけです。この分離があるからこそ、同じモデルでも dsh と他のハーネスで挙動が変わり、プロンプト層のプラグインはマウントしたどのモデルでも効きます。
組み立てられた実際のプロンプトはどこで見られますか?
下の 2 つの公式ソースが権威ある契約です:サブシステム文書が正確な型を、パッケージ README が描画順序と全設定項目を文書化しています。実行時は、セッションの trajectory に各ターンでモデルが受け取ったものが記録されます——loop が記録するシステムノード置換のログと合わせると、プロンプトがいつ変わったか正確に追えます。
関連ガイド
システムプロンプトが全体像のどこに位置するか。
dsh agent loop 解説
dsh の 1 ターンはこう動く:turn のライフサイクル、プラグインのフックポイント、セッション暴走を防ぐ loop guard。
ガイドを読むDeepSeek Harness サブエージェントとマルチエージェント実践
5つのサブエージェントを並列実行:ヘッダーから各子を監視し、完了レポートを確認し、サブエージェントごとにモデルを指定。スクリーンショット付きの手順
ガイドを読む4 つのモード:Standard・PTC・Minimal・Creator
各エージェントプリセットの中身、得意な場面、そして Creator モードで独自プリセットを作る方法。
ガイドを読むまず入れるべき dsh スキルのおすすめ
どのスキルを入れるべきか、有効化すると何ができるかを、実際の画面とともに 1 つずつ解説
ガイドを読むソースと根拠
本ページの仕組みはすべて次のソースに遡れます。commit と星数は 2026-10-04 に検証。
