2026年11月4日時点で、dsh-superagent は、DeepSeek が 2026年10月31日に GitHub のリポジトリ deepseek-ai/dsh-superagent-prototype(MIT ライセンス)で公開した、1 つの GitHub リポジトリのための能動的な(proactive)コーディングエージェントの研究用の試作で、DeepSeek Harness の bundle(プラグインをまとめた束)として動きます。GitHub と、使うなら Feishu(飛書。海外では Lark の名前のビジネスチャット)を聞き、許可された人に頼まれた時だけ作業の単位を開き、自分のエージェント Session とディレクトリで作業して、元の会話へ Pull Request などで答えます。Web のパネルには、人の手が要る物だけが出ます(README)。README の冒頭には「研究用の試作で、参考のための物。DeepSeek の公式の製品ではない」と書かれていて、本番向けのソフトウェアではありません。
この記事は、リポジトリの README・SETUP.md・docs 000〜008・LICENSE・package.json を読み、動き方・要る物・会社のリポジトリで試す前に確かめることを整理します。同じ 10月31日に DeepSeek Harness のチームが公式の WeChat で出した設計の記事(README が《Exploring Super-agent Design: Towards a More Autonomous Agent System》の題で参照している中国語の記事)は、原文を確かめられなかったので、IT之家と第一財経の報道の範囲で扱います。
この記事の要点(2026年11月4日時点)
- dsh-superagent は、1 つの GitHub リポジトリに常駐し、許可リストの人が頼んだ時か、チームが書いた決まりが許す時だけ Ticket(作業の単位)を開いて Pull Request などで返すコーディングエージェントです。DeepSeek Harness の bundle として動きます。
- README は「研究用の試作・参考のため・DeepSeek の公式の製品ではない・本番向けではない」と明記し、設計の記事に書いた設計の一部は「今後の方向で、この試作には未実装」としています。
- 原則は「人の注意をできるだけ取らず、できるだけ多くの価値を出す」。頼まれていない仕事は、既定では「やったらこうした」を記録するだけ(accept mode の observe)です。
- 要るのは Node.js 22.19 以上か 24 以上・pnpm・git・Python・tmux・GitHub CLI に加え、DeepSeek Harness・モデルの提供元・github.com のリポジトリ・エージェント専用の GitHub ユーザーアカウント。GitHub Enterprise Server は非対応です。
- 試す前に確かめるのは 6 点。2 つの役割のプリセットは運用者の OS ユーザーの権限で動くので、隔離するならエージェントの資格情報だけを持つ専用の OS アカウントを使います。auto-merge は既定で入れません。
対象読者:GitHub 上でコーディングエージェントを動かしたい開発者と、社内で試してよいかを判断する技術の責任者。
読み終えたらできること:動き方と権限の設計を docs の用語で説明でき、自社で試すか見送るかを 5 つの観点で決め、試すなら試験の計画メモを書けます。
dsh-superagentとは|10月31日に公開された研究用の試作
README の言葉では「1 つの GitHub リポジトリのための proactive なコーディングエージェントで、DeepSeek Harness の bundle として packaged された物」です。GitHub の通知を読み、許可された人が頼んだ時に作業の単位(docs では Ticket)を開き、その Ticket 専用のエージェント Session とディレクトリで作業して、依頼があった元の会話に Pull Request などで答えます。README はこれを「エージェントと一緒に働く 1 つのやり方」とも位置づけ、チーム全体のために動けるエージェントはチーム全体の注意を浪費することもできるから、頼まれた時かチームが書いた決まりが許す時だけ動き、誰かが動く必要がある時か結果を使える時だけ話す、と説明しています。

