DeepSeek Harness v0.1を試す

DeepSeek Harness v0.1 の開発者プレビューが公開されました。ソースコードは MIT ライセンスで公開されており、自由に利用・改変できます。

DeepSeek Harness は、DeepSeek が開発したオープンソースのエージェントフレームワークです。AI モデルによるコード生成だけでなく、ファイル操作、ツールの呼び出し、コマンド実行、テストといった一連の作業を、エージェントとして継続的に処理できる環境を提供します。

公開後、実際にインストールし、動作確認として簡単なスネークゲームを作成してみました。セットアップは比較的簡単で、コマンドから起動したあと、API Key とワークスペースを設定すれば利用を開始できます。今回のテストでは、プロジェクトの作成から実行、動作確認まで一連の処理を完了できました。

本稿では、内部アーキテクチャの詳細には深入りせず、DeepSeek Harness がどのようなツールなのかを確認したうえで、インストール方法、初期設定、4つの動作モード、実際に使ってみた結果を順に紹介します。

DeepSeek Harness とは

DeepSeek Harness は、dsh という名称で提供されているオープンソースのエージェントフレームワークです。

AI モデルが指示の理解やコード生成を担当する一方で、Harness はファイルの読み書き、ツールの呼び出し、コマンド実行、テストなど、実際の作業を進めるための処理を管理します。

通常のチャット画面でモデルにコード作成を依頼した場合、生成されたコードを受け取ったあと、利用者が自分でファイルに保存し、実行する必要があります。

DeepSeek Harness を利用すると、エージェントがプロジェクトのディレクトリ構成を確認し、必要な場所にファイルを作成できます。さらに、コードを実行してテストを行い、エラーが発生した場合はその内容を確認したうえで修正を続けることもできます。

ファイル作成、コマンド実行、テスト、エラー確認、コード修正といった処理を連続して実行できるため、短い指示から実際に動作するプロジェクトを作成するところまでを、一つのタスクとして扱えるようになります。

Codex や Claude Code のようなコーディングエージェントを利用する場合も、使い勝手を左右するのはモデル自体の性能だけではありません。ファイル操作、ツールの利用方法、コンテキスト管理、実行状態の保持といった Harness 側の仕組みも重要になります。

インストール

DeepSeek Harness には、公式に2つの実行方法が用意されています。

まず動作を試してみるだけであれば、npm を利用する方法が簡単です。

あらかじめ Node.js をインストールしておきます。インストールが完了したら、ターミナルを開いて次のコマンドを実行します。

npx @deepseek-ai/dsh web

初回起動時には、必要な依存パッケージが自動的に処理されます。

ターミナルに起動完了のメッセージが表示されたら、表示されたローカルアドレスをブラウザで開きます。デフォルトでは次のアドレスが使用されます。

http://127.0.0.1:3080

デスクトップアプリを別途インストールする必要はありません。操作はブラウザ上の Web インターフェースから行います。

GitHub から実行する

もう一つのインストール方法は、GitHub からソースコードをダウンロードする方法です。

ソースコードを確認したい場合や、独自のプラグインを開発したい場合は、公式リポジトリから DeepSeek Harness を実行できます。

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

まず実際の動作を試したいだけであれば、前述の npx コマンドを利用すれば十分です。最初からソースコード一式をダウンロードする必要はありません。

初期設定を行う

Web UI を開いたら、Settings を開き、続いて Models を選択します。

DeepSeek API Key を入力して保存します。設定内容はすぐに反映されるため、サービスを再起動する必要はありません。

続いて、作業対象となるワークスペースを設定します。

Choose workspace をクリックし、dsh を起動したプロジェクトディレクトリを追加して選択します。ワークスペースを選択するまでは、セッションの入力欄は使用できません。

初めて試す場合は、テスト用のフォルダーを別に作成し、今回使用するファイルのコピーだけを置いておくことをおすすめします。

DeepSeek Harness はワークスペース内のファイルを直接読み書きできるほか、コマンドも実行できます。開発者プレビューの段階では、重要なプロジェクトをそのまま指定せず、あらかじめコピーを用意しておくと安全です。

影響の大きい操作を実行する場合は、Web UI に権限確認のダイアログが表示されます。許可する前に、変更対象のファイルや実行予定のコマンドを確認してください。動作確認を目的とする段階では、基本的にデフォルトの権限設定のままで利用できます。

