スポンサーLobeHubLobeHub詳しく見る
dshfind

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 の上で動作しています。

生态(内容)skills · 插件 · profile | 应用商店dsh 工具web · run · profile | 装好系统的电脑SDK 底座Cordis · 一切皆插件 | 操作系统内核

三层都建立在 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 UIdsh webグラフィカルインターフェース。Plan Mode(計画モード)を含む
コマンドラインdsh --profile headless "このワークスペースを要約して"タスクを1回実行し、答えを出力して終了
設定の組み合わせdsh --profile tuiprofile(プラグインの組み合わせパック)で起動をカスタマイズ
プログラムからの接続Python SDK / ACP / JSON-RPCDSH をあなた自身のプログラムに組み込む

9. ポイントの振り返り

このセクションは情報量が少なくありませんが、次の5文を覚えれば十分です。

  1. DSH = SDK + ツール + エコシステム。本質は「エージェントのオペレーティングシステム」
  2. すべてはプラグイン——モデル・ツール・ポリシー・ストレージ・UI、さらにはメインループまでプラグインであり、拡張に fork は不要
  3. 実行は再構築可能——モデルに見えるものはすべて権威あるイベントログに記録され、復元・リプレイ・fork が可能
  4. 能力は継ぎ目——どの能力も単独で交換でき、モデルやエグゼキューターの交換はソケットの交換のように手軽
  5. 自己参照的な改変——エージェントは自分のランタイムを検査・改変でき、それは Cordis の「装着できるものは取り外せる」保証に依存している

🚀 次のセクションでは「エージェントフレームワークの基本思想」を扱います——まずエージェント自身がどう考え、どう手を動かすのかを理解してから、DSH がなぜこう設計されているのかを振り返りましょう。

セルフテスト · DSH とは

回答を終えたら「解答を送信」をクリックすると、正誤と解説を確認できます。

1. DSH について、最も正確な説明はどれですか?
2. 「すべてはプラグイン。ループも例外ではない」の「ループ」とは何を指しますか?
3. 「実行は再構築可能」は何によって実現されていますか?
4. 「能力の継ぎ目(seam)」を構成する3つの役割はどれですか?