Quick answer: 本稿は DeepSeek Harness 記事群の実践側です。dsh をどう動かすか、合成モデルが何を求めるか、そしてどのデモに十分な価値があるかを扱います。 最短経路 npx @deepseek-ai/dsh web http://127.0.0.1:3080 で Web UI が起動します。そこからセッションのコンポーザーが使えるようになるまでに、二つの手順が必要です。 Settings →...

DeepSeek Harnessの導入:プロファイルと初回実行

Updated August 16, 2026 · first published August 16, 2026

本稿は DeepSeek Harness 記事群の実践側です。dsh をどう動かすか、合成モデルが何を求めるか、そしてどのデモに十分な価値があるかを扱います。

最短経路

npx @deepseek-ai/dsh web

http://127.0.0.1:3080 で Web UI が起動します。そこからセッションのコンポーザーが使えるようになるまでに、二つの手順が必要です。

  1. Settings → Models で DeepSeek の API キーを入力します。再起動不要で即座に有効化されます。
  2. ワークスペースの選択でプロジェクトのディレクトリを追加し有効化します。ワークスペースが有効になるまでコンポーザーは使えません。

起動後、エージェントはファイルの読み書き、コマンドの実行、サブエージェントへのタスク委譲、そして計画立案を行えます。有効な権限ポリシーに従って確認を求めます。

ソースから

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

下限要件は Node 22.19 以降(CI は 22.19、24、26 を対象)、Git 2.26 以降、そして Corepack で pnpm@11.7.0 に固定した pnpm です。DEEPSEEK_API_KEY は任意で、環境変数かリポジトリ直下の gitignore された .env から読まれます。併せて DEEPSEEK_BASE_URL で別のエンドポイントを指せます。実 API に対するエンドツーエンドのテスト群はキーがなければ自らスキップするため、キーなしのチェックアウトでもビルドとテストは通ります。

プロファイルとバンドル:合成モデル

ハーネスのあらゆる部分がプラグインである以上、どのプラグインを読み込むかを決める何かが必要です。それがプロファイルで、順序付きのバンドル一覧とユーザーのパッチを保持する名前付きの合成です。バンドルは Cordis の設定行とコードを配布します。

テンプレートのプロファイルが三つ同梱されます。

プロファイル合成する内容
dsh-baseモデルアダプタ、ツール、永続化
dsh-web-appブラウザ UI
dsh-headless単発実行のランナー

四層の上書き順序

設定は固定の順序で解決され、後の層が勝ちます。

  1. プロファイルのバンドル
  2. プロファイルのパッチ
  3. home レベルのパッチ
  4. コマンドラインのオーバーレイ

デバッグを始める前にこの順序を覚えてください。階層型の設定システムにおける「なぜそのモデルが使われているのか」という問いのほとんどは、その値に最後に触れた層を突き止めれば片づきます。そしてコマンドラインのオーバーレイはその下のすべてに勝ちます。

出会うことになるサブシステム

六つのレジストリキーが振る舞いの大半を担います。ctx.sessions(追記専用のイベントログ)、ctx.systemPromptctx.tools(スコープ付きで実行がガードされたレジストリ)、ctx.agentsctx.agentLoopctx.llm です。ハーネスを拡張するなら、まず検索すべき名前がこれらです。

試す価値のあるデモ三つ

コントリビュートを考えているなら

いくつかの慣習が時間を節約します。TODO 系のマーカーは緊急度で段階分けされ、FIXME はリリースブロッカー、TODO は近く、XXX はいつかを意味します。Lefthook は pre-commit(ステージ済みペアリング記録、.oxlintrc.staged.json、サードパーティ通知の再生成、空白、vendor マニフェストのガード)、pre-merge-commitpre-pushpnpm run typecheck)を実行します。フックはテストとビルドを意図的に飛ばします。網羅的なカバレッジは CI の担当で、pnpm run check:all が任意の包括的なローカルゲートです。

一見不可解な構造は二つの事情で説明がつきます。ビルドが Host と Client の tsconfig 集約に分かれているのは、双方が Cordis の Context インターフェースを同じキーで宣言マージしており、両方のマージを見る単一の TypeScript プログラムが衝突を報告するためです。またドキュメント中のコード例は ts type-equiv フェンスと pnpm run verify-type-equiv によって正しさが保たれ、貼り付けた宣言がソースから静かに乖離しないようになっています。

期待値の設定

README は率直です。これは developer preview であり、互換性を壊す変更があります。プラグインの発見は GitHub のトピック dsh-plugin 経由で行われ、プロジェクトは MIT ライセンス、サードパーティ依存は THIRD_PARTY_NOTICES.md に列挙されています。評価は今、標準化は後で。

Related


Want this applied to your own LLM spend? FinOps LLM runs a free audit of your AI costs and shows where the savings are. Book free audit →

Back to research