README の注意書き|公式の製品ではなく、本番向けでもない
- 「参考のための研究用の試作で、DeepSeek の公式の製品ではない」。チームの日々の開発作業から生まれたコードで、エンジニアリングの多くはコーディングエージェントが行った。
- 「研究用のコードとして扱い、本番向けのソフトウェアとして扱わない」。バグが残っている可能性があり、コードの書き方や工学的な慣行が一貫していない可能性がある。自分の環境で使う前に見直して手を入れること。
- 「公開のために手を入れたので、社内版とも、設計の記事に書いた実装とも同じではない」。記事で論じた設計のいくつかは今後の開発の方向で、この試作には実装されていない。
基本情報の表
リポジトリの作成日時とスター数は、2026年11月4日時点で確認した GitHub API の値です。
| 項目 | 内容 | 根拠 |
|---|---|---|
| リポジトリ | deepseek-ai/dsh-superagent-prototype。2026年10月31日 09:32 UTC(日本時間 18:32)に作成。言語は TypeScript | GitHub API |
| ライセンス | MIT(著作権表示は 2026 DeepSeek Harness Team) | LICENSE |
| 位置づけ | 研究用の試作・参考のため・公式の製品ではない・本番向けではない | README |
| 土台 | DeepSeek Harness(dsh)の bundle。package.json の版は 0.1.0、dsh の要件は ^0.2.1-alpha.2 | package.json |
| 聞く先と返し方 | GitHub(任意で Feishu)。依頼があった会話にコメントや Pull Request で返す。GitHub への書き込みは既定で「This is by an automated agent, not a human」の 1 行から始まる | README・docs 004 |
| パネル | DeepSeek Harness の Web UI のサイドバーの「Superagent」。127.0.0.1 で動く。表示は中国語と英語 | docs 005・006 |
| 規模 | スター 16,901・フォーク 1,824(11月4日 10:53 時点)。Issue と Discussions の口は無い(has_issues・has_discussions が false) | GitHub API |
公開の経緯|リポジトリ・設計の記事・報道
リポジトリは 10月31日 18:32(日本時間)に作られ、同じ日の夜に DeepSeek Harness のチームが公式の WeChat で設計の記事を公開しました。IT之家が 21:36、第一財経が 22:35(いずれも北京時間)にその記事を報じ(IT之家・第一財経)、日本では GIGAZINE が 11月2日 14:05 に「研究プロトタイプ『dsh-superagent』をオープンソース化」として報じました(GIGAZINE)。
DeepSeek Harness との関係
DeepSeek Harness(コマンド名 dsh)は、DeepSeek が MIT で公開しているオープンソースのエージェントハーネスで、「everything is a plugin」の作り(土台は Cordis)です。公式ページは「世界で公開のプレビュー、オープンソース」と書き、Node.js を入れて npx @deepseek-ai/dsh web で Web UI を起動する方法と、macOS のデスクトップ版を案内しています(DeepSeek Harness 公式ページ)。リポジトリの README は「developer preview で、互換性を壊す変更が入る」と書き、Web UI は既定で 127.0.0.1:3080 に立ち上がります(deepseek-harness の README)。dsh-superagent はこの Harness に足す bundle です。Harness の経緯(8月の限定のベータから公開まで)は DeepSeek Harnessとは|できること・使い方・導入手順 にまとめています。
原則|人の注意をできるだけ取らず、できるだけ多くの価値を出す
docs 000 Philosophy は、dsh-superagent を「フレームワークであり、エージェントと一緒に働く 1 つのやり方でもある」とし、中核の原則を「人の注意をできるだけ取らず、できるだけ多くの価値を出す(Take as little human attention as possible, and give as much value as possible)」と書いています。メッセージ、通知、質問、設定、パネルの要素、文書の段落のどれも誰かの注意を費やすので、それ以上の価値を出せなければ取り除かれます(docs 000)。
エージェントに課される 5 つ
- 頼まれた時か、書かれた決まりが許す時だけ動く。依頼として数えるのは、エージェントに直接向けられ、チームが許した人(許可リストの人か、チームが依頼に開いた会話にいる人)から来た物だけ。誰も頼んでいない仕事にはチームが書いた決まりが要り、「エージェントがやったであろうこと」を記録するだけのモードで始まります。
- 人が動く必要がある時か、結果を使える時だけ話す。依頼を 1 度だけ確認して何をするかを名指しし、作業中は黙り、結果ができた時・判断が要る時・終えられない時にまた書きます。メッセージは短く、依頼があった会話に送ります。
- 1 度に 1 つの具体的な質問を、構造化した形で聞く。質問が長い報告の中に埋もれず、人に届くようにするためです。
- 努力の量ではなく、影響で止まる。局所的な変更はレビューできる結果まで進め、設計の判断が要る変更は、はっきりした質問を出して止まります。
- 正直に報告する。下書きには未完成の印を付け、失敗は失敗として報告し、質問を避けるために制限を迂回しません。
設計の側の決まりは、概念を少なく・設定を少なく(言葉で説明する振る舞いは設定ではなくプロンプトの文にする)・人が要る物だけを出すパネル・番号順に読む文書、の 4 つです。
運用者の責任|4 つ
docs 000 は、エージェントがチームの誰もが毎日見るアカウントでコメントし、Pull Request を開き、人にメッセージを送ることを指摘し、「それが送る 1 通ごとに同僚の注意が費やされ、その責任はあなたにある」と書いています。
- 狭く始める。短い許可リストと、能動的な仕事は記録だけの状態から始め、「やったであろうこと」が正しく見えてきたら両方を広げます。
- 騒がしさを減らす方向に調整する。騒がしい時はプロンプトを短く厳しくするか、一時停止します。騒がしさを説明するメッセージを足しません。
- 量を出すために使わない。大量の Pull Request、一斉のメッセージ、忙しいだけの作業は、チームに与える以上の物を奪います。
- エージェントが言ったことに責任を持つ。あなたの名前で投稿された物を読み、間違っていればプロンプトで直します。
結びは「目標は、適切な時に適切な助けがあり、それ以外の時には何も無いこと」です。
動き方|依頼が Pull Request になるまでの 5 段
docs 001 Domain model は、コード・ツール・パネル・文書が「これらの用語だけを使う」と決めています。流れは「Trigger から Eval へ、そして実行へ」。Source が Trigger を出し、Trigger はその Thread を購読している Ticket に文脈として届きます。人のメッセージがこうして Ticket に届いた場合はその Ticket の物になり、それ以外の Trigger は Eval に入って、新しい仕事を求めているかが判定されます。Eval が受け入れると Mandate つきの Ticket ができ、Assignment が Ticket を Executor に渡し、結果は Channel を通じて Source に戻ります(docs 001)。

