Skip to main content
Skip to content

ゴムダックエージェントで別の視点を得る

ゴムダックエージェントを使用して、GitHub Copilot CLI または GitHub Copilot app で計画、コード、テストに対する第三者的なレビューを得ます。

Introduction

ゴムダックは、 GitHub Copilot CLI と GitHub Copilot appで利用可能な組み込みのエージェントです。 建設的な批評者として機能します。 タスクの作業中、セッションのメイン エージェントは、現在の計画、設計、実装、またはテストをラバー ダック エージェントに渡してレビューできます。 ゴムダックエージェントは、盲点、設計の欠陥、実質的な問題を探し、具体的かつ実用的なフィードバックを提供します。 Copilot 続ける前に、その批判を考慮に入れておきます。

ラバーダックエージェントは、ファイルの変更を行うのではなく、提案された変更を確認するために設計されています。 セッションのメイン エージェントは、フィードバックの処理を決定します。

なぜ"ゴムダック"?

この名前は、コードや提案した解決策を無生物、伝統的にはゴム製のアヒルに説明する、ラバーダッキングと呼ばれるソフトウェアエンジニアリングの長年の技術に由来します。 考え方は、自分の考えを明確にすることで、間違い、誤解、または論理的な欠陥を発見することが多いということです。

ゴムダックエージェントは、Copilotに同じような考え方を適用します。 自明でない変化に進む前に、 Copilot は停止し、現在の思考を明確にし、独立したレビュー担当者によって調査を受けることができます。 実際のゴムアヒルとは異なり、このゴムアヒルは応答します。行動に移すことができる構造化された批判を返します。

別のモデルからのセカンド オピニオン

ラバーダックエージェントの主な設計機能は、セッションを推進する AI モデルとは別の AI モデルで意図的に実行されるということです。 Copilot は、現在のセッション モデルと対照的な評論家モデルを選択します。 たとえば、セッションにクロード モデルを使用することを選択した場合、ラバー ダック エージェントは、評論家として GPT モデルを使用する可能性があります。 Copilot 有用な批判を提供するために適切なモデルが利用可能な場合にのみゴムダックエージェントを使用します。

別のモデルを使用する利点は、評論家が作業を生み出したモデルと同じ盲点、偏り、または故障モードを共有する可能性が低いということです。 同じ問題に対して 2 つの独立した視点を効果的に得ることができます。

適切な評論家モデルは、現在のセッション モデルに基づいて、ラバー ダック エージェントが呼び出されるたびに自動的に選択されます。 セッション中にモデルを切り替える場合、次にラバーダックエージェントを呼び出すと、新しいセッションモデルに対する適切なクリティックが選ばれます。

ゴムダックエージェントが行うことは何か

ラバーダックエージェントに相談すると:

  1. 作業をコンテキストで読み取ります。 コード、設計、または提案が何を実行しようとしているか、システムの残りの部分とどのように統合されているか、およびどのような前提条件が存在するかを理解します。
  2. 実際の問題を識別します。 タスクの成功にとって本当に重要なバグ、ロジック エラー、セキュリティの脆弱性、設計上の欠陥、アンチパターン、パフォーマンスのボトルネック、その他の問題を探します。
  3. 特定の修正プログラムを推奨します。 検出された問題ごとに、問題、その影響、および具体的な提案された変更が示されます。
  4. そのフィードバックを 重大度別に分類します。
    • ブロックの問題 - 作業を成功させるには、修正する必要があります。
    • 非ブロッキングの問題は、品質を向上させるために修正する必要がありますが、成功を妨げません。
    • 提案 — 優先順位の低い改善であり、結果に本当の影響を与えます。
  5. 重要な結果のみを報告します。 問題が見つからない場合は、明示的に表示されます。 ラバー ダック エージェントは、スタイル、書式設定、名前付け規則、コメント内の文法、マイナー リファクタリング、または実際の問題を防ぐことのないベスト プラクティスにコメントしないように構成されています。

