DeepSeek Harness (略して dsh) は、DeepSeek AI のオープンソース AI エージェント ハーネスです。モデルが質問に答えると、ハーネスはファイルの読み取りと編集、コマンドの実行、セッションの保持、実行軌跡の表示、プラグインによる拡張を可能にします。このプロジェクトは MIT ライセンスに基づいて配布されており、パブリック プレビュー段階にあります。
DeepSeek Harness の主なアイデアは、「すべてがプラグインである」、つまり文字通り「すべてがプラグインである」として定式化されています。製品全体は、モデル アダプター、ツール レジストリ、セッション ログ、インターフェイス、さらにはエージェント サイクル自体も含めて構築されています。これは Cordis フレームワークに基づいているため、開発者は新しいコマンドを追加するだけでなく、カーネルをフォークせずにエージェントの動作全体を置き換えることができます。
dsh は、ローカル Web インターフェイス、デスクトップ アプリケーション、ヘッドレス モードのコマンド ライン、または Python SDK など、さまざまな方法で操作できます。以下はインストール、初回起動、機能の概要です。
必要なもの
Web インターフェイスと CLI には Node.js が必要です。プロジェクトには次のような厳しい要件があります。
- 22.x ラインの Node.js 22.19.0 以降
- 24.x ラインの Node.js 24.0.0 以降
- Node.js 23.x はどのパッチでもサポートされていません: このラインは LTS ではなく、すでに廃止されています。
Node.js に加えて、DeepSeek API キーが必要になります。これは、platform.deepseek.com の個人アカウントで作成されます。デスクトップ アプリケーションには Node.js は必要ありません。環境はすでにそこにパッケージ化されています。
次のコマンドでバージョンを確認できます。
node -v
npx によるインストール
プロジェクトについて知る最も早い方法は、グローバルに何もインストールしないことです。ただ実行してください:
npx @deepseek-ai/dsh web
このコマンドは、npm から @deepseek-ai/dsh パッケージをダウンロードし、ローカル Web サーバーをセットアップして、ブラウザでインターフェイスを開きます。デフォルトでは、次のアドレスをリッスンします。
リモート マシンなどでブラウザを開く必要がない場合は、–no-open フラグを追加します。
npx @deepseek-ai/dsh web --no-open
SSH 経由で起動すると、dsh はアドレスを出力しますが、ブラウザを開こうとはしません。ローカル アドレスは SSH クライアントまたはエディタが所有します。
グローバル インストール
ツールが常に必要な場合は、グローバルにインストールする方が便利です。パッケージはdsh バイナリを提供します。
npm install -g @deepseek-ai/dsh
dsh web
これ以降、どのディレクトリからでも dsh コマンドを使用できるようになります。更新は通常の方法で実行されます。
npm install -g @deepseek-ai/dsh@latest
デスクトップ アプリケーション
ターミナルと Node.js を保持したくない人のために、DeepSeek はデスクトップ ビルドをリリースします。これらは公式ダウンロード ページから入手できます。
- macOS – Apple シリコン、macOS 13 以降、DMG フォーマット
- Windows – 64 ビット アセンブリ、EXE 形式。
アプリケーションは同じローカル ファイルを使用して動作し、Web バージョンと同じ方法でバックグラウンドでタスクを実行し、セッションを保存できます。これは、サーバーを毎回手動で起動したくない場合の日常の作業に便利なオプションです。
ソースからの構築
コード、独自のパッチ、プラグイン開発を完全に制御する必要がある場合は、プロジェクトがリポジトリから収集されます。 pnpm が必要で、リポジトリは特定のバージョンを修正するため、最初に Corepack を有効にする必要があります。
corepack enable
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web
pnpm run build コマンドはパッケージとフロントエンド アーティファクトを準備し、pnpm dsh web はビルド済みのバージョンをリビルドせずに実行します。開発用には、pnpm run dev:web モードがあります。これは、ソースが変更されたときにビルドしてサーバーを起動し、クライアント バンドルを再構築します。
最初の起動
Webインターフェース起動後の手順は以下の通りです。
まず設定 → モデル を開き、DeepSeek API キーを入力します。キーはファイル $DSH_HOME/.credentials.yaml に保存され、そのキーへのリンクのみが設定に残ります。設定ページは、すでにマスクされたシークレットの説明を受け取るため、インターフェイスからキーを読み取ることはできません。モデルの変更は次のリクエストから適用されます。サーバーを再起動する必要はありません。
次に、ワークスペースの選択で作業フォルダーを選択します。ワークスペースが選択されていない間、タスク入力フィールドはグレー表示されたままになります。これは意図的に行われます。エージェントは、ファイルの読み取りと変更が許可される境界を理解する必要があります。
この後、最初のタスクを送信できます。例えば:
Summarize this repository and identify its main packages.
エージェントはプロジェクトを読み、計画を作成し、必要なツールを呼び出して結果を表示します。現在のアクセス ポリシーに基づいて確認が必要な操作の場合、dsh は実行前に確認を求めます。
モデルとプロバイダー
DeepSeek は 1 ステップで接続します。設定のプロバイダー カードには API キーのフィールドのみが含まれています。さらに、サードパーティのサービスを追加することもできます。組み込みのディレクトリは、anthropic、openai、Kimi のmoonshotai、GLM のzai などの識別子を認識します。
独自のゲートウェイ、企業プロキシ、またはローカル サーバーの場合はカスタム モデル API モードがあります。それは次のように尋ねます。
- 永続的なプロバイダー識別子;
- 表示名;
- API ベース アドレス;
- プロトコル: OpenAI チャット完了、OpenAI 応答、または人為的なメッセージ;
- キーとモデルのリスト
プロトコルは重要です。1 つのプロバイダーが 1 つのプロトコルを話します。ゲートウェイが OpenAI と Anthropic の両方をサポートする場合、ゲートウェイは 2 つのプロバイダーによって記述される必要があります。モデルの場合、コンテキスト ウィンドウのサイズ、出力トークンの最大数、サポートされる入力データ型 (画像など) を指定できます。
DeepSeek モデルには、オフ、低、高、最大の推論レベルがあります。レベルはモデルの横にある作業量メニューで選択します。リポジトリ内の日常的なタスクの場合は、高速なモデルで十分ですが、複雑なアーキテクチャ上のタスクの場合は、労力を増やすか、より高いクラスのモデルを使用することが合理的です。
プラグインとクリエイター モード
プラグインは DeepSeek Harness の主な機能です。これらを通じて、ツール、スキル、インターフェイス要素、およびアプリケーション全体が追加されます。このインターフェイスには、エージェント コマンド、自動確認、スケジュールされたタスク、音声入力、ターミナル、サブエージェントなどの公式セットと実験セットを備えたプラグイン マネージャーがあります。
それとは別にクリエイターモード が際立っています。このモードでは、チャット内で直接プラグインを作成するようにエージェントに依頼できます。 Cordis プラグイン開発スキルをダウンロードし、パッケージ構造を作成し、コードを記述し、プラグインをインストールしてステータスを確認します。公式プロジェクトページには、この方法でフローティングポモドーロタイマーを組み立てた例があります。
プラグインはコマンドラインからインストールすることもできます。 Web プロファイルの場合、コマンドは次のようになります。
dsh plugin --profile web add some-dsh-plugin
Npm パッケージ、github:owner/repo などのリンク、ローカル ディレクトリ、tgz アーカイブがサポートされています。インストール後、プラグイン層が実際に構成に含まれていることを確認すると便利です。
dsh --profile web --dump-config
このコマンドは、サーバーを起動せずに、組み立てられたプラグイン ツリーを出力します。新しいレイヤーがない場合、バンドルは dsh.bundle マニフェストを宣言しておらず、組み込まれたプラグインとしてではなく通常のライブラリとしてインストールされている可能性があります。
実験的な設定にはカスタム プラグイン マーケットが含まれます。これは、プラグイン、そのバージョン、アイコン、ソースのリストを含むインデックス JSON ファイルです。このセットを有効にすると、プラグイン ページに [検出] タブが表示され、サードパーティ マーケットに接続できるようになります。他のサードパーティ ソースと同様に、そのようなマーケットは作成者を信頼できる場合にのみ追加する必要があります。
軌跡と監査
セッションごとに、dsh は追加専用のイベント ログであるトラジェクトリを書き込みます。システム プロンプト、推論、ツール呼び出しとその結果、サブエージェントのスケジューリング、およびコンテキストの挿入が保存されます。セッションの再開、フォーク、検索、再生はこのログに基づいて構築されます。
実際的な利点は、会話がブラックボックスでなくなることです。インターフェイスでは、トラジェクトリを開いて、どのツールが呼び出されたか、各ステップにかかった時間、どのファイルが変更されたか、リクエストに費やされたトークンの数を確認できます。エージェントが奇妙な動作をした場合、その理由は通常、チャット内の短い回答ではなく、ここに表示されます。
セッションは、JSONL ログの形式で ~/.dsh/sessions にあります。これらを読んだり、検索したり、独自の分析を構築したりできます。これにより、通常の API 請求書では表示されない経費やキャッシュ ヒットを正確に計算することも可能になります。
バックグラウンド タスクとスケジュール
DeepSeek ハーネスは、「質問して回答を受け取る」モードだけで機能するわけではありません。タスクはバックグラウンドで起動してスケジュールすることができます。たとえば、毎週金曜日の 17:00 にプロジェクト ノートから週次レポートを収集するようにエージェントに依頼します。インターフェイスでは、そのようなタスクが個別に表示されます。ステータスを確認し、履歴を表示し、実行の詳細を開くことができます。
自動化用のヘッドレス プロファイルがあります。 1 つのセッションを開始し、最終応答を出力して終了します。
dsh --profile headless "run the tests"
このモードは、Web インターフェイスが必要ない CI、cron、およびスクリプトに便利です。ヘッドレスに加えて、sdk プロファイルと acp プロファイルも利用できます。最初のプロファイルは JSON-RPC 経由で SDK クライアントにサービスを提供し、2 つ目は ACP stdio 経由でオートメーション クライアントにサービスを提供します。
サブエージェント、MCP、スキル
複雑なタスクはサブエージェント間で分解できます。メイン エージェントが作業を計画し、個々のサブエージェントがそれぞれの領域に取り組みます。これにより、コンテキストをコンパクトに保ち、履歴全体を各リクエストにドラッグすることがなくなります。
外部ツールとデータ ソースは MCP 経由で接続されます。このドキュメントには、メモリ MCP に関する別のガイドと、GitHub レビュー セッションなどの統合が含まれています。スキルは、システム プロンプトにすべての指示を常に表示し続けるのではなく、エージェントが必要に応じてロードする反復可能な手順を記述します。
プロファイル、バンドル、パッチ
dsh 構成は 3 つの層から構成されます。 バンドル は、設定行とプラグイン コードのセット、つまり既成の機能です。 プロファイル はバンドルの名前付き構成であり、$DSH_HOME/profiles/
適用の順序は次のとおりです。最初にプロファイルの順序でバンドル、次にプロファイル パッチ、次に一般パッチ $DSH_HOME/cordis.patch.yml 、そして最後に –patch 経由で送信されるオーバーレイです。これは、バンドル ソースに触れることなく、ほぼすべての設定を上書きできることを意味します。次のコマンドを使用して、結果のツリーを表示できます。
dsh --profile web --dump-config
標準の Web プロファイルはウェブ と呼ばれ、サーバーレス プロファイルはヘッドレス と呼ばれます。設定ファイルは $DSH_HOME/profiles/web/cordis.patch.yml と $DSH_HOME/profiles/headless/cordis.patch.yml にあります。ここに、dsh は設定インターフェイスを通じて行われた変更を書き込みます。
Python SDK
Python プロジェクト用の公式 SDK があります。これは仮想環境にインストールされ、ネイティブ ランタイムが付属するため、通常の作業にはシステム Node.js は必要ありません。
python -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install deepseek-harness-sdk
最小限の起動例は次のようになります。
from pathlib import Path
from deepseek_harness import DeepSeekHarness
workspace = Path("C:/work/disposable-workspace").resolve()
dsh_home = Path("C:/work/example-dsh-home").resolve()
with DeepSeekHarness(
provider="deepseek-official",
model="deepseek-v4-flash",
max_tokens=49_152,
cwd=str(workspace),
dsh_home=str(dsh_home),
profile="sdk-minimal",
) as harness:
result = harness.run(
"Inspect the repository and fix the failing tests.",
session_id="example-001",
)
print(result.final_response)
SDK は、バンドルされた dsh プロセスを sdk-minimal プロファイルで開始し、コンテキスト マネージャーを終了する前に再利用します。最小限のプロファイルは意図的に制限されています。bash または pwsh、イメージ読み取り、作業ディレクトリはありますが、Web ツール、サブエージェント、または一部のファイル ツールはありません。 1 回限りのタスクの場合、これは利点です。制御する領域が少なくなります。
注意すべきこと
DeepSeek Harness は開発者向けプレビュー バージョン 0.1.0-rc.x です。 README では、互換性が失われると明示的に警告しています。実験、個人プロジェクト、自動化の場合はこれで問題ありませんが、現時点で収益を上げているプロセスの場合は、リスクを比較検討し、バックアップ計画を維持する価値があります。
2 つ目のポイントは Node.js です。 22.18 または 23.x を使用している場合、インストールがクラッシュするか、予期しない動作が発生します。事前にバージョンを確認してください。プロジェクトでは、node:sqlite と、新しいブランチを必要とする TypeScript の組み込みの消去が使用されています。
3 番目のポイントは、サンドボックスと権利です。デフォルトでは、エージェントはワークスペース書き込みに近いポリシーで動作します。つまり、選択したフォルダー内のファイルを変更することができ、潜在的に危険な操作には確認が必要です。危険フルアクセス モードではより自由度が高くなりますが、リスクも高くなります。実際のリポジトリを試す前に、コミットまたはバックアップを作成すると便利です。
4点目はコストです。 DSH 自体は無料ですが、推測のためにトークンでプロバイダーに支払います。長いセッションでは、プレフィックス キャッシュが重要です。dsh は、履歴とツール スキーマが可能な限り長く変更されないようにリクエストを作成します。スコアが予想よりも高いことが判明した場合は、トークンあたりの価格だけでなく、軌跡内のキャッシュヒットの割合にも注目してください。
試してみる価値はありますか
DeepSeek Harness は、主に「モデルとの別のチャット」だけでなく、エージェントのための制御された環境を必要とする人々にとって興味深いものです。透明な軌跡、ファイルとコマンドを使用した通常の作業、バックグラウンド タスク、サブエージェント、そしてプラグインによる真に深い拡張があります。エージェント ループを独自のものに置き換える機能はまれで、研究やカスタム オーケストレーションに非常に役立つ可能性があります。
日払いの仕事に安定したツールが必要な場合は、dsh をメイン エージェントに次ぐ 2 番目のエージェントとして扱うことが賢明です。個人プロジェクトで試し、タスクのコストと品質を比較してから、ワークフローに移行します。
リンク
https://www.deepseek.com/harness/
https://www.deepseek.com/download/
https://github.com/deepseek-ai/deepseek-harness
https://deepseek-harness.github.io/deepseek-harness/en/guide/quickstart
https://deepseek-harness.github.io/deepseek-harness/en/guide/providers
https://deepseek-harness.github.io/deepseek-harness/en/guide/python-sdk
https://platform.deepseek.com/
ソース
https://github.com/deepseek-ai/deepseek-harness/blob/master/README.md
https://github.com/deepseek-ai/deepseek-harness/blob/master/apps/cli/README.md
https://deepseek-harness.github.io/deepseek-harness/en/guide/quickstart
https://deepseek-harness.github.io/deepseek-harness/en/guide/providers
https://deepseek-harness.github.io/deepseek-harness/en/guide/python-sdk
https://deepseek-harness.github.io/deepseek-harness/en/guide/plugin-market
https://dshdocs.com/getting-started/installation/
https://dshdocs.com/concepts/profiles-bundles-patches/
https://dshdocs.com/guides/dsh-vs-claude-code/
Leave a Reply