DSHとは?
DSHはDeepSeek Harnessの略で、DeepSeekがMITライセンスのもとで公開しているオープンソースのエージェントランタイムです。コマンドラインのエントリーポイントはdshという名称であり、短縮名の由来となっています。
簡潔な回答
Harness(ハーネス)とは、言語モデルを実用的なものへと変換するモデル周辺のレイヤーです。モデルが何を見るか、どのツールを呼び出せるか、トランスクリプトをどこに書き込むか、いつターンを終了するかを決定します。DSHはそのレイヤーであり、すべてのパーツをプラグインで置き換えられるように構築されています。
Harnessという言葉の意味
モデル単体では質問に答えることしかできません。ファイルシステムもシェルも、昨日の記憶もなく、自身を停止させる手段も持ち合わせていません。Harnessはこれらすべてを提供します。この名前は、ソフトウェアエンジニアリングにおけるテストハーネスから借用したものです。テストハーネスとは、コンポーネントを実際の環境に配置し、その動作を監視するための足場を指します。
すべてがpluginである
これはプロジェクト全体が依拠する設計上の決定です。ほとんどのエージェントフレームワークでは、モデルアダプターやツールテーブルがコアコードであり、pluginは周辺的な存在です。DSHには特権的なコアは存在しません。モデル、ツール、スキル、セッション、サンドボックス、ストレージ、エージェントループ、スケジューラー、そしてUIはすべて、同一のContextに登録されるCordisのpluginです。
実際の結果として、エージェントの動作を変更することはフォークではなく、設定の変更となります。
- ctx.model
モデルアダプター
ループを変更することなく、背後のモデルを入れ替えます。
- ctx.tools
ツールテーブル
呼び出し可能なあらゆる機能を、追加、削除、またはラップします。
- ctx.sessions
セッション
追記専用のログであり、実行内容を再現可能です。
- ctx.sandbox
サンドボックス
エージェントが作成したコードを実行する場所を選択します。
- ctx.loop
エージェントループ
ターンそのものの制御フローを置き換えます。
- ctx.ui
インターフェース
Web、ターミナル、または独自のフロントエンドを利用可能です。
実行したすべての記録が書き出される
セッションは追記専用です。完了した実行結果は、読み取り、差分確認、再現が可能なファイルとして保存されます。これにより、pluginの入れ替えが感覚的なものではなく、測定可能な変更となります。エージェントがステップ40で失敗した場合でも、ステップ1から39までの記録はそのまま残ります。
DSHではないもの
-
モデルではありません。
DSHはモデルを実行します。どのモデルを使用するかはユーザーの選択であり、それはpluginとして提供されます。
-
ホスト型製品ではありません。
自身のマシンやサーバー上で実行します。アカウントレイヤーは存在しません。
-
まだ安定版ではありません。
このプロジェクトはデベロッパープレビュー版であり、プラグインAPIはリリースごとに変更される可能性があります。
よくある質問
DSHは何の略ですか?
DeepSeek Harnessの略です。CLIバイナリの名前はdshであり、エコシステム全体でdsh plugin、dsh web、GitHub上のdsh-pluginトピックのように、短縮形が使用されています。
DSHはDeepSeekモデルと同じものですか?
いいえ。DeepSeekは言語モデルを公開していますが、DSHはエージェントループ内でモデルを実行する別のオープンソースプロジェクトです。DSHはDeepSeekモデル、またはアダプタープラグインを持つ他のプロバイダーを駆動できます。
DSHとCordisの関係は何ですか?
Cordisは、DSHがその上で構築されているプラグインカーネルです。これはContextオブジェクト、サービスレジストリ、injectを通じた依存性の注入、そしてプラグインをクリーンにアンロードできる可逆的なエフェクトシステムを提供します。DSHは、その上に構築されたエージェント固有のレイヤーです。
DSHを使用するためにプラグインを書く必要がありますか?
いいえ。デフォルトのプリセットには、動作するツールテーブルとモデルアダプターが含まれています。デフォルトの構成が合わなくなった場合に、プラグインを使用して変更を行います。
DSHのライセンスは何ですか?
MITライセンスであり、完全なソースコードがGitHubで公開されています。
自分のプラグインをこのサイトに表示させるにはどうすればよいですか?
GitHubリポジトリにdsh-pluginトピックを追加するか、npmのキーワードにdsh-pluginを含めて公開してください。レジストリは毎日再収集を行います。