ラバーダックエージェントは、標準の探索ツールを使用してコードベースに読み取り専用でアクセスできます。 ファイルを編集したり、環境を変更するコマンドを実行したりすることはできません。

ゴムダックエージェントを手動で呼び出す

既定では、ラバー ダック エージェントは自動的には呼び出されません。 必要なときは毎回、Copilot に講評を明示的に求める必要があります。 たとえば、 Copilot に作業計画の作成を依頼した後、次のようなプロンプトを入力できます。

Rubber duck your plan.

または、一連の変更の途中で、次のメッセージを表示できます。

Get a critique of the changes you've made so far.

スラッシュ コマンドを使用して、ラバー ダック エージェントを呼び出すこともできます。

/rubber-duck What edge cases are missing?

ゴムダックエージェントの自動呼び出し

Copilot CLIでは、Copilotが求められなくてもゴムダック エージェントを事前に参照する場合は、/subagents ピッカーからエージェントの自動呼び出しを有効にすることができます。

  1. 対話型 Copilot CLI セッションで、「 /subagents」と入力します。
  2. キーボードの方向キーを使用してラバーダックエージェントを選択し、 Enter キーを押します。
  3. プロアクティブ呼び出しを選択し、Enter キーを押して設定をオフとオンの間で切り替えます。
  4. エスケープ キーを使用して、 /subagents ピッカーを終了します。

この方法でラバーダックエージェントの自動呼び出しを有効にすると、 Copilot 設定ファイル(通常は ~/.copilot/settings.json)が更新され、将来のセッションで設定の選択が維持されます。

{
  "subagents": {
    "agents": {
      "rubber-duck": {
        "autoInvoke": true
      }
    }
  }
}

自動呼び出しが有効になっている場合、Copilot は、スタックしたときにのみではなく、効果の高い場面でラバーダックエージェントに相談するように指示されます。 一般的な状況は次のとおりです。

  • 単純でない変更を計画した後、実装する前に行います。 これは、設計上の欠陥をキャッチするための最も高いレバレッジの瞬間ですが、コースの修正はまだ安いです。
  • 実装の途中で、 複雑な作業の盲点をチェックします。
  • テストを記述した後、 テスト カバレッジが包括的であり、動作が実際に元の要求を満たしていることを検証します。
  • 事後対応的に、 Copilot が繰り返し失敗または予期しない結果に達した場合は、 同じアプローチを再試行するのではなく、問題の独立した分析を取得します。

小さく、よく理解されている変更に対して Copilot は通常、ゴムダックエージェントをスキップします。

Copilotがゴムダックエージェントに相談すると、結果の講評はそのまま繰り返すのではなく、セッション出力で要約されます。たとえば、「Xに関する私の計画の盲点が指摘されたので、それに対処するために計画を更新しました」のようになります。

ゴムダック剤を使用する利点

  • 問題を早期にキャッチします。 失敗するほとんどの単純なタスクには、計画段階で批判がキャッチした可能性のある問題があります。 コードを記述する前にフィードバックを取得することは、プロセスの後半で問題を修正する場合に適しています。

    メモ

    ラバー ダック エージェントを参照すると、別のモデルに対して追加の推論パスが実行されるため、待機時間が増え、モデルの使用が追加されます。 逆に、事前にもう少し時間とリソースを使うと、問題を早期にキャッチし、タスクを完了するための失敗した試行の数を減らすことで、全体的な時間とモデルの使用量を節約できます。

  • 単一モデルの死角を減らします。 エージェントは別のファミリのモデルを使用するため、元の作品を生成したのと同じ推論を再実行するのではなく、まったく異なる視点をもたらします。

  • 複雑な変更の品質が向上します。 アーキテクチャ上の決定、複数ファイルの変更、馴染みのないコードベースはすべて、アプローチにコミットする前に、第2の意見を求めることで恩恵が得られます。

  • 単純なタスクを行う際には、邪魔にならないようにします。 Copilot 作業が簡単でない場合にのみゴムダックエージェントに相談するので、簡単な編集や明らかな修正を遅くしません。

詳細については、次を参照してください。