docs の用語と、この記事での言い換え
| 用語 | 言い換え | docs 001 の定義の要点 |
|---|---|---|
| Source | 出来事の流れ | GitHub や Feishu。読んだ位置を持ち、再起動で出来事を再生しない |
| Trigger | 1 つの出来事 | 誰が、などの metadata つきの不変の出来事。同じ Trigger を 2 度受け入れても Ticket は 1 つ |
| Thread | 出来事の列 | 時間順の Trigger の列。GitHub では 1 つの Issue や Pull Request |
| Eval・Decision | 判定・その結果 | gate(決定的な 1 層目:誰がどの強さで仕事を起こせるか)と assessment(モデルの判断)の 2 層。結果は accept・stop・ignore・unavailable |
| Mandate | 権限の記録 | accept が与える物。Policy の版・範囲・強さ・一致した rule・頼んだ人を記録する |
| Ticket | 作業の単位 | 許可された作業の単位。Eval だけが作る。終わっても人のメッセージで開き直る(人が止めた場合を除く) |
| Executor・Channel | 実行する口・返事を書く先 | Executor は Ticket ごとに 1 つの Session と 1 つのディレクトリで実行し、Channel(Thread の書き込み側)にコメントや Pull Request で返す |
| Subscription | 購読 | Ticket と Thread の関係。購読した Thread の Trigger は、再度メンションしなくても Executor に届く |
| Policy | 決まり | 版管理された rule と、Source ごとの許可リスト。accept mode を含む |
| Report・Attention | 報告・人の答え待ち | Report は progress・waiting・ready・blocked・failed・dropped。Attention は人の答えを待つ質問 |
docs 001 は「人はドメインの概念ではない」とも書いています。Trigger が運ぶのは Source が与えた actor の識別子で、許可リストは Source ごとの Policy の一部です。
5 段の流れ
| 段 | 何が起きるか | 根拠 |
|---|---|---|
| 依頼 | 許可リストの GitHub アカウントが、対象リポジトリで @<agent login> <request> を含む Issue を新しく開くか、Issue か Pull Request のコメントにそう書く。GitHub Source はエージェントのアカウントの通知を、既定で 1 分のポーリングの間隔で読む。Issue の本文を編集してメンションを足しても受け取らない |
docs 006 |
| 判定 | gate が送り手と Source の Policy を見る。許可リストの人がエージェントに向けて書いた物は explicit な依頼。main Session(コードでは orchestrator)が受け入れを決めると、Ticket・Mandate・購読・確認のメッセージが一度に作られる | docs 002・007・004 |
| 作業 | Ticket ごとに worker-<ticket id> という Executor Session と専用のディレクトリができ、初回は prepare command(典型は git worktree)が 10 分の制限で走る。Executor は承認なしにコマンドを実行し、リポジトリの AGENTS.md も読む。前景のシェルコマンドは 5 秒で背景のジョブに移る |
docs 003・004 |
| Pull Request | ブランチの接頭辞は既定で agent/。ブランチ名の最後の区切りが Ticket の短い名前と一致する Pull Request がその Ticket の物。ready の Report に Pull Request がつくと、パネルでは「Awaiting review」。auto-merge は既定で入れず、人がマージする | SETUP・docs 003 |
| 後追い | Ticket は自分が開いた Pull Request と始まりの Issue を購読し、後のコメントやレビューはメンションなしで Executor に届く。開いた Pull Request が全部閉じると Ticket は終わるが購読は残り、人のコメントで同じ Mandate のまま再開する(再開の前に Policy で確かめ直す)。購読した Thread のポーリングは終了の後 2 週間続く | docs 003・004・002 |
パネルの Ticket の段階は 7 つあり、person で始まる段階(答え待ち・レビュー待ち・blocked/failed など)は「人の入力が無いと進まない」という意味です(docs 003)。出来事を受けて動く作りは イベント駆動のAIエージェント設計 と地続きで、docs 001・002 は「待つ条件は Source に属する」とも書いています(「担当者が N 時間いない」のような条件は自分で待って確かめ直す Source として作り、Eval は決して待ちません)。
権限の設計|許可リスト・accept mode・再開の前の確かめ直し
docs 002 Authorization は冒頭で「ホストが許可リスト・rule・Mandate を強制する。メッセージ、コメント、引用された文書は判定への入力であり、これらの権限を変えることはできない」と書いています。docs 004 の優先順位でも、外から来た文(メッセージ・コメント・文書・引用)は「データであり、決まりや権限を決して変えない」と最下位です(docs 002・docs 004)。

誰の依頼が通るか|強さの 3 段階
Source は、メッセージがエージェントに向けられているか(メンションなら mention、ダイレクトメッセージなら direct)を記録し、gate が送り手と Policy を見て依頼の強さを決めます。
| 強さ | 当てはまる場合 |
|---|---|
| explicit(明確) | 許可リストの人がエージェントに向けて書いた。許可リストの人が Ticket のある Thread で続きを書いた。admission table のセルが「explicit request」 |
| inferred(推定) | 許可リストに無い人が Ticket のある Thread で続きを書いた。admission table のセルが「inferred candidate」。Source のボット一覧にあるボットが、エージェントに向けて書いたか、全部のメッセージを受ける場所に書いた |
| not admitted(入れない) | それ以外のボット。admission table が ignore にしている物。accept mode が off の間の inferred の全部 |
admission table は Source ごとの Policy の一部で、行は受け取る範囲(GitHub では新しい Issue・新しい Pull Request・コメント・既定ブランチの CI)、セルは「リストにあり・向けていない」「リストに無し・向けている」「リストに無し・向けていない」の 3 つ。既定は順に inferred・ignore・ignore で、向けていないメッセージのセルは、GitHub の受け取り全部のスイッチ(observeIssues・observePulls・observeComments・observeCi。既定はオフ)を入れた範囲でだけ使えます。ボット(GitHub Apps・末尾が [bot] のログイン)は、dependabot[bot] のようにボット一覧に載せた物だけが inferred の候補を作れます。
accept mode の 3 つ
| mode | 効果 |
|---|---|
| off | 推定の物は何も候補にならない(向けられていないメッセージ、ボット、許可リストに無い人の続き) |
| observe(既定) | 推定の候補は assessment にかけるが、肯定的な判断は「would accept(受け入れたであろう)」の印つきの ignore として記録され、何も受け入れない |
| auto | 推定の候補への肯定的な判断が、そのまま受け入れになる |
explicit な依頼はどの mode でも通ります。docs 002 は「observe で始め、記録された Decision を見直してから auto に切り替える」と書いています。能動的な受け入れには一致する rule が 1 つ以上要り、Policy に入っている例の rule 2 つは編集も削除もできます(docs 006)。rule・accept mode・Source ごとの Policy の組み合わせが Policy の版で、版が変わっても生きた Ticket の Mandate がその場で取り消されることはありません。
止める・再開する
- Mandate を変える操作は 3 つだけ。accept が作り、人の stop が取り下げ、再開の前の確かめ直しに失敗すると取り消されます。人が止めた Ticket は何も受け取りません。
- Thread で人が「stop」と書くのは普通の Trigger で、止めるかどうかは Eval が決めます。パネルの Stop はコマンドで、Ticket に直接作用し、手動の停止として記録されます。
- 終わった Ticket はその Thread への人のメッセージで、新しい Eval なしに同じ仕事を再開します(ボットと CI は起こしません)。再開の前に、Source がまだ元の Thread を聞いていること、inferred の Mandate なら auto mode で一致した rule が有効なこと、許可リストの経路なら送り手がまだリストにいること、などを確かめ直し、失敗すると新しい受け入れが要ります。
人の承認をどこに挟むかの型は Human-in-the-Loop完全ガイド|エージェント承認設計 で整理しています。dsh-superagent は「誰が仕事を起こせるか」をホストが決め、「結果をどう扱ってよいか」(いつマージしてよいか)はエージェントへの指示の側に置く、という分け方です。
auto-merge は既定で入れない
SETUP.md の質問 9「auto-merge を有効にするか」の推奨の答えは「No:エージェントの Pull Request がしばらく正しく続くまで、人がマージする」です。docs 003 によると、Executor は既定でエージェントのアカウントとして auto-merge を有効にすることは決してなく(GitHub はマージを有効にした人の物として記録するため)、有効にするなら Delivery requirements のプロンプトでマージできる別のアカウントの CLI を名指しします。既定の指示が auto-merge を許すのは、その Ticket のために開いた Pull Request が ready で、必要な承認が head のコミットを覆い、追加と削除の合計が 200 行未満の時だけ。承認を強制するならブランチ保護で必須にし、古い承認を無効化するように、とも書かれています(SETUP.md・docs 003)。
動かすのに要るものと入れ方|SETUP.md をコーディングエージェントに読ませる
README は「セットアップには多くの手順があるので、エージェントがあなたと一緒に行う」として、自分のコーディングエージェントに「Read SETUP.md in this repository and set up dsh-superagent with me.」と頼む方法を公式の入れ方にしています。エージェントは一度に 1 つの短い質問をし、計画を 1 回だけ全部見せてから、インストールと設定を行います(SETUP.md)。