4つの動作モード

新しいセッションを作成するときは、画面上部からエージェントモードを選択できます。

DeepSeek Harness には、用途に応じて4つの動作モードが用意されています。

Standard mode

ファイル編集、Shell コマンドの実行、Web検索、Skills、ワークフローなど、コーディングエージェントに必要な機能を一通り利用できる標準モードです。

通常の開発作業であれば、まずこのモードを選択すれば十分です。

Code mode

Programmatic Tool Calling(PTC)を利用するモードです。

通常はモデルが必要なツールを一つずつ呼び出しますが、Code mode では、モデルが複数のツール呼び出しを組み合わせたコードを生成し、そのコードによって処理の流れを制御します。

これにより、モデルとツール間のやり取りを減らしながら、複数の処理をまとめて実行できます。

Code mode で興味深いのは、コードを生成対象としてだけでなく、エージェント自身の実行手順を記述する手段としても利用している点です。

ツールの組み合わせや実行順序をコードとして表現できるため、複数の操作を必要とするタスクでは、よりまとまった形で処理を進められます。PTC は、DeepSeek Harness の特徴的な設計の一つと言えます。

Minimal mode

永続的な Bash セッションと str_replace_editor の2つのツールだけを利用するシンプルなモードです。

機能を限定して動作を確認したい場合や、軽量なタスクに適しています。

Creator mode

独自の Agent preset を作成するためのモードです。

実行時の動作確認、プラグインの検証、preset の作成など、エージェントの構成をカスタマイズするための機能が用意されています。

最初からすべてのモードを使い分ける必要はありません。初めて利用する場合は、まず Standard mode で一つのタスクを最後まで実行してから、必要に応じてほかのモードを試すと分かりやすいでしょう。

Skills とプラグイン

DeepSeek Harness の特徴の一つが、各機能をプラグインとして構成する設計です。

モデル、ツール、Skills、セッション、サンドボックス、ストレージ、実行ループ、UI など、Harness を構成する多くの要素が交換可能なコンポーネントとして扱われます。

そのため、新しいモデルやツールを追加する場合も、フレームワーク本体のコードを直接変更するのではなく、必要なプラグインを追加する形で機能を拡張できます。

Skills は、エージェントが特定の作業を行うために利用する能力や手順をまとめたものです。

実際のタスクを処理するときには、必要に応じて対応する Skills が読み込まれ、エージェントの作業を補助します。

プラグインが Harness 全体を拡張するための仕組みであるのに対し、Skills はエージェントが具体的なタスクを実行するときに利用する機能の一つとして考えると分かりやすいでしょう。

モデルに依存しない構成

DeepSeek Harness は、特定のモデルに依存しないモデル非依存のアーキテクチャ(Model-Agnostic)を採用しています。

DeepSeek のモデルに加えて、OpenAI や Anthropic など、外部のモデルプロバイダーにも対応しています。

Harness では、モデルプロバイダーとの接続部分が Provider としてプラグイン化されています。そのため、Harness 本体を変更することなく、利用するモデルや API の接続先を切り替えることができます。

OpenAI のモデルを利用する場合は、主に次の2つの方法があります。

  1. 標準で用意されている Provider を利用するモデル設定で Provider に openai を指定し、OpenAI API Key を設定します。OpenAI API に直接接続する場合は、この方法を利用できます。
  2. OpenAI API 互換エンドポイントを利用するOpenAI API と互換性のある API エンドポイントにも接続できます。サードパーティー製 API、独自に構築したプロキシサーバー、API ゲートウェイなどを利用する場合は、baseUrlapiKey を設定します。

この仕組みにより、用途や利用環境に応じて、モデルプロバイダーや API エンドポイントを切り替えることができます。

実際に使ってみる

設定を終えたところで、まず簡単な質問をいくつか入力してみました。応答は速く、通常のチャットとほぼ同じ感覚で利用できます。

次に、実際の開発作業をどこまで任せられるのか確認するため、次のような短い指示を与えました。

Please develop a classic Snake web game for me, and run and test it once it’s finished.

(クラシックなスネークゲームを Web アプリとして作成し、完成後に起動して動作確認してください。)

内容自体は単純ですが、完了までには複数の工程が必要です。

