dsh-superagentとは?
dsh-superagentは、1つのGitHubリポジトリと連携して動作する、プロアクティブなコーディングエージェントです。DeepSeek Harness向けのバンドルとして配布され、GitHubからのリクエストと、オプションでFeishuからのリクエストを受け付けます。
許可されたユーザーが作業を依頼すると、システムは作業項目を開き、専用のエージェントセッションとディレクトリを作成し、タスクを完了して、元の会話に返信します。結果にはプルリクエストが含まれる場合があります。ウェブパネルには、人の対応が必要な項目が表示されます。
dsh-superagentは、参考目的の研究プロトタイプであり、DeepSeekの公式製品でも、本番運用可能なシステムでもありません。
公開されているリポジトリは、チーム内部のバージョンや、Exploring Super-agent Design: Towards a More Autonomous Agent Systemで説明されている実装とは異なります。記事内の一部のアイデアは将来の方向性を示すものであり、このプロトタイプには実装されていません。
中核となる設計原則
このプロジェクトは、人間の注意をできるだけ少なくしながら、できるだけ大きな価値を提供することを目指しています。チーム全体で利用するエージェントは、チームの注意も消費する可能性があるため、dsh-superagentでは次の2つの重要な制約に従います。
- 誰かが実行を依頼した場合、またはチームで定めたルールが実行を許可した場合にのみ動作します。
- 誰かが対応する必要がある場合、または完了した結果を利用できる場合にのみ発言します。
エージェントを導入する前に、理念文書をお読みください。この文書では、この運用原則とシステムを実行する担当者の責任について説明しています。
主な機能
- 単一リポジトリに集中: 各デプロイメントは1つのGitHubリポジトリと連携します。
- GitHub連携: エージェントは、GitHubから送られた承認済みのリクエストを受け付けます。
- オプションのFeishu連携: チームはFeishuをリクエスト元として利用することもできます。
- 作業項目の追跡: 受け付けられたリクエストは作業項目になります。
- 分離された実行: 各タスクは専用のエージェントセッションとディレクトリで実行されます。
- 会話を認識した返信: 結果は、リクエストの発生元である会話に返されます。
- 人の対応が必要な項目を示すパネル: ウェブパネルで、人の関与が必要な作業を確認できます。
- ルールで制御される動作: エージェントは、リクエストまたは明示的なチームルールに応じた場合にのみ動作します。
インストール前に
このリポジトリは研究用コードとして扱ってください。バグ、一貫性のないコーディングスタイル、またはお使いの環境に適さない設計判断が含まれている可能性があります。依存する前に実装を確認し、必要に応じて適応させてください。
セットアップには多くの手順があるため、必要な設定を手作業で推測するのではなく、コーディングエージェントと協力して完了することをプロジェクトでは推奨しています。
ガイド付きインストールとセットアップ
ステップ1: コーディングエージェントでリポジトリを開く
クローンまたはチェックアウトしたリポジトリを、コーディングエージェントから利用できるようにします。その後、プロジェクトが推奨するセットアップ指示を与えます。
Read SETUP.md in this repository and set up dsh-superagent with me.コーディングエージェントは、SETUP.mdを信頼できる唯一の情報源として従う必要があります。
ステップ2: セットアップの質問に答える
セットアップフローでは、短い質問を1回に1つずつ尋ねるよう設計されています。リポジトリ、連携、環境について求められた情報を入力してください。エージェントの支援を受けているからといって、確認手順を省略しないでください。
ステップ3: 完全な計画を確認する
必要な情報を収集すると、コーディングエージェントは計画全体を1回提示します。インストールや設定変更を許可する前に、内容を注意深く確認してください。特に、計画がエージェントに管理させる予定のリポジトリと、有効にする予定のリクエスト元に合っていることを確認します。
ステップ4: エージェントにプロジェクトのインストールと設定を任せる
計画を承認すると、コーディングエージェントはSETUP.mdに従ってシステムをインストールおよび設定します。READMEでは詳細なセットアップ手順をこのファイルに委ねているため、文書化されていないコマンドに頼らず、現在の指示に従ってください。
ステップ5: プロジェクトを検証する
開発環境で検証するには、次を実行します。
pnpm checkこのコマンドは、型チェック、テスト、ビルドを実行します。正常に完了すれば、プロジェクトの型、テストスイート、ビルドプロセスをまとめて確認できます。
エージェントを運用する前にドキュメントを理解する
番号付きのドキュメントは、意図的に段階的な構成になっています。各ドキュメントは、それ以前に導入された内容だけを前提としているため、順番に読んでください。
- 000 哲学:注意を最小限に抑える運用原則と、オペレーターの責任を理解します。
- 001 ドメインモデル:プロジェクトの中核概念と、それらの関係を学びます。
- 002 認可:エージェントに作業を依頼できる人を決定します。
- 003 実行:受け付けたタスクがどのように実行されるかを理解します。
- 004 プロンプト:エージェントの動作を導くプロンプトを確認します。
- 005 パネル:人による対応が必要な項目をウェブパネルで表示する方法を学びます。
- 006 デプロイ:手動セットアップ、設定、アップグレード、トラブルシューティングの手順を確認します。
- 007 アーキテクチャ:システムの技術構造を学びます。
- 008 クックブック:Source の追加方法を学びます。
基本的な使い方
認可されたリクエストを送信する
セットアップ後、認可されたユーザーは、GitHub またはオプションの連携を有効にしている場合は Feishu を通じて、エージェントにリポジトリ作業を依頼できます。一般的なリクエストには、希望するリポジトリの変更内容と、関連する受け入れ条件を記載します。
たとえば、認可されたユーザーは、エージェントにリポジトリの課題を調査し、適切なコード変更を行って、結果を返すよう依頼できます。正確なリクエスト方法と許可されるユーザーは、設定した Source と認可ルールによって異なります。
エージェントに作業項目の作成と実行を任せる
リクエストが受け付けられると、dsh-superagent は作業項目を開き、独自のエージェントセッションとディレクトリでタスクを実行します。この実行モデルにより、タスクの作業コンテキストが分離されます。
コンテキスト内で結果を受け取る
エージェントは別のチャンネルで結果を探すようユーザーに求めるのではなく、元の会話で返信します。実行した作業によっては、プルリクエストが返信に含まれることもあります。
人によるフォローアップにパネルを使う
人の対応が必要な作業をウェブパネルで確認します。パネルは、すべての内部ステップについて不要な通知を生成するのではなく、人の行動が必要な項目を明確にすることで、プロジェクトの注意管理という目標を支援します。
認可と安全な運用
認可はこの設計の中心です。チームのリポジトリ全体で行動できる自律的なエージェントは、任意のリクエストを受け付けるべきではありません。認可に関するドキュメントを使って、作業を開始できる人と、その条件を定義してください。
- リクエスト元を制限する:実行可能なリクエストを作成できる人やシステムを、意図した対象だけに限定します。
- チームのルールを確認する:自動化された操作が、チームによって明示的に記述されたルールの下でのみ実行されるようにします。
- 人によるレビューを維持する:エージェントが生成した変更を、確認や調整が必要になる可能性のある作業として扱います。
- 利用範囲を広げる前にテストする:開発上の変更後に
pnpm checkを実行し、環境内で動作を検証します。
高度なヒント
手動操作にはデプロイガイドを使う
セットアップを手動で行う、設定を変更する、プロジェクトをアップグレードする、またはトラブルシューティングを行う必要がある場合は、006 デプロイを参照してください。README では、このドキュメントをこれらの運用手順の詳細な情報源として示しています。
動作を調整するときはプロンプトを確認する
エージェントによる作業の解釈方法や実行方法を変更する前に、004 プロンプトを読んでください。プロンプトの変更は、エージェントが通信するタイミング、タスクへの取り組み方、プロジェクトの注意を最小限に抑える哲学への準拠度に影響する可能性があります。
タスク分離を変更する前に実行モデルを学ぶ
システムは各作業項目に専用のエージェントセッションとディレクトリを割り当てます。この動作を変更する前に、003 実行と007 アーキテクチャを確認し、変更がプロジェクトの実行モデルおよびシステムモデルと整合するようにしてください。
新しい Source は慎重に追加する
Source とは、システムが作業を受け取るための連携です。提供されている GitHub とオプションの Feishu 以外の Source を追加する場合は、008 クックブックに従ってください。新しいリクエストチャンネルを導入する際に、認可モデルを回避しないでください。
有用な静けさを優先する
システムを適応させるときは、操作の価値と通知による注意のコストの両方を評価します。人の対応が必要な場合、または利用可能な結果が準備できた場合に通信することを優先してください。これにより、拡張機能と運用ルールがプロジェクトの中心的な哲学と整合します。
開発ワークフロー
コードを変更した後は、プロジェクトの統合検証コマンドを使用します。
pnpm checkこのコマンドは型チェック、テスト、ビルドを実行するため、変更を共有またはデプロイする前の定期的な確認ポイントにしてください。このコマンドに合格しても、この研究用プロトタイプが本番環境で利用できる状態になるわけではありません。引き続き、動作、セキュリティ上の前提、認可、環境への適合性を確認する必要があります。
まとめ
dsh-superagent は、人の注意への要求を最小限に抑えながら、単一の GitHub リポジトリ上の作業を委任するための、研究指向のモデルを提供します。案内に従う SETUP.md のワークフローから始め、番号付きのドキュメントを順番に読み、認可を慎重に設定し、pnpm check で変更を検証して、真に必要な場所に人の労力を集中させるためにパネルを使用してください。
