2026年版 DeepSeek Harness(dsh):アーキテクチャ、モード、リリース、安全な評価

更新日:2026年9月13日。本ガイドは dsh-v0.1.5-rc.2 に基づいています。
DeepSeek Harness(dsh)はエージェントランタイムとして評価する価値がありますが、「本番で使うのに十分安定しているか」という現在の答えは「いいえ」です。DeepSeek はこれを開発者プレビューのソフトウェアと位置付け、互換性を壊す変更が起こると警告し、セキュリティ監査も本番対応の認定も受けていないと述べています。だからといって dsh が面白くないわけではありません。使い方を示しているのです。評価するものを固定し、到達できる範囲を隔離し、価値のあるファイルや認証情報を任せる前に自分のワークロードで測定してください。
このガイドではアーキテクチャを説明し、dsh のユーザー向けモードと CLI プロファイルを分け、再現可能な評価手順を示します。内容は 2026年9月13日に確認した dsh-v0.1.5-rc.2 のリポジトリタグとリリースページを反映しています。動き続けるブランチのドキュメントには、インストールするリリースに含まれない作業がある場合があります。
DeepSeek Harness とは
公式リポジトリ は dsh を DeepSeek AI が開発したオープンソースのエージェントハーネスとして説明しています。モデルが推論を担い、ハーネスはその周囲のランタイム、すなわちモデルアダプター、ツール、セッション、ファイルシステムとサブプロセスへのアクセス、承認ポリシー、設定、エージェントループを提供します。
設計は Cordis と「すべてがプラグイン」というモデルの上にあります。このタグのアーキテクチャ文書によれば、プラグインは共有コンテキストにサービス、型付きイベント、可逆的な効果を追加します。モデルアダプター、ツールレジストリ、セッションログ、エージェントループはすべて置き換え可能な部品です。そのうえでプロファイルが、決められた順序でバンドルとパッチファイルを組み合わせます。
この区別には実務的な意味があります。ランタイム全体をフォークせずに、プロファイルとパッチを通じてプロバイダーを変えたり機能を追加したりできます。ただし、すべてのコンポーネントをどのタスク中でも安全に差し替えられること、あるいはプラグインの失敗がプロセスからアクセスできるすべてのデータから隔離されることを意味しません。このタグの安全性に関する注意は、モデル生成コマンドとサードパーティープラグインが、公開されたファイル、プロセス、ネットワーク、認証情報に到達し得ると述べています。
セッションログが重要な理由
dsh は耐久性のあるセッションイベントを追記専用ログに記録します。アーキテクチャ文書はセッションログをモデル履歴の導出元と位置付け、モデルに見せる入力はそのログから再構築可能でなければならないとしています。公式 DeepSeek ページも、リプレイ、再開、検索、フォークを同じイベントストリームに対する操作として説明します。
これは開発者に、曖昧な「メモリー」機能より有用なもの、すなわちモデルに何を見せ、どのツールイベントが確定したかの記録を与えます。それでも決定論的な結果を保証するわけではありません。モデル、プロバイダーの応答、ツール環境、プラグインセット、外部システムはいずれも次回の実行に影響します。ログは監査とデバッグの補助として扱い、必要な挙動は検証してください。
セッション形式の変更もアップグレード計画に影響します。v0.1.5-rc.1 のリリースノートは、セッション形式 V3 への移行を説明しています。サポートされる古いログは新しいバージョンに移行され、元のログは保持されますが、アップグレード済みセッションはダウングレードしたバージョンでは読めないとノートは述べます。つまり、実行ファイルを戻すことはセッションデータを戻すことと同じではありません。価値のあるワークスペースをアップグレードする前に Harness home をコピーし、使い捨てセッションで移行を試してください。
4つのユーザー向けモード
DeepSeek の公式Harness ページは4つのモードを挙げています。これらはエージェントをユーザーにどう提示するかを表します。
| モード | 公式説明の内容 | 評価に適した質問 |
|---|---|---|
| Standard | ファイル編集、Shell、ファイルと Web の取得、Skills、計画、ゴール、サブエージェント、ワークフローを備えた完全なコーディングエージェント。 | 承認とツールのポリシーで、実行予定のタスクを十分に制限できるか。 |
| PTC | Code Mode SDK を通じて公開される Standard の機能であり、モデルが TypeScript プログラムで複数のツール操作を組み合わせられる。 | 操作のバッチ化は、レビューを難しくせずにワークフローを改善するか。 |
| Minimal | 公式製品概要では、永続的な bash と str_replace_editor を説明している。 |
小さく明示的なツール面で、ベンチマークしたいタスクを完了できるか。 |
| Creator | ランタイムの検査、メモリー内での Cordis プラグイン実験、カスタム Agent プリセットの作成のためのモード。 | それを本番ポリシーとして扱わずにプリセットを試作できるか。 |
古い「Code Mode」というラベルは誤読しやすいものです。公式製品説明はそのモードを PTC と呼び、Code Mode SDK を使用すると説明しています。code という別個の、広く文書化されたランタイムプロファイルではありません。
製品概要と出荷された rc.2 プロファイルでは、「Minimal」が異なるレベルで使われています。rc.2 CLI 動作リファレンスでは、Web の minimal プリセットはプラットフォームの永続的シェルだけを構成し、その他のモデル向けプラグインはありません。そのため、その Web プロファイルで str_replace_editor を使うには明示的な有効化が必要です。rc.1 リリースノートも、Web minimal と Python sdk-minimal の同じデフォルトを述べています。下記の Python ガイドの注記は、別の sdk-minimal ツリーとオプトインのエディターを扱っています。4モードの概要だけからエディターがあると推測しないでください。
モードと CLI プロファイルは異なる層です
コマンドラインには独自のプロファイルモデルがあります。rc.2 用の@deepseek-ai/dsh CLI リファレンスは、dsh をサポート対象の Node アプリケーションランチャーとし、次の出荷済みプロファイルを列挙しています。
| CLI エントリー | 役割 |
|---|---|
dsh web |
Web UI。dsh --profile web の別名。 |
dsh --profile headless "job" |
最終回答を出力して終了する、1つの新しい永続セッション。 |
dsh --profile sdk |
stdio 経由で SDK クライアント向けの JSON-RPC サーバー。 |
dsh --profile sdk-minimal |
独立した minimal エージェントツリーを使う SDK サーバー。 |
dsh --profile acp |
ACP stdio 経由の自動化クライアント。 |
プロファイルは、順序付けられたプラグインバンドル層です。Web プロファイルはライブパッチ再読み込みを使えます。一方、headless、SDK、SDK-minimal、ACP は、ワンショットまたは stdio アプリケーションが仕事を所有した後で依存関係を置き換えるとライフサイクルを無効にするため、起動時に層を適用します。従ってプロファイル名は、dsh の起動方法とランタイム構成を示します。4つの製品モードと1対1に対応するわけではありません。
rc.2 Python SDK ガイドはこの区別をさらに重要にします。その sdk-minimal の例は、永続シェル、ランタイムコンテキストとコンパクションなし、非圧縮 JSONL セッションログを備えた独立ツリーを使います。str_replace_editor はそのプロファイルではオプトインです。ガイドは、可視パスに対してプロファイルを danger-full-access とも説明しており、隔離されたワークスペースまたはコンテナーを求める理由です。ツールのリストが小さいだけで、より強いセキュリティ境界になるわけではありません。
最新リリース記録で変わったこと
確認したリリースページでは、候補は v0.1.5-rc.2、タグは dsh-v0.1.5-rc.2 で、Pre-release と表示されています。GitHub は9月10日15:09のリリースとして示しています。rc.2 のノートには、フィードバック送信と配信済みファイルカードの UI 改善が含まれます。
先行する候補 v0.1.5-rc.1 は9月10日03:09にリリースされ、より大きな変更セットを含みます。ノートには、新しい DeepSeek モデルアダプターエントリー、任意ファイルのアップロード、継続可能なサブエージェント制御、モデルがサポートを宣言する場合の動的システムプロンプト更新、モデル検出の改善、プロキシ環境処理、セッション形式 V3、セッションロック、デフォルトツールの変更、ストリーム中のツール呼び出し継続と Web 再接続動作を含む多数の修正があります。
これらのノートは変更点を示します。稼働率、失敗率、平均復旧時間、本番信頼性の結果を示すものではありません。長い修正リストは、ノートを読み回帰タスクを実行する理由であり、安定性の統計ではありません。テストを文書化する際には、選択した GitHub リリースとタグ、確認したかもしれない master コミット、環境に実際にインストールされたバージョンという3つを分けてください。
安全で再現可能な最初の評価
評価には1つの固定されたソースパスを使います。以下のコマンドは rc.2 READMEとrc.2 CLI リファレンスに従います。この記事のために実行したコマンドではなく、文書化されたエントリーポイントです。
最初の起動前に、チェックアウト、1回限りのワークスペース、新しい Harness home を作成します。この例は POSIX shell 構文を使用し、rc.2 README が要求する Git、Node.js、pnpm が既に使えると仮定します。未検証のランタイムバージョンを指定するものではありません。
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
git checkout dsh-v0.1.5-rc.2
pnpm install
pnpm run build
export DSH_HOME="$(mktemp -d)"
EVAL_WORKSPACE="$(mktemp -d)"
printf '%s\n' 'Disposable dsh evaluation workspace.' > "$EVAL_WORKSPACE/README.md"
printf 'DSH_HOME=%s\nEVAL_WORKSPACE=%s\n' "$DSH_HOME" "$EVAL_WORKSPACE"
表示された2つの絶対パスを実行メモに保存してください。Web UI のファイル選択では表示された EVAL_WORKSPACE パスを使い、2つ目のシェルでは変数が継承されると期待せず、表示された DSH_HOME パスを貼り付けます。DSH_HOME はこの評価に限って保持してください。rc.2 はそこにプロファイルファイル、設定、認証情報への参照、セッションを作成します。一時ワークスペースはソースチェックアウトとは別です。認証情報を置かず、プロセスから見えるもののうち機密ファイルは起動前に取り除いてください。OS レベルの隔離が必要なら、このチェックアウト、home、ワークスペースを使い捨て VM またはコンテナーに置いてください。dsh のワークスペース選択と承認プロンプトはその OS 境界を提供しません。
ソースルートから、ソースエントリーポイントを一貫して使って Web UI を起動します。
pnpm dsh web --no-open
rc.2 README は http://127.0.0.1:3080 を既定のローカルアドレスとして文書化しています。ブラウザーで Choose workspace を開き、上で表示された正確なワークスペースパスを選択します。起動ディレクトリだったからといって、ソースチェックアウトをタスクワークスペースのままにしないでください。次に Settings → Models を開き、モデルを設定し、秘密情報や本番ファイルに触れない無害なタスクを実行します。
この最初の試行では、もう1つ理解すべき境界があります。rc.2 では、base-backed プロファイルの新しいセッションは既定で workspace-write です。Bash とファイルシステムの変更はセッションワークスペースとプラットフォームの一時ルートに制限されますが、読み取りとネットワークアクセスはこのプリセットに閉じ込められません。有効な public HTTP fetch は呼び出しごとの承認プロンプトなしで動きます。保存した General の権限設定は、既に開いているセッションではなく、後の Web セッションに適用されます。変更後は新しいセッションで設定を確認してください。これらは dsh のポリシー詳細であり、OS 隔離ではありません。起動前に機密資源を到達不能にしてください。
別のプロファイルを起動したりパッチを比較したりする前に、同じソースチェックアウトと home で同じ構成を調べます。
pnpm dsh --profile web --dump-config
Web プロセスは最初の端末を使用します。home をコピーしたり最終状態を検査したりする前に、サービスとアクティブなセッションを停止してください。別のシェルを開く場合は、記録した $DSH_HOME パスを明示的に export し、コマンドを実行する前にソースチェックアウトへ戻ります。rc.2 CLI リファレンスは、これが不足しているプロファイルファイルを初期化し、構成されたツリーを表示し、Web アプリは起動しないとしています。タグ、ソースチェックアウト、プロファイル、パッチファイル、モデル識別子、$EVAL_WORKSPACE、$DSH_HOME、タスク結果を記録してください。CLI/help とリリースノートは動作を説明しますが、ローカルコマンドの成功の証拠ではありません。
モデルまたはゲートウェイを慎重に設定する
Web UI の Models ページは、組み込みプロバイダーとカスタムプロバイダーをサポートします。rc.2 プロバイダーガイドは、カスタムプロバイダーに ID、base URL、API プロトコル、認証情報、少なくとも1つのモデルを要求します。サポートされるプロトコル名は openai-completions、openai-responses、anthropic-messages です。モデル検出は便利機能にすぎません。エンドポイントがサポートされた一覧形式を公開しない場合は、モデル ID を手動で入力してください。
OpenAI 互換ゲートウェイであっても、リクエスト形式が dsh の送信形式と異なればリクエストを拒否することがあります。プロバイダーガイドは、システムプロンプトのロールと出力トークンフィールドの互換性を挙げ、画像または推論の宣言はエンドポイントをテストするものではなく説明するものだと述べています。キーの保存に成功しても、実際のタスクが動く証明ではなく、設定作業の進捗として扱ってください。
Tokenhot をプロバイダー経路として評価する場合、その保存済みのQuick Startは API セットアップ用に https://api.tokenhot.ai/v1 と Bearer Token/API キー認証を文書化しています。Web UI で Settings → Models → Add a custom provider を使い、その文書化された base URL を入力し、選択した Tokenhot 経路が実際に公開するプロトコルを選び、確認済みのモデル ID を追加します。プロバイダー設定はこの評価用の $DSH_HOME/settings.yaml にあり、Web UI は認証情報を $DSH_HOME/.credentials.yaml に保存して設定には参照だけを保持します。キーは UI または文書化された環境メカニズムから入力し、使い捨てワークスペースやソース管理には決して置かないでください。
選択した Tokenhot 経路がそのプロトコルを文書化または確認している場合にのみ openai-completions を使ってください。モデル ID とリクエスト形式は自分のアカウントとワークロードで確認します。この記事で利用できた Tokenhot 資料は、現在のモデル提供状況、価格、レイテンシー、稼働率、dsh リクエストの成功を立証していないため、この例はそのような約束をしません。
アップグレードとロールバックの確認
候補を移動する前に、Web プロセスとアクティブなセッションを停止し、上で使った正確な $DSH_HOME と使い捨てワークスペースをコピーし、バージョン記録の横にコピーを保管してください。その home には、比較を再現可能にするプロファイル、設定、認証情報への参照、セッションがあります。セッション形式、既定ツール、プロバイダーアダプター、プラグイン API の変更についてリリースノートを読みます。古い環境と新しい環境で同じ小さなタスクを実行してから、次を比較してください。
- Web UI または headless プロファイルは、意図したワークスペースとモデルで起動できるか。
- ツール承認はポリシーが期待する地点で表示されるか。
- タスクを再開でき、セッションログに検査したいモデル可視入力とツール結果が含まれるか。
- プラグインとパッチは設定エラーなくロードされるか。
- 新しい実行が失敗した場合、コピーした home を復元して古いセッションファイルを使い続けられるか。
移行をテストする間、唯一のセッションコピーを上書きしないでください。新しいリリースがより新しいセッション形式を書き込むなら、元のものを並べて保存し、コピー上でダウングレード動作をテストします。新しいソースチェックアウトが失敗した場合は、コピーした $DSH_HOME とワークスペースを一緒に復元してください。実行ファイルだけを戻すと、古いバージョンが読めない形式のセッションデータが残る可能性があります。自分のファイル、プロバイダー、ツール、承認ポリシーでこれらの確認に通ってから、価値のある環境へバージョンを昇格させてください。
よくある質問
DeepSeek Harness は公式ソフトウェアですか?
このプロジェクトは deepseek-ai/deepseek-harness 組織で公開され、DeepSeek の公式 Harness ページからリンクされ、MIT ライセンスでリリースされています。現在の動作とリリース状況には、リポジトリと公式ページが適切な情報源です。
dsh は LLM ですか?
いいえ。これはモデルを囲むランタイム、すなわちプロバイダー、ツール、セッション、エージェントループ、ポリシー、アプリケーションプロファイルです。互換性のあるモデルエンドポイントと認証情報は依然として必要です。
CI にはどのエントリーを使うべきですか?
1回限りのコマンドには、文書化された headless プロファイルから始めてください。使い捨てワークスペースと明示的な Harness home を渡し、バージョンを固定し、自動化する予定の正確なプロバイダーとタスクをテストします。headless 実行はエントリーポイントであり、決定論的または本番安全な動作の保証ではありません。
リリースの修正リストは安定性を証明しますか?
いいえ。リリースノートは変更された動作と修正を説明します。母集団やワークロードをまたぐ信頼性を測定するものではありません。回帰ケースを選ぶために使い、その後、自分の結果を収集してください。
dsh を Tokenhot 経由でルーティングできますか?
選択した Tokenhot エンドポイントが dsh のサポートするプロトコルのいずれかを公開し、モデル ID とリクエスト形式に互換性があれば、可能性があります。Tokenhot の文書化された API セットアップは base URL と Bearer Token の形式を示しています。実際の互換性結果には認証済みリクエストが必要であり、このガイドの範囲外です。
どこから始めればよいですか?
rc.2 リポジトリ READMEを読み、隔離されたワークスペースを選び、無害なタスクに対して Web UI または headless プロファイルを実行してください。プロバイダー実験で文書化された Tokenhot API フィールドが必要なら、Quick Startに従い、結論を出す前にモデルとプロトコルを確認してください。
dsh は開発者プレビューであり、製品モードと CLI プロファイルは別の層です。評価ではバージョンを固定し、到達可能な資源を隔離し、セッション形式と安全性を含めて自分のワークロードで検証します。


