DeepSeekが、オープンソースのAgent Harness「DeepSeek Harness」を公開しました。
更新時点の2026年8月16日には、GitHubで111,697スターを集めています。注目度はかなり高いものの、実際の位置付けを考えるときにClaude Codeの競合や代替として単純に比較すると、少し分かりにくくなります。
DeepSeek Harnessは、完成されたコーディングエージェントそのものというより、AI Agentを動かすための実行基盤を組み替えられるようにしたフレームワークとして見る方が理解しやすいからです。
公式リポジトリでも、DeepSeek HarnessはオープンソースのAgent Harnessと説明されており、設計思想として掲げられているのが「Everything is a Plugin(すべてがプラグイン)」です。
この記事では、DeepSeek HarnessがClaude Codeと何を競っていて、何がそもそも異なるのかを整理します。
GitHub - deepseek-ai/deepseek-harness: DeepSeek Harness: Everything is a Plugin.
DeepSeek Harness: Everything is a Plugin. Contribute to deepseek-ai/deepseek-harness development by creating an account on GitHub.
https://github.com/deepseek-ai/deepseek-harness
まずはDeepSeek Harnessを起動する
公式READMEで案内されている起動方法はシンプルです。
Node.jsが利用できる環境で、次のコマンドを実行します。
npx @deepseek-ai/dsh web
起動するとWeb UIが立ち上がり、デフォルトでは次のアドレスからアクセスできます。
http://127.0.0.1:3080/
ソースコードから動かす場合は、公式READMEでは次の手順が案内されています。
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web
ただし、DeepSeek Harnessは記事執筆時点でDeveloper Previewです。
公式側も今後破壊的変更が発生すると明記しているため、設定ファイルやプラグインの有効化方法など、細かい操作手順については固定された仕様として考えない方がよいでしょう。
原文にはWeb UIでSkillsを有効化するための追加パッチ設定なども紹介されていましたが、こうした部分はバージョン依存性が高いため、この記事では公式READMEで確認できる起動方法に絞ります。
Claude Codeとは、そもそもの立ち位置が違う
原文で強調されているのは、DeepSeek Harnessを「Claude Codeの無料版」や「Claude Codeの代替」と考えると、本質を見失いやすいという点です。
Claude Codeは、ターミナルを中心に利用する完成度の高いコーディングエージェントです。コードベースを読み、ファイルを編集し、コマンドを実行しながらタスクを進められます。
一方、DeepSeek Harnessが強く意識しているのは、Agentそのものを構成する部品です。
簡略化すると、両者の方向性は次のように整理できます。
| 観点 | DeepSeek Harness | Claude Code |
|---|---|---|
| 主な位置付け | Agent Harness / フレームワーク | コーディングエージェント |
| 主なUI | Web UI | ターミナル中心 |
| 設計の中心 | プラグインによる組み替え | すぐ使える統合された体験 |
| Agent Loop | 拡張対象として設計 | 製品内部で提供 |
| 拡張手段 | Harness全体をプラグイン化する方向 | Skills、MCP、Hooks、Subagents、Pluginsなど |
| 現時点の成熟度 | Developer Preview | 実用段階の製品 |
どちらが優れているかというより、比較しているレイヤーが違うと考えた方が自然です。
「すべてがプラグイン」という設計
DeepSeek Harnessで最も特徴的なのが、Everything is a Pluginという考え方です。
原文では、全体像を次のように整理しています。
┌─────────────────────────────────────┐
│ DeepSeek Harness │
├─────────────────────────────────────┤
│ Cordis microkernel │
│ プラグインの読み込み・依存関係を管理 │
├─────────────────────────────────────┤
│ Plugin layer │
│ │
│ Model Tools Skills │
│ Session Sandbox Storage │
│ Loop Schedule UI │
└─────────────────────────────────────┘
つまり、モデルだけを差し替えるのではありません。
- Model
- Tools
- Skills
- Session
- Sandbox
- Storage
- Agent Loop
- Schedule
- UI
といった、Agentを構成する広い範囲をプラグインとして扱うことを目指しています。
ここがClaude Codeとの大きな違いです。
Claude CodeもSkills、MCP、Hooks、Subagents、Pluginsなど複数の拡張方法を持っています。特にHooksでは、ライフサイクルイベントに応じて処理を実行したり、ツール呼び出し前後へ処理を差し込んだりできます。
ただし、Claude Codeという製品そのもののAgent LoopやUIを交換して、別のAgent実行基盤へ組み替えるためのフレームワークではありません。
DeepSeek Harnessは、拡張できる境界をさらに外側まで広げようとしています。
「モデル + Harness = Agent」という考え方
この設計を理解するうえで重要なのが、原文に出てくる次の考え方です。
モデル + Harness = Agent
LLM単体では、基本的には入力を受け取って出力を返すだけです。
実際のAgentとして動かすには、その周囲に多くの仕組みが必要になります。
たとえば、次のようなものです。
- どのファイルをモデルへ渡すか
- どのツールを使用できるか
- ツールをいつ実行するか
- 実行前に承認が必要か
- コマンドをどの環境で動かすか
- 失敗したらどう再試行するか
- 過去の作業状態をどう保存するか
- 次に何をするかをどう決定するか
こうした、モデルの周囲でAgentを成立させるための実装層がHarnessです。
そのため、同じLLMを使ったとしても、Harnessの設計が違えばAgentとしての挙動はかなり変わります。
AIコーディングツールを比較するときに、モデル名だけを見ても全体像が分からない理由でもあります。
4つのモードも「別製品」ではなくプラグイン構成の違い
原文では、執筆時点のDeepSeek Harnessに用意されたプリセットを、4つのモードとして紹介しています。
| モード | 位置付け | 主な特徴 |
|---|---|---|
| Standard | 通常のプログラミングアシスタント | Shell、ファイル操作、検索、UIなど |
| PTC | Programmatic Tool Calling | TypeScriptによるツール呼び出しの制御 |
| Minimal | 最小構成 | Shellとファイル操作を中心とした構成 |
| Creative | 拡張向け | プラグインを動的に組み合わせる |
ここで重要なのは、4つの独立したAgentが存在するということではありません。
同じHarnessへ異なるプラグイン構成を読み込んでいるという考え方です。
Developer Preview段階の機能なので、モード名や構成は今後変わる可能性があります。ここでは現時点の設計思想を理解する例として捉えるのがよいでしょう。
PTCではツール実行そのものをプログラムする
原文が特に注目しているのが、PTC(Programmatic Tool Calling)です。
一般的なAgentでは、次のようなループを繰り返します。
- モデルが状況を判断する
- モデルが次に呼ぶツールを決める
- ツールを実行する
- 結果をモデルへ返す
一方でPTCでは、ツールをどう組み合わせるかをプログラムとして記述する考え方が入ります。
原文では次のような例が掲載されています。
// 原文掲載の概念例。この記事では動作未検証
const result = await dsh.compose([
tools.file.read("src/components/Dashboard.tsx"),
tools.analyze.dependencies(),
tools.refactor.extract({
target: "useChartData",
type: "custom-hook",
}),
tools.file.write("src/hooks/useChartData.ts"),
]);
このコードは原文に掲載されている概念説明用の例であり、この記事では動作確認していません。
重要なのはAPIの細部ではなく、毎回モデルへ「次は何をする?」と判断させる以外に、開発者側で実行手順を決定論的に組み立てられるという発想です。
たとえば、次のようなパイプラインです。
コードを解析
↓
必要な変更を生成
↓
複数ファイルを更新
↓
型チェック
↓
失敗した場合だけ修正処理へ戻す
↓
成功したらテスト
すべてをモデルの自律判断へ任せるのではなく、必要な部分ではモデルを使いながら、実行フローそのものはソフトウェアとして制御する考え方です。
自律型Agentと決定論的なワークフローは別物
Claude Codeのようなコーディングエージェントでは、モデルがコードを読みながら「次に何を調べるか」「どのファイルを編集するか」「どのコマンドを実行するか」を判断して進みます。
これは柔軟です。予定していなかったエラーが出ても、その場でログを読み、原因を探して別の方法を試せます。
一方、決定論的なワークフローには別の利点があります。
たとえば、次のような処理です。
- 必ず型チェックを通す
- デプロイ前には必ず承認を要求する
- 特定のディレクトリは編集させない
- レビューが成功したときだけ次へ進む
- 複数の処理を決められた順序で実行する
こうした処理は、モデルの判断へ任せるよりコードやルールとして固定した方が扱いやすい場合があります。
なお、Claude CodeにもHooksがあり、ツール実行前後などのライフサイクルイベントへ決定論的な処理を差し込めます。そのため「Claude Codeでは決定論的な制御がまったくできない」と考えるのは正確ではありません。
違いは、DeepSeek HarnessがHarness全体を組み替えることそのものを中心設計にしている点にあります。
実際のコーディング用途ではClaude Codeの方が成熟している
原文では、Reactコンポーネントを作らせたときの挙動も比較しています。
DeepSeek Harnessでは、プロジェクトを読み、依存関係を確認し、コンポーネントを生成してファイルへ書き込むところまでは実行できた一方で、当時の標準構成では、その後の型チェックやレンダリング結果の自動検証まで一連の自己修正ループとして行う部分はまだ弱かったとしています。
対してClaude Codeでは、次のような流れを自然に組み立てやすいのが強みです。
プロジェクトを読む
↓
コードを生成する
↓
ファイルを編集する
↓
型チェックやテストを実行する
↓
エラーを読む
↓
修正する
↓
再度検証する
これは「プラグイン化されている方が優れている」という単純な話ではありません。
むしろ、特定の用途へ強く最適化された製品には大きな利点があります。
DeepSeek Harnessは自由度が高い一方、その自由度を活かすには利用者側がAgentの構成を考えなければなりません。
Claude Codeは内部を好きなように交換するためのフレームワークではありませんが、コーディングという用途については最初から統合された体験を提供します。
DeepSeek Harnessが面白いのは「交換可能な範囲」
DeepSeek Harnessを見るとき、モデル性能だけで比較する必要はありません。
より重要なのは、どこまで交換可能なのかです。
通常のAIツールでは、モデルを切り替えられるだけでも柔軟なシステムと呼ばれることがあります。
DeepSeek Harnessがさらに進めようとしているのは、モデルだけではなく、次のような構成要素までプラグインとして扱うことです。
モデル
ツール
スキル
セッション
サンドボックス
ストレージ
Agent Loop
スケジューラー
UI
この方向性が進めば、「AIコーディングツールを使う」というより、自分たちの用途に合わせてAgentランタイムを組み立てる使い方が考えられます。
たとえば、次のような用途です。
- コードレビュー専用Agent
- 社内ルールを強制するAgent
- テストと修正だけを繰り返すAgent
- Issueを受け取って実装からPR作成まで行うAgent
- デプロイ前の検証だけを担当するAgent
既存のコーディングエージェントを拡張する方法とは、少し違う方向性です。
Claude Codeから乗り換えるべきなのか
一般的な開発用途で、すでにClaude Codeを問題なく利用しているのであれば、DeepSeek Harnessが登場したからといって、すぐ乗り換える理由はありません。
現時点のDeepSeek HarnessはDeveloper Previewであり、公式にも破壊的変更が予告されています。
一方で、Agentを自分で構築したいエンジニアにとっては興味深いプロジェクトです。
特に、次のような目的では「完成品のコーディングAgent」とは違う価値があります。
- Agent Loopそのものを変更したい
- モデルに依存しないAgent基盤を試したい
- ツール実行をコード側から制御したい
- 独自の権限管理やサンドボックスを組み込みたい
- 複数のAgent構成を同じ基盤で管理したい
AIコーディングツールを見るときはHarnessも見る
DeepSeek Harnessから学べることは、特定の製品を使うべきかどうかだけではありません。
AI Agentを評価するときに、
どのモデルを使っているか
だけを見るのではなく、次のような点まで見る必要があります。
どのようにコンテキストを渡すのか
どのツールを使えるのか
どのようにツールを呼び出すのか
失敗したときにどう復旧するのか
何を検証するのか
どの範囲まで自律判断させるのか
同じモデルを使っていても、Harnessが違えば使い勝手も信頼性も変わります。
「モデル + Harness = Agent」という整理は、今後AIコーディングツールを見るうえでも役立つ考え方です。
DeepSeek HarnessとClaude Codeの違いも、「どちらのAIが賢いか」という比較より、
完成されたコーディングエージェントを使いたいのか、それともAgentを構成する実行基盤そのものを作りたいのか
という違いとして考えた方が分かりやすいでしょう。
まとめ
DeepSeek Harnessは、Claude Codeをそのまま置き換えるためのオープンソース製品というより、Agentの実行基盤をプラグインとして構成するためのフレームワークとして見る方が理解しやすいプロジェクトです。
Claude Codeはコーディング用途へ統合・最適化されたAgentであり、DeepSeek HarnessはAgentを構成する部品そのものを交換可能にしようとしています。
現時点ではDeveloper Previewで、完成度だけを比較すれば注意すべき点も多くあります。
それでも、「モデルの性能」だけではなく、そのモデルをどう動かすかというHarness側へ注目を集めた点は興味深いところです。
AI Agentを使う側でも作る側でも、モデルとHarnessを分けて考えられるようになると、AIツール同士の違いをかなり整理しやすくなります。
参考リンク
GitHub - deepseek-ai/deepseek-harness: DeepSeek Harness: Everything is a Plugin.
DeepSeek Harness: Everything is a Plugin. Contribute to deepseek-ai/deepseek-harness development by creating an account on GitHub.
https://github.com/deepseek-ai/deepseek-harness
https://deepseek.com/harness
Claude Code を拡張する - Claude Code Docs
CLAUDE.md、Skills、subagents、hooks、MCP、plugins をいつ使用するかを理解します。
https://code.claude.com/docs/ja/features-overview