まずプロジェクトに必要なファイルを作成し、ゲームのロジックを実装します。そのあとローカルサーバーを起動し、最終的にブラウザから正常にアクセスできることまで確認する必要があります。

コードを生成しただけでは、このタスクは完了したことになりません。

実行を開始すると、DeepSeek Harness は必要なファイルを自動的に作成し、コードを実装してローカルサーバーを起動しました。作業内容に応じて必要な Skills も読み込みながら処理を進めます。

最後は完成したゲームをそのままブラウザで開いて確認できました。スネークの移動、当たり判定、餌の取得、スコア表示なども正常に動作しています。

今回は、最初の指示だけで最後まで完了しました。

途中でこちらがファイルを作成したり、生成されたコードをコピーして貼り付けたりする作業はありませんでした。完成後にコードを手作業で修正する必要もありませんでした。

公開直後の開発者プレビューとして、エージェントが一連の開発作業をどの程度自律的に進められるのかを確認するには、分かりやすいテストになりました。

今回は確認していないこと

今回のテストは、小規模な Web ゲームを新規作成する比較的短いタスクに限られています。

そのため、大規模な既存リポジトリでのコード変更、長時間にわたるタスク、複雑な Git 操作、複数エージェント間の連携、長いコンテキストの維持などについては確認していません。

コーディングエージェントの実用性は、単発のコード生成だけでは判断できません。

作業が長くなったときに、ファイル、ツール、コンテキスト、実行状態、テスト結果をどの程度安定して管理できるかも重要になります。この点については、より複雑なプロジェクトで継続して確認する必要があります。

現時点での制約

今回試した範囲では、いくつかの制約も確認できました。

たとえば、今回使用した DeepSeek のモデルは画像入力に対応しておらず、画像をアップロードしても内容を認識できませんでした。

画像を扱えるかどうかは Harness だけで決まるものではなく、接続しているモデルが視覚入力に対応しているかどうかにも左右されます。将来的にマルチモーダルモデルを利用できれば、画像を含むタスクまで扱えるようになる可能性があります。

また、DeepSeek Harness v0.1 は Developer Preview の段階にあります。

今後の更新によって API やプラグイン仕様が変更され、互換性に影響する可能性もあります。現時点では、重要な開発プロジェクトの基盤として利用するより、機能の検証、プラグイン開発、新しいエージェントワークフローの実験などに利用するほうが適しています。

Agent Harness という考え方

今回 DeepSeek Harness を使って改めて感じたのは、コーディングエージェントではモデルの性能だけでなく、その周辺にある実行環境の設計も重要だということです。

モデルが生成した内容を、どのファイルに書き込むのか。どのツールを利用するのか。コマンドの結果をどのように次の処理へ渡すのか。エラーが発生したときに、どの状態から作業を再開するのか。

こうした処理を管理するのが Agent Harness の役割です。

最近では、同じ基盤モデルを使用していても、ツール、コンテキスト管理、状態管理、実行ループなどの設計によって、エージェントとしての実行結果が大きく変わることが指摘されています。

DeepSeek Harness が興味深いのは、このモデルの外側にある仕組みそのものをオープンソースとして公開し、開発者がモデル、ツール、Skills、プラグイン、実行モードを自由に組み替えられるようにしている点です。

現時点での評価

現時点で Codex や Claude Code の代替として DeepSeek Harness を評価するのは、まだ早いでしょう。

v0.1 は公開されたばかりの Developer Preview であり、今後インターフェースやプラグイン仕様も引き続き変更されると考えられます。

一方で、Agent Harness の仕組みを調べたい開発者、独自のプラグインや Skills を作成したい人、新しいエージェントワークフローを試したい人にとっては、現在の段階でも試す価値があります。

今回実際に使ってみた範囲では、インストールからモデル設定、ワークスペースの指定、プロジェクト作成、コード実行、ブラウザでの動作確認まで、一連の流れは比較的分かりやすく整理されていました。

特に注目したいのは、DeepSeek がモデル本体に加えて、その周辺にある開発環境まで自ら提供し始めたことです。

DeepSeek は R1 の公開によってオープンモデルの分野で大きな注目を集めました。Harness でも、モデルの外側にあるエージェント基盤をオープンにする取り組みが、今後どのように発展していくのか注目したいところです。

プロジェクト

DeepSeek Harness 公式リポジトリ:

https://github.com/deepseek-ai/deepseek-harness