必要な物の一覧
| 必要な物 | 条件 | 根拠 |
|---|---|---|
| Node.js・pnpm | Node.js 22.19 以上か 24 以上。package.json の packageManager は pnpm 11.7.0 | SETUP・package.json |
| git・Python・tmux | git 2.32 以上(Git LFS を使うリポジトリなら git-lfs も)・Python 3.8 以上・tmux(サービスの script が dsh を tmux の session で動かす) | docs 006 |
| GitHub CLI(gh) | 2.48 以上。Source の CLI の欄は gh か lark-cli のラッパーを指す | docs 006 |
| DeepSeek Harness(dsh) | package.json の engines.dsh(^0.2.1-alpha.2)の範囲。docs 006 の例は 0.2.1-rc.3 を固定で入れる | package.json・docs 006 |
| モデルの提供元 | DeepSeek Harness に設定した提供元。プロフィールの既定のモデルを使い、Eval と Execution の設定で別のモデルを名指しできる | docs 006 |
| リポジトリ | github.com のリポジトリ。GitHub Enterprise Server(自社のサーバーで動かす GitHub)は非対応。Ticket ごとにチェックアウトを作るなら、prepare command が worktree を足せるローカルのクローンを 1 つ置く | docs 006 |
| エージェント用の GitHub アカウント | GitHub の「ユーザー」アカウントで、対象リポジトリへの書き込み権限を持つ。GitHub App は不可(そのアカウントの通知を読むため) | docs 006 |
| Feishu(任意) | lark-cli(1.0.90 で確認済みと記載)と、ボットの機能を持つ Feishu か Lark のアプリ | docs 006 |
動かす形は、普段使うプロフィールとは別の DeepSeek Harness のプロフィール(docs では superagent)を Web のプロフィールの雛形から作り、そこに bundle を読み込ませ、パネルを 127.0.0.1 で出します。例の設定ファイルのポートは 3082、状態ディレクトリは絶対パスで指定し、アップグレードの前にバックアップします。別のプロフィールにする理由は「プラグインがプロセス全体の PATH と git の設定を変える」「独立した再起動とアップグレードが要る」です。Windows への言及は docs にありません(docs 006・examples/profile.cordis.patch.yml)。
公式の入れ方|SETUP.md の 5 段
- 調べる(Probe)。最初の質問の前に SETUP.md と docs 000 だけを読み、チェックアウトの中で probe のコマンドを 1 回だけ動かします。足りない前提条件は質問ではなく計画の項目になります。
- 質問する(Questions)。1 通に 1 つずつ、Trigger はどこから来るか(GitHub だけか Feishu も・どのリポジトリ・どのエージェントのアカウント)、誰がそこで頼めるか、Executor が Ticket で何をするか(どのクローンから取るか・コミットの名義・auto-merge)の順に最大 9 つ聞きます(うち 2 つは Feishu を使う時だけ。probe で分かった物は聞きません)。推奨の答えは、GitHub だけ・専用のアカウント・許可リストは運用者のログインだけ・auto-merge は No。良い既定がある値(プロフィール名 superagent・ポート 3082・状態ディレクトリ・1 時間ごとの check・ブランチの接頭辞 agent/・accept mode の observe)は聞かずに計画に載せます。
- 計画を見せる(Plan)。300 語以内の 1 通で、何を入れるか・アカウントと CLI・保存する設定・運用者がやる手順・既定値を示し、確認を 1 回だけ求めます。聞いている間は実行しません。
- 実行する(Execute)。運用者の手順が先です。エージェント用のアカウントの作成、リポジトリへの招待の受け入れ、各ラッパーでの auth login など、運用者にしかできないことを 1 通にまとめ、終わるまで待ちます。「秘密をチャットで聞くことは決してしない」が決まりです。その後に docs 006 に従って入れて起動し、設定(Source・許可リスト・prepare command・プロンプト)を Management API(パネルが使う 127.0.0.1 のローカルの HTTP API。エージェントも呼べる)で保存します。
- 確かめて引き渡す(Verify and hand over)。
scripts/dsh-superagent statusが setup の問題なしに終了コード 0 で終わることを確かめ、1 時間ごとの check を運用者のプロフィールに作ります。最後に 300 語以内の 1 通で、パネルの URL、試し方(許可リストのアカウントで Issue に@<agent login> <request>とコメントすると約 1 分で Ticket が出る)、運用者の 3 つの決まり(狭く始める・騒がしさを減らす・言ったことに責任を持つ)を伝えます。
コピペ用 1|SETUP.md を読ませる依頼文(README の英文と日本語訳)
Read SETUP.md in this repository and set up dsh-superagent with me.
(日本語訳)このリポジトリの SETUP.md を読んで、私と一緒に dsh-superagent をセットアップしてください。
英文は README に載っている依頼文そのままです。読む相手はコーディングエージェントなので、英文のまま貼るのが確実です。
docs に載っているコマンド(公式の例・筆者は実行していません)
以下は SETUP.md と docs 006 に載っているコマンドをそのまま写した物です。本番環境で使用する前に、必ずテスト環境で動作確認してください。最初は SETUP.md の probe(前提条件と既存のプロフィールの確認)です。
node -v; pnpm -v; git --version; tmux -V; python3 --version; gh --version | head -1; dsh --version
gh api user --jq .login
command -v lark-cli
grep -l -E 'id: dsh-superagent\b' "${DSH_HOME:-$HOME/.dsh}"/profiles/*/cordis.patch.yml 2>/dev/null
次は docs 006 の「Install」で、superagent のプロフィールがまだ無い機械で 1 回だけ動かします。4 つ目のコマンドは既存のプロフィールを置き換えて cordis.patch.yml を消すので、アップグレードには使いません。
npm install -g @deepseek-ai/dsh@0.2.1-rc.3
git clone <this repository> dsh-superagent && cd dsh-superagent
pnpm install && pnpm build
dsh superagent --from-default-profile web --dump-config > /dev/null
dsh plugin --profile superagent add "link:$PWD"
エージェント用の GitHub アカウントには、そのアカウントの資格情報だけを使う GitHub CLI のラッパー(docs 006 の例では gh-agent)を用意し、gh-agent api user --jq .login でエージェントのログインが出ることを確かめます。起動と確認は scripts/dsh-superagent start と scripts/dsh-superagent status で、status の終了コードは 0(正常)・1(動いていないなど。再起動で直ることがある)・2(Source などの部分のエラー)・3(setup 待ち)です。開発者向けには pnpm check が型検査・テスト・ビルドをまとめて走らせ、Source を足す手順は docs 008 Cookbook にあります。
設計の記事「Super-agent」とこの試作の関係|報道の範囲で
IT之家(2026年10月31日 21:36)によると、DeepSeek Harness の公式チームは同日、Super-agent の設計の探索と題した記事を公開し、工学の実践に向けた設計の考え方を紹介しました。第一財経(同日 22:35)は、公開の場が公式の WeChat の公衆号だったと報じています。記事の出発点は、生産性を制限する要因が人の注意に移ってきたという見立てで、エージェントは常時オンラインで複数の作業を並行して進める協力者へ進化する必要がある、と主張したとされます(IT之家・第一財経)。原文は筆者が見つけられなかったので、以下は報道が伝えた範囲です。
報道が伝える設計の 5 つの部品
IT之家によると、記事は Super-agent の基礎的な特徴を「連続・高効率・能動・持続」の 4 つにまとめ、全体の設計を次の 5 つの部品で説明しています。
- 2 層の構造(Router と Worker):Router 層が人とのやり取り・全体の文脈・作業の振り分けを担い、Worker 層は互いに隔離された会話の中で並行して作業する。Worker は利用者に直接返事をせず、状態と結果を Router に報告する。
- イベント駆動:チャットのメッセージ、メールと予定の通知、コードレビューのコメント、CI の結果などを Trigger と呼び、まずプログラムの規則で絞り、次にモデルが動くべきかを判断する。作業を割り当て済みの流れは Worker が Thread を購読し、以後の関連イベントは Router を通さず Worker に届く。
- 人に向けたやり取り:時間のかかるツール呼び出しを非同期の start と stop に変える「非同期の ReAct Loop」(ReAct は、モデルが考える・ツールを呼ぶ・結果を読んで次を決める、を繰り返す動き方)。IT之家は、この仕組みは DeepSeek Harness で実装済みだが既定ではオンになっていない、とチームが特記したと報じている。
- 計算と状態と実行環境の分離:計算と永続化する状態はクラウドに置き、実行環境は利用者のローカルの機械に残すこともできる(命令の実行と結果の返却だけを担う軽い daemon を置く。BYOM:Bring Your Own Machine)。クラウドで管理する機械や、必要な時に作る計算環境にもつなげるとされる。
- Watchdog:主の構造の外に独立した Watchdog の Session を置き、API のエラーだけでなく、モデルで Worker が実質的に前進しているかを判断し、異常なら介入する。
Router と Worker を分ける考え方は、マルチエージェント設計パターン完全ガイド で扱ったオーケストレーターとワーカーの型です。報道はこのほか、文脈の窓の使い方(Inline & Spill)、参照をたどって過去の作業を取り戻す Chain of Recall、環境の信号を見て先回りする投機的な実行も紹介したと伝えています。
初期の実験の数字(条件つき)
IT之家によると、DeepSeek のチームは初期の実験として、Super-agent・イベントの直通の仕組みを外した Super-agent・2 種類のプロンプト設定の「単一 Session+Subagent」の案を比べました。各回は約 300 通のメッセージを含み、そのうち約 20 通が仕事の依頼で、各案を 5 回ずつ走らせています。結果は Super-agent の作業完了時間(依頼から結果のメッセージまで)が p50(中央値)で 12.4 分・p95(95 パーセンタイル)で 15.7 分、中立なプロンプトの単一 Session の案は p95 で 29.5 分。ただし IT之家は、これらの実験は合成の負荷と簡単にした環境に基づき、主に仕組みの振り分け(スケジューリング)と協調の力を評価した物で、1 つの作業の実際の実行の力は測っていない、とチーム自身が指摘したことも併せて報じています。記事はまた、長い記憶、エージェント同士の通信、プロンプトインジェクションや資格情報の漏えいなどのセキュリティとプライバシーを未解決の課題として挙げたとされます。
この試作に入っている物・入っていない物
README は「記事で論じた設計のいくつかは今後の開発の方向で、この試作には実装されていない」と書いています。docs の全文を読んで突き合わせた結果が次の 3 点です。「docs に記載なし」は、docs 000〜008・README・SETUP.md にその語も仕組みの説明も見つからなかったという意味で、社内版にあるかどうかは分かりません。
- 入っている物:Router と Worker の 2 層は、docs 001 の用語集では main Session(コードでは orchestrator。評価・振り分け・返事)と Executor Session(コードでは worker。1 つの Ticket の作業)に当たり、main Session は「ルーティングだけをし、技術的な判断をしない」(docs 004)。イベント駆動と 2 段の絞り込みは Source → Trigger → Thread → Eval の流れと、gate(決定的)と assessment(モデル)の 2 層。Worker の購読は Subscription。main Session は待たない作りで、Executor の前景のコマンドは 5 秒で背景へ移る(docs 003・007)。
- docs に記載が無い物:計算と状態と実行環境の分離(BYOM)、投機的な実行、Inline & Spill、Chain of Recall。試作は運用者の機械の 1 つのプロフィールで動き、状態は状態ディレクトリの SQLite 1 ファイルです(docs 006・007)。
- Watchdog:docs にこの語は無く、docs 006 の「hourly check」は、status が 1 を返した時に restart し、2 と 3 の時は再起動せず報告する 1 時間ごとの点検で、モデルで Worker の進み具合を判断する仕組みではありません。
会社で試す前に確かめる 6 点
ここがこの記事の山場です。docs 006 の「Permissions and isolation」は、こう書いています。「どちらのプリセット(Executor 用の dsh-superagent-worker と main Session 用の dsh-superagent-router)も、運用者の OS ユーザーとして danger-full-access で動き、購読した Thread のメッセージを読む。アカウントのラッパーは既定でエージェントの資格情報を選ぶが、プロセスを隔離はしない。Worker はパスでプログラムを実行でき、運用者のホームディレクトリを読める。隔離するには、エージェントの資格情報だけを含む専用の OS アカウントを使う」。docs 003 も「これらのラッパーとディレクトリは既定を作る物で、セキュリティの境界ではない」と念を押しています(docs 006)。

| # | 確認すること | docs・規約の記載 | 社内で決めること |
|---|---|---|---|
| ① | 動かす OS のアカウント | 2 つのプリセットは運用者の OS ユーザーとして danger-full-access で動き、Worker はパスでプログラムを実行でき、ホームディレクトリを読める。隔離するならエージェントの資格情報だけを持つ専用の OS アカウント。setup の確認は、名前に KEY・PASSWORD・SECRET・TOKEN を含む環境変数を外して動く(Worker のシェルと同じ subprocess の仕組み)。setup が書く Worker の git の設定では GH_TOKEN・GITHUB_TOKEN が外される。自分のアカウントでログイン済みの個人の CLI は、運用者が Execution の設定で blocked commands に載せる(docs 006) | 誰のアカウントで、どの機械で動かすか。普段の PC の自分のユーザーで動かさない |
| ② | エージェント用の GitHub アカウント | 専用のユーザーアカウントで、運用者自身のアカウントは決して使わない(SETUP 質問 3)。GitHub App は不可(docs 006)。GitHub の利用規約は「機械のアカウント(machine account)」を認め、個人の人間が規約に同意して設定して行動に責任を負う、自動の作業だけに使う、無料の個人アカウントに加えて無料の機械のアカウントは 1 つまで、所有者が最終的に責任を負う、と定めている(GitHub Terms of Service「Account Requirements」) | 誰が所有者として責任を持つか。有料の Organization なら座席の扱い |
| ③ | コードと会話がどこへ送られるか | dsh-superagent 自体はモデルを持たず、DeepSeek Harness に設定したモデルの提供元を使う(docs 006)。Executor はリポジトリの中身と購読した Thread のメッセージを読む(docs 003・004)。DeepSeek の API を使うなら、その利用は DeepSeek Open Platform Terms of Service(2026年4月22日公開)の対象で、その 5.5 は利用者がデータ主体として提供する個人情報を「DeepSeek Privacy Policy」に従って処理すると書き、そのプライバシーポリシー(最終更新日 2026年2月10日)は、データ管理者が中国に登記住所を持つ Hangzhou DeepSeek Artificial Intelligence Co., Ltd. で、収集した情報を中華人民共和国にあるサーバーに保存する、と書いている(DeepSeek プライバシーポリシー) | どの提供元を使うか。対象リポジトリのコードと Issue の会話をその提供元に送ってよいか。Feishu を使うならそちらの会話も |
| ④ | 研究用の試作であること | 公式の製品ではなく本番向けではない。バグが残っている可能性があり、使う前に見直して手を入れる(README)。土台の DeepSeek Harness も developer preview で互換性を壊す変更が入る(Harness の README)。docs 007 は「古いレコードを消す物がまだ無い」と書き、Open questions に「Trigger のどの欄を信頼するか」と「配備の隔離」を残している。リポジトリに Issue の口は無い(GitHub API) | 試験用のリポジトリから始めるか。誰が中身を読んで手を入れるか |
| ⑤ | 許可リストと accept mode | 許可リストは運用者のログインだけから(SETUP 質問 5)。accept mode は既定の observe のまま、記録された Decision を見直してから auto へ(docs 002)。GitHub への書き込みは既定で「This is by an automated agent, not a human」の 1 行から始まる(docs 004) | 最初に頼んでよい人は誰か。記録だけの期間をどれだけ取るか |
| ⑥ | auto-merge | 既定で入れない。入れるならマージできる別のアカウントの CLI が要り、既定の条件は Ticket のために開いた Pull Request・ready・承認が head を覆う・追加と削除の合計が 200 行未満(SETUP 質問 9・docs 003)。承認の強制はブランチ保護で | 当面は人がマージする。ブランチ保護を先に入れる |
権限をどう線引きするかの一般論は AIエージェント ガバナンス・権限設計2026 にまとめています。
コピペ用 2|試す前の確認表(社内の回覧用)
dsh-superagent 試験前の確認(2026-11-04 版・根拠は docs 006/003/002・SETUP.md・GitHub ToS)
[ ] ① 動かす機械と OS アカウント:___(専用の OS アカウントか/個人の資格情報が無いか)
[ ] ② エージェント用の GitHub アカウント:___(所有者=___/規約の machine account の条件を読んだ)
[ ] ③ モデルの提供元:___(コードと Issue の会話を送ってよい範囲を確認した/Feishu は使う・使わない)
[ ] ④ 研究用の試作と理解した(本番のリポジトリに入れない/中身を読む担当=___)
[ ] ⑤ 許可リスト:___ だけ/accept mode は observe のまま/記録だけの期間=__日
[ ] ⑥ auto-merge は入れない/ブランチ保護を入れた(必須の承認・古い承認の無効化)
[ ] 止め方を確認した(パネルの Stop・Pause processing・scripts/dsh-superagent stop)
[ ] 見張る人=___(パネルの Overview と 1 時間ごとの check の報告を見る)
試すなら/まだ見送る|判断表と社内の試験の計画メモ
上の 6 点を、試すか見送るかの判断に落とすと次の表になります。どれか 1 つでも「見送る」の側なら、その条件が整うまで待つ方が docs の前提に合います。
| 観点 | 試すなら | まだ見送る |
|---|---|---|
| 使うリポジトリ | github.com のリポジトリ(試験用か、影響の小さい物) | GitHub Enterprise Server(docs 006 が非対応と明記)。GitLab など他のホスティングは docs に記載が無い |
| 専用の OS アカウント | エージェントの資格情報だけを持つ OS アカウント(か、個人の資料を置いていない専用の機械)を用意できる | 自分の普段の PC の自分のユーザーで動かすしかない(Worker がホームディレクトリを読める) |
| エージェント用の GitHub アカウント | 機械のアカウントを作り、所有者と責任を決め、対象リポジトリに書き込み権限を与えられる | 自分のアカウントを使うしかない(SETUP が「決して使わない」としている) |
| モデルの提供元とデータの扱い | どの提供元に何を送るかを社内で決めた | 決められない、または対象リポジトリのコードを外部の提供元に送れない |
| 誰が見張るか | パネルの Overview を見る人と、1 時間ごとの check の報告を受ける人がいて、エージェントの投稿を読んでプロンプトを直す人が決まっている | いない(docs 000 の「言ったことに責任を持つ」を担う人がいない) |
コピペ用 3|社内の試験の計画メモの型
項目は SETUP.md の質問と既定値、docs 006 の止め方に対応させています。角括弧の中を埋めて使ってください。
dsh-superagent 試験の計画メモ
- 目的:[何を確かめるか。例:Issue の依頼から Pull Request までの質と、チームへの通知の量]
- 対象リポジトリ(github.com・owner/name):[ ]
- 期間:[開始日]〜[終了日](記録だけの期間:最初の [ ] 日は accept mode を observe のまま)
- 動かす機械と OS アカウント:[機械名]/[エージェント専用の OS アカウント名]
- DeepSeek Harness のプロフィール:superagent(ポート 3082・状態ディレクトリ [絶対パス])
- エージェントの GitHub アカウント:[ログイン](所有者:[氏名]・書き込み権限の付与日:[ ])
- 許可リスト(GitHub で頼める人):[運用者のログインだけ]/Feishu:使わない
- コミットの名義:エージェントのアカウント/ブランチの接頭辞:agent/
- auto-merge:入れない(人がマージ・ブランチ保護で必須の承認:[人数])
- モデルの提供元:[提供元名](送ってよい範囲:[ ])
- 見張り:パネルの Overview を [氏名] が [頻度] で見る/1 時間ごとの check の報告先:[ ]
- 止め方:パネルの Stop(Ticket 単位)・Pause processing(全体)・scripts/dsh-superagent stop(サービス)
- 終了の判断:[例:記録だけの期間の Decision を読み、would accept の判断が妥当なら auto を検討する]
止め方は 3 段あります。パネルの Stop は Ticket に直接作用するコマンド、Pause processing は振り分け・新しい Eval・Input の配達・返事を止めつつ Source の記録と進行中のターンは続ける全体の一時停止、scripts/dsh-superagent stop はサービスの穏やかな停止です(docs 002・003・006)。
【要注意】dsh-superagent を試す時によくある失敗 4 つ
失敗 1:自分の GitHub アカウントでエージェントを動かす
❌ 手っ取り早いので、運用者自身の gh のログインをエージェントの CLI に指定する。
⭕ SETUP.md の質問 3 は「専用のアカウント。運用者自身のアカウントは決して使わない」で、理由は「エージェントが書く物は全部この名前で出る」から。GitHub の利用規約の machine account の条件(人間が設定し、責任を負い、自動の作業だけに使う)を読んで、所有者を決めてから作ります。
失敗 2:最初から accept mode を auto にし、許可リストを広く取る
❌ 便利そうなので、チーム全員を許可リストに入れ、頼まれていない仕事も最初から受け入れる。
⭕ docs 000 の「狭く始める」と docs 002 の「observe で始め、記録された Decision を見直してから auto へ」に従います。許可リストは運用者のログインだけから。騒がしいと感じたら、メッセージを足すのではなくプロンプトを短く厳しくするか、一時停止します。
失敗 3:普段の PC の自分のユーザーで動かし、個人の CLI をブロックしない
❌ 自分の開発機でそのまま起動し、自分のアカウントでログイン済みの CLI も Worker から見える状態にしておく。
⭕ docs 006 は、プリセットが運用者の OS ユーザーで danger-full-access で動き、Worker がホームディレクトリを読めると明記し、隔離するならエージェントの資格情報だけを持つ専用の OS アカウントを使う、個人の CLI は blocked commands に載せる、としています。ラッパーは既定を作るだけで、セキュリティの境界ではありません(docs 003)。
失敗 4:設計の記事の機能が、この試作に全部入っていると思い込む
❌ 報道で読んだ Watchdog・BYOM・投機的な実行を期待して試し、「動かない」と判断する。
⭕ README は「記事の設計のいくつかは今後の方向で、この試作には未実装」と書いています。試作に入っているのは、Source・Trigger・Eval・Ticket・Executor・Subscription の流れと、許可リスト・accept mode・パネル・Management API です。期待する物が docs に書かれているかを先に確かめます。
よくある質問
dsh-superagent は DeepSeek の正式な製品ですか?
違います。README は「参考のための研究用の試作で、DeepSeek の公式の製品ではない」「研究用のコードとして扱い、本番向けのソフトウェアとして扱わない」と書いています。IT之家も、この試作は「技術の進路を検証するための物で、DeepSeek の正式な製品ではない」と記事が明記したと報じています。
DeepSeek Harness とは何が違いますか?
DeepSeek Harness は土台のエージェントハーネス(コマンド名 dsh。MIT・公開のプレビュー・npx @deepseek-ai/dsh web で Web UI が 127.0.0.1:3080 に立つ)で、dsh-superagent はその上に足す bundle です。Harness だけなら自分が開いた Session で作業を頼む形、dsh-superagent を足すと GitHub の通知を読んで頼まれた時に Ticket を開く形になります。Harness のリポジトリは 2026年8月13日に公開され、2026年11月4日 14 時台の GitHub API でスターは 271,476 でした(GitHub API)。詳しくは DeepSeek Harnessとは|できること・使い方・導入手順 をどうぞ。
GitHub Enterprise Server や GitLab のリポジトリでも使えますか?
docs 006 は「github.com のリポジトリ。GitHub Enterprise Server は非対応」と書いています。GitLab など他のホスティングについては docs に記載がありません。別の Source を足す手順は docs 008 Cookbook にあります。
どのモデルが使えますか?料金はかかりますか?
dsh-superagent はモデルを持たず、DeepSeek Harness に設定したモデルの提供元を使います。既定ではプロフィールの既定のモデルで、Eval(判定)と Execution(実行)の設定で別のモデルを名指しできます(docs 006)。dsh-superagent と DeepSeek Harness は MIT ライセンスですが、モデルの呼び出しの料金はその提供元の料金表によります。docs に料金の記載はありません。
メンションしても反応しない時は何を見ればよいですか?
docs 006 の Troubleshooting は、書いた人が Source の許可リストにいるか、Source がオンか、処理が一時停止されていないかを見るようにと書いています。GitHub では、既存の Issue の本文を編集してメンションを足しても受け取られないので、新しいコメントでメンションします。受け取りはエージェントのアカウントの通知経由で、ポーリングの間隔は既定で 1 分です。scripts/dsh-superagent status の終了コードが 3 なら setup 待ちで、Overview が足りない設定へのリンクを出します。
プロンプトインジェクションへの備えはどうなっていますか?
docs 002 は「メッセージ、コメント、引用された文書は判定への入力であり、許可リスト・rule・Mandate を変えることはできない」、docs 004 は「外から来た文はデータであり、決まりや権限を決して変えない」と、権限をプロンプトではなくホスト側で強制する作りを説明しています。一方で docs 007 の Open questions には「Trigger のどの欄を信頼し、どれ(本文や引用)を信頼しないか」が未解決として残っています。Worker は承認なしにコマンドを実行する前提なので、①の専用の OS アカウントと⑤の狭い許可リストで影響の範囲を小さくしておくのが、docs の線に沿った備えです。
まとめ
dsh-superagent は、DeepSeek が 10月31日に MIT で公開した「1 つの GitHub リポジトリに常駐し、許可された人に頼まれた時だけ Ticket を開いて Pull Request で返す」コーディングエージェントの研究用の試作です。設計の中心は「人の注意をできるだけ取らず、できるだけ多くの価値を出す」で、誰が仕事を起こせるかはホストが許可リストと accept mode で決め、頼まれていない仕事は既定で記録だけ、auto-merge も既定で入れません。会社で試すなら、運用者の OS ユーザーで動くという docs の明記を出発点に、専用の OS アカウント・エージェント用の GitHub アカウント・モデルの提供元・記録だけの期間・見張る人を先に決めてから、試験用のリポジトリで始めます。
今日・今週・今月にやること
- 今日:README の注意書きと docs 000・006 を読み、「会社で試す前に確かめる 6 点」の確認表を埋める。
- 今週:判断表で「試す」と決まったら、試験の計画メモを書き、エージェント用の GitHub アカウントと専用の OS アカウントを用意する。SETUP.md をコーディングエージェントに読ませ、accept mode は observe のまま運用者だけが頼む。
- 今月:記録された Decision とエージェントの投稿を読み、プロンプトを短く厳しくする。auto への切り替えと許可リストの拡大は、記録が正しく見えてから。
あわせて読みたい
- DeepSeek Harnessとは|できること・使い方・導入手順 — 土台の DeepSeek Harness の経緯と使い方。
- Why are coding agents so dumb? 論点はハーネス — コーディングエージェントの出来を決めるのはハーネス側だという論点。
- Human-in-the-Loop完全ガイド|エージェント承認設計 — 人の承認をどこに挟むかの型。
運営元 Uravation よりAIエージェントを構想から本番運用まで進める順番と、体制・KPIの決め方をまとめた資料を無料で公開しています。 AIエージェント導入ロードマップを受け取る(無料)
参考・出典
- dsh-superagent-prototype(README) — deepseek-ai・GitHub(参照日: 2026-11-04)
- SETUP.md — deepseek-ai/dsh-superagent-prototype(参照日: 2026-11-04)
- docs:000 Philosophy・001 Domain model・002 Authorization・003 Execution・004 Prompts・005 Panel・006 Deployment・007 Architecture・008 Cookbook — deepseek-ai/dsh-superagent-prototype(参照日: 2026-11-04)
- LICENSE(MIT)・package.json・examples/profile.cordis.patch.yml — deepseek-ai/dsh-superagent-prototype(参照日: 2026-11-04)
- GitHub REST API: repos/deepseek-ai/dsh-superagent-prototype — GitHub(作成日・スター数・フォーク数・ライセンス。参照日: 2026-11-04 10:53)
- GitHub REST API: repos/deepseek-ai/deepseek-harness — GitHub(Harness のリポジトリの作成日・スター数。参照日: 2026-11-04 14 時台)
- DeepSeek Harness — DeepSeek 公式ページ(参照日: 2026-11-04)
- deepseek-harness(README) — deepseek-ai・GitHub(参照日: 2026-11-04)
- DeepSeek が Super-agent の構造の設計を提示:Router と Worker の 2 層の構造で、より自律的な Agent システムを探る(原題は中国語) — IT之家(2026-10-31 21:36・参照日: 2026-11-04)
- DeepSeek が新しい Agent の構造を発表(原題は中国語) — 第一財経(2026-10-31 22:35・参照日: 2026-11-04)
- DeepSeekがGitHubを監視してコーディングの問題を検出し解決策を提案するコーディングエージェントの研究プロトタイプ「dsh-superagent」をオープンソース化 — GIGAZINE(2026-11-02・参照日: 2026-11-04)
- GitHub Terms of Service(B. Account Terms「3. Account Requirements」) — GitHub Docs(参照日: 2026-11-04)
- DeepSeek プライバシーポリシー(最終更新日 2026年2月10日) — DeepSeek(参照日: 2026-11-04)
- DeepSeek Open Platform Terms of Service(Release date: April 22, 2026・Effective date: April 29, 2026) — DeepSeek(5.5 の個人情報の扱い。参照日: 2026-11-04)
