Introduction
ゴムダックは建設的な評論家として機能する GitHub Copilot CLI(コマンドラインインターフェース) の組み込みエージェントです。 タスクの作業中、セッションのメイン CLI エージェントは、現在の計画、設計、実装、またはテストをラバー ダック エージェントに渡してレビューできます。 ゴムダックエージェントは、盲点、設計の欠陥、実質的な問題を探し、具体的かつ実用的なフィードバックを提供します。 Copilot 続ける前に、その批判を考慮に入れておきます。
ラバーダックエージェントは、ファイルの変更を行うのではなく、提案された変更を確認するために設計されています。 セッションのメイン エージェントは、フィードバックの処理を決定します。
メモ
ラバーダックエージェントは現在、メインエージェントがクロードまたはGPT大規模言語モデルを使用している場合にのみ使用できます。
なぜ"ゴムダック"?
この名前は、コードや提案した解決策を無生物、伝統的にはゴム製のアヒルに説明する、ラバーダッキングと呼ばれるソフトウェアエンジニアリングの長年の技術に由来します。 考え方は、自分の考えを明確にすることで、間違い、誤解、または論理的な欠陥を発見することが多いということです。
ゴムダックエージェントは、Copilotに同じような考え方を適用します。 自明でない変化に進む前に、 Copilot は停止し、現在の思考を明確にし、独立したレビュー担当者によって調査を受けることができます。 実際のゴムアヒルとは異なり、このゴムアヒルは応答します。行動に移すことができる構造化された批判を返します。
別のモデルからのセカンド オピニオン
ラバーダックエージェントの主な設計機能は、セッションを推進する AI モデルとは別の AI モデルで意図的に実行されるということです。 GitHub Copilot CLI(コマンドラインインターフェース) は、現在のセッション モデルと対照的な評論家モデルを選択します。 たとえば、セッションにクロード モデルを使用することを選択した場合、ラバー ダック エージェントは、評論家として GPT モデルを使用する可能性があります。 Copilot CLI (コパイロット CLI) 有用な批判を提供するために適切なモデルが利用可能な場合にのみゴムダックエージェントを使用します。
別のモデルを使用する利点は、評論家が作業を生み出したモデルと同じ盲点、偏り、または故障モードを共有する可能性が低いということです。 同じ問題に対して 2 つの独立した視点を効果的に得ることができます。
適切な評論家モデルは、現在のセッション モデルに基づいて、ラバー ダック エージェントが呼び出されるたびに自動的に選択されます。 セッション モデルをセッションの途中で切り替える場合 (たとえば、 /model コマンドを使用)、次にラバー ダック エージェントを呼び出すと、新しいセッション モデルに対する適切な評論家が選択されます。
ゴムダックエージェントが行うことは何か
ラバーダックエージェントに相談すると:
-
**作業をコンテキストで読み取ります。** コード、設計、または提案が何を実行しようとしているか、システムの残りの部分とどのように統合されているか、およびどのような前提条件が存在するかを理解します。 -
**実際の問題を識別します。** タスクの成功にとって本当に重要なバグ、ロジック エラー、セキュリティの脆弱性、設計上の欠陥、アンチパターン、パフォーマンスのボトルネック、その他の問題を探します。 -
**特定の修正プログラムを推奨します。** 検出された問題ごとに、問題、その影響、および具体的な提案された変更が示されます。 -
**そのフィードバックを** 重大度別に分類します。- ブロックの問題 - 作業を成功させるには、修正する必要があります。
- 非ブロッキングの問題は、品質を向上させるために修正する必要がありますが、成功を妨げません。
- 提案 — 優先順位の低い改善であり、結果に本当の影響を与えます。
-
**重要な結果のみを報告します。** 問題が見つからない場合は、明示的に表示されます。 ラバー ダック エージェントは、スタイル、書式設定、名前付け規則、コメント内の文法、マイナー リファクタリング、または実際の問題を防ぐことのないベスト プラクティスにコメントしないように構成されています。
ラバーダックエージェントは、標準の探索ツールを使用してコードベースに読み取り専用でアクセスできます。 ファイルを編集したり、環境を変更するコマンドを実行したりすることはできません。
Copilotがラバーダックに相談すると
ラバーダック・エージェントが有効になっている場合、 Copilot は、立ち往生したときだけでなく、重要な瞬間にもそれを利用するよう指示されます。 一般的な状況は次のとおりです。
- 単純でない変更を計画した後、実装する前に行います。 これは、設計上の欠陥をキャッチするための最も高いレバレッジの瞬間ですが、コースの修正はまだ安いです。
- 実装の途中で、 複雑な作業の盲点をチェックします。
- テストを記述した後、 テスト カバレッジが包括的であり、動作が実際に元の要求を満たしていることを検証します。
- 事後対応的に、 Copilot が繰り返し失敗または予期しない結果に達した場合は、 同じアプローチを再試行するのではなく、問題の独立した分析を取得します。
小さく、よく理解されている変更に対して Copilot は通常、ゴムダックエージェントをスキップします。
Copilotがゴムダックエージェントに相談すると、タイムライン出力で結果の批判があなたのために要約されます。たとえば、「批判は私の計画の中でXに関する盲点を指摘したので、それを考慮して計画を更新しました」などです。
ゴムダックエージェントを手動で呼び出す
通常、Copilot CLI (コパイロット CLI) はラバーダックエージェントを自動的に使用する。 何も行う必要はありません。 タイムラインの出力は、メイン エージェントがラバーダックの批判を受けているタイミングを示しています。 ただし、CLI でラバー ダック エージェントが使用されない場合があります。 たとえば、変更が批判を保証するのに十分な広範でないと判断される場合があります。
自然言語プロンプトを使用して、 Copilot に第二の意見を得るように明示的に求めることができます。 たとえば、 Copilot に作業計画の作成を依頼した後、次のようなプロンプトを入力できます。
Rubber duck your plan.
または、一連の変更の途中で、次のメッセージを表示できます。
Get a critique of the changes you've made so far.
ゴムダック剤を使用する利点
-
問題を早期にキャッチします。 失敗するほとんどの単純なタスクには、計画段階で批判がキャッチした可能性のある問題があります。 コードを記述する前にフィードバックを取得することは、プロセスの後半で問題を修正する場合に適しています。
メモ
ラバー ダック エージェントを参照すると、別のモデルに対して追加の推論パスが実行されるため、待機時間が増え、モデルの使用が追加されます。 逆に、事前にもう少し時間とリソースを使うと、問題を早期にキャッチし、タスクを完了するための失敗した試行の数を減らすことで、全体的な時間とモデルの使用量を節約できます。
-
単一モデルの死角を減らします。 エージェントは別のファミリのモデルを使用するため、元の作品を生成したのと同じ推論を再実行するのではなく、まったく異なる視点をもたらします。
-
複雑な変更の品質が向上します。 アーキテクチャ上の決定、複数ファイルの変更、馴染みのないコードベースはすべて、アプローチにコミットする前に、第2の意見を求めることで恩恵が得られます。
-
単純なタスクを行う際には、邪魔にならないようにします。 Copilot 作業が簡単でない場合にのみゴムダックエージェントに相談するので、簡単な編集や明らかな修正を遅くしません。