DSH とは?
一言でいうと:DSH(DeepSeek Harness)は Cordis を基盤に構築されたオープンソースの coding agent(コーディングエージェント)です。単なる「エージェントが働くための環境」ではなく、すべてはプラグイン、実行は再構築可能という2つの核心思想を軸にした、エージェントのオペレーティングシステム全体です。
1. まず押さえておこう:DSH には3つの意味がある
多くの人は DSH を「1つのツール」と言いますが、実際には3つの層が重なったものです。
| 層 | 何であるか | たとえ |
|---|---|---|
| SDK(基盤) | DeepSeek Harness SDK:Cordis で書かれたフレームワークで、モデル・ツール・ポリシー・ストレージ・UI がすべてコンポーザブルなプラグイン | オペレーティングシステムのカーネル |
| dsh(ツール) | SDK の上に構築されたコマンドラインツール:dsh web で Web UI を起動、dsh --profile headless "タスク" でタスクを実行 | OS がインストール済みのコンピュータ |
| エコシステム(コンテンツ) | skills(スキル)、プラグイン、profile の組み合わせパック、コミュニティ | コンピュータ上のアプリストア |
私たちが普段「DSH」と呼ぶとき、通常は2番目の層——あなた自身のコンピュータ上で動くエージェントツール——を指します。ただし、あなたが今使っているこのサイト(dshfind)が動いている Harness 環境は、DSH の上で動作しています。
三层都建立在 Cordis(时空可组合性范式)之上
2. どんな問題を解決するのか?(2文で)
エージェントが働くには「環境」が必要で、環境が長期的に進化するには「規律」が必要です。
- 普通の AI アプリケーション = モデルを一度呼び出し、答えを返して、終わり。
- エージェント = モデルを繰り返し呼び出す + 実際に手を動かす(ファイルの読み書き、コマンドの実行、API の呼び出し)+ 長期間動作する。
- DSH = 「長期間動作する」という前提のもとで、ツール・権限・メモリ・セッション・プラグイン管理をすべて秩序立てて管理する。
オペレーティングシステムが複数のプログラムを1台のコンピュータで衝突させずに共有させるように、DSH は複数のプラグインが1つのエージェントランタイムを共有しながら互いを壊さないようにします。
3. 核心思想その1:すべてはプラグイン
これは DSH の第一原理です。アーキテクチャドキュメントの最初の行に書かれています。
すべてはプラグイン。ループも例外ではない。
「ループ」とは agent loop(エージェントループ) のこと——つまり「知覚 → 思考 → 行動」というメインループです。従来のフレームワークはメインループをハードコードしており、拡張するにはソースコードを改変する(fork する)しかありませんでした。DSH ではメインループ自体もプラグインです。
| 従来のフレームワークでは | DSH では |
|---|---|
| モデルを変えたい → フレームワークのソースを改変 | LLM アダプター プラグインを登録 |
| ツールを追加したい → フレームワークのソースを改変 | ctx.tools にツールプラグインを登録 |
| 実行方式を変えたい → フレームワークのソースを改変 | 別の bash / PTY バックエンド プラグインに差し替え |
| ストレージを変えたい → データベースを切り替え | 別のセッション永続化プラグインに差し替え |
| UI を変えたい → フロントエンドを書き直し | 別の UI プラグインに差し替え |
ここでいう「プラグイン」とは小さな機能ではなく、システム全体の構成ブロックです:モデル・ツール・ポリシー・ストレージ・コンテキスト管理・UI が、すべて対等なプラグインとして組み合わされます。デプロイする側は agent loop を fork せずに、あらゆる振る舞いを拡張・置き換えできます。
🎁 たとえ話:普通のフレームワークは「一棟のビルで、間取りを変えるには耐力壁を壊すしかない」。DSH は「レゴブロックで、どの1ピースでも単独で交換できる」。これはまさに Cordis(時空間コンポーザビリティのパラダイム)の上に構築されているおかげです——これこそ、私たちが精読するあの論文の実装です。
4. 核心思想その2:実行は再構築可能(イベントログが真実)
エージェントは1日動くと数百回の操作を行います。「すべてに記録があり、いつでもやり直せる」ことをどう保証するのか?DSH の答えはイベントソーシングです。
モデルが見えるものはすべて、権威あるセッションログに記録される。永続化・復元・fork・リプレイ・テレメトリ・UI はすべて、同じ1つのイベントストリームから派生する。
つまり:
- エージェントの各ステップ(モデルへのリクエスト、ツール呼び出し、結果の返却)はすべてセッションログに追記される(append-only)
- 「モデルに見える ⟺ 記録されている」——モデルが見るものとログに記録されるものは完全に一致する
- セッションを復元したい?ログから再構築する。fork して続きをやりたい?ログからコピーする。リプレイしたい?ログを読む。統計を取りたい?ログを計算する
メリット:「どこか知らない場所に隠れた状態」というものが存在しません。システムに何か問題が起きても、ログが完全な真実であり、任意のチェックポイントから再構築できます。
🎁 たとえ話:これは「日記をつける」のではなく、「全工程を録画し、どのフレームにも戻れる」ことです。普通のアプリケーションはクラッシュしたら最初からやり直しですが、DSH はクラッシュしてもログから現場を正確に再構築できます。
5. 核心思想その3:能力は「継ぎ目」(seam)
アーキテクチャドキュメントには重要なキーワードがあります:seam(継ぎ目)。
1つの「置き換え可能な能力」は、3つの役割から構成されます。
Service Definition(能力の定義:この能力がどんなものか)
↕
Service Provider(プロバイダー:誰が仕事をするか)
↕
Consumer(コンシューマー:誰が使うか)
この3つの役割が分離されている限り、その能力は「継ぎ目」です——どちらか一方の端を単独で交換しても、他の2つに影響しません。
DSH ではほぼすべてが継ぎ目です。
| 継ぎ目 | ソケットを交換する例 |
|---|---|
| LLM | モデルプロバイダーを変える(DeepSeek、その他)→ 新しいアダプターを登録 |
| ファイルシステム | ストレージバックエンドを変える → ctx.fs プロバイダーを実装 |
| プロセス実行 | コマンドの実行方式を変える → bash バックエンドを差し替え |
| サンドボックスポリシー | セキュリティポリシーを変える → fs/* ポリシーイベントをリッスン |
| 検索/スクレイピング | 検索ソースを変える → web プロバイダーを登録 |
なぜこれが重要なのか? エージェントの技術スタックは猛烈な速さで進化するからです(モデルは毎月変わり、ツールは毎日新しくなる)。すべての能力が継ぎ目であれば、何か1つを変えるのに動かすのは1つのソケットだけで、システム全体を書き直す必要はありません。
6. 核心思想その4:自己参照的な改変(エージェントは自分自身を改変できる)
DSH にはかなり「SFっぽい」が実在する機能があります:自己参照的 Cordis ツール(明示的に有効化する必要あり)。
有効化すると、エージェントは次のことができます。
- 自分自身のライブランタイムを検査する(今どのプラグインがインストールされ、どのサービスが登録されているか)
- 実行中にプラグインをマウント/アンマウントする(自分に新しいツールを装着したり、古いものを取り外したりする)
これが「自己進化するエージェント」の原型です:実行中のシステムが自分自身を改変する。そしてこれが(自滅ではなく)安全にできるのは、まさに土台にある Cordis の「時空間コンポーザビリティ」保証のおかげです——装着したものは取り外せ、取り外した後に痕跡は残らない。
⚠️ この筋書きは第1章と第2章をつなぎます:「エージェントの自己進化」を実現するには、まず「動的なコンポジション」を解決しなければなりません。
7. 組み込み能力の一覧(実際のリスト)
DSH がすぐに使える状態で提供する能力(公式ドキュメントより)は、「エージェントが持つべき道具一式」と考えることができます。
| カテゴリ | 具体的な能力 |
|---|---|
| ファイル | 読み取り、編集、検索 |
| 実行 | shell コマンド、永続ターミナル(PTY) |
| スキル | 再利用可能な skill(スキル) |
| タスク管理 | goals(目標)、plans(計画)、todos(ToDo)、バックグラウンドタスク |
| コラボレーション | subagent(サブエージェント)、workflow(ワークフロー) |
| セキュリティ | サンドボックス、承認 |
| 設定 | 設定、credentials(認証情報。設定内にインライン化しない) |
| セッション | 永続化・復元・fork・クエリ可能なセッション |
| 知覚 | LSP(コードのセマンティクス)、Web アクセス |
| コンテキスト | コンテキスト圧縮(context compaction) |
| オブザーバビリティ | テレメトリ |
8. DSH をどう使うか?(4つの方法)
| 方法 | コマンド/手段 | シーン |
|---|---|---|
| Web UI | dsh web | グラフィカルインターフェース。Plan Mode(計画モード)を含む |
| コマンドライン | dsh --profile headless "このワークスペースを要約して" | タスクを1回実行し、答えを出力して終了 |
| 設定の組み合わせ | dsh --profile tui | profile(プラグインの組み合わせパック)で起動をカスタマイズ |
| プログラムからの接続 | Python SDK / ACP / JSON-RPC | DSH をあなた自身のプログラムに組み込む |
9. ポイントの振り返り
このセクションは情報量が少なくありませんが、次の5文を覚えれば十分です。
- DSH = SDK + ツール + エコシステム。本質は「エージェントのオペレーティングシステム」
- すべてはプラグイン——モデル・ツール・ポリシー・ストレージ・UI、さらにはメインループまでプラグインであり、拡張に fork は不要
- 実行は再構築可能——モデルに見えるものはすべて権威あるイベントログに記録され、復元・リプレイ・fork が可能
- 能力は継ぎ目——どの能力も単独で交換でき、モデルやエグゼキューターの交換はソケットの交換のように手軽
- 自己参照的な改変——エージェントは自分のランタイムを検査・改変でき、それは Cordis の「装着できるものは取り外せる」保証に依存している
🚀 次のセクションでは「エージェントフレームワークの基本思想」を扱います——まずエージェント自身がどう考え、どう手を動かすのかを理解してから、DSH がなぜこう設計されているのかを振り返りましょう。
セルフテスト · DSH とは
回答を終えたら「解答を送信」をクリックすると、正誤と解説を確認できます。
