Rubber Duck(ラバーダック)は、GitHub Copilot CLIに組み込まれたレビュー用のエージェントです。セッションを動かしているモデルとは別系統のモデルが、計画・実装・テストを読んで問題点だけを返します。2026年4月に実験的機能として登場し、2026年6月2日の更新で一般提供(GA)になりました。その直後から、頼まれなくても自分で呼ぶ自動レビューは既定でオフです。4〜5月の解説にある「/experimental を有効にする」「計画後・実装後・テスト後に自動で動く」という説明は、現行版(v1.0.105・2026年10月27日)には当てはまりません。この記事では、現行の公式ドキュメントとCLIの変更履歴をもとに、使い方、自動レビューの設定、対応モデルの変遷、効果のデータ、使う場面と使わない場面を整理します。
まとめ:Copilot CLIのRubber Duckの要点
- 正体:組み込みエージェント
rubber-duck。別系統のモデルが計画・設計・実装・テストを批評し、指摘を「ブロッキング」「非ブロッキング」「提案」に分けて返す。ファイルの編集や環境を変えるコマンドはできない - 提供状況:2026年6月2日にGA。
/experimentalの有効化は不要。Copilot CLIとGitHub Copilotアプリで使える - 使い方:
/rubber-duck 質問か、「Rubber duck your plan.」のように頼む - 自動レビュー:既定はオフ。CLIの
/subagentsで Proactive invocation をオンにすると、計画後・実装の途中・テスト作成後・失敗が続いたときに自分で呼ぶ - 対応モデル:批評役はセッションのモデルと対照的なものが毎回自動で選ばれる。v1.0.87(2026年9月21日)で全モデルファミリーと低コスト帯のモデルに広がった
- 効果:発表時のSWE-Bench Pro評価で、Claude Sonnet 4.6+Rubber Duck(GPT-5.4)がSonnetとOpus 4.6の差の74.7%を埋めた
- 費用:別モデルで推論を1回追加するため、待ち時間とモデル利用(AI Credits)が増える。小さな修正には向かない
Rubber Duckの仕組み:別系統モデルによる計画・実装の批評
名前は、説明しているうちに自分で誤りに気づく「ラバーダック・デバッグ」から来ています。ただし本物のアヒルと違い、このエージェントは言い返します。公式ドキュメントによると、メインのエージェントが作業中の計画・設計・実装・テストを渡し、Rubber Duckが盲点や設計上の欠陥を探して返し、メインのエージェントがその指摘を踏まえて作業を続けます。
Rubber Duckの指摘分類と読み取り専用の権限
Rubber Duckは、作業の目的と周辺コードとの関係を読んだうえで、バグ、ロジックの誤り、セキュリティ上の脆弱性、設計の欠陥、性能のボトルネックを探します。指摘は「問題・影響・具体的な修正案」の組で、重大度は次の3段階です。
- Blocking issues:直さないと作業が成功しない問題
- Non-blocking issues:成功は妨げないが直すべき問題
- Suggestions:優先度は低いが結果に効く改善
スタイル、書式、命名、コメントの文法、細かいリファクタリングには口を出さないよう設定されており、問題が無ければ無いと明言します。コードベースへのアクセスは読み取り専用の探索ツールだけで、ファイルの編集や環境を変えるコマンドの実行はできません。指摘を採用するかどうかはメインのエージェントが決め、セッションの出力には全文でなく「計画のXの盲点を指摘されたので計画を直した」という要約が出ます。
セッションモデルに応じた批評役の自動選択
設計上の要は、セッションを動かすモデルと別系統のモデルを批評役にする点です。同じモデルに自己レビューさせても、同じ学習データ由来の盲点は見つけにくいためです。CLIコマンドリファレンスの組み込みエージェント一覧でも、rubber-duck の既定モデルだけが固定のモデル名でなく「complementary model(対照的なモデル)」になっています。たとえば公式ドキュメントでは、ClaudeのセッションにGPT系の批評役を組み合わせる場合があると説明しています。
批評役は呼び出しのたびに選び直されるため、途中で /model を切り替えても次の呼び出しから新しいモデルに合った批評役になります。適切な批評役が使えないときはRubber Duckは呼ばれません。v1.0.85(2026年9月16日)からは、モデル一覧の更新で互換の批評役が無くなると /rubber-duck コマンド自体が表示されなくなり、v1.0.92(10月5日)からはRubber Duckを使えないセッションで /subagents が「設定済み」と表示しなくなりました。コマンドが見当たらないときは、まずセッションのモデルを確かめてください。
Rubber Duckの使い方:手動での批評依頼
既定の状態では、Rubber Duckは頼んだときにだけ動きます。最初の copilot はシェルで実行します。起動後に計画を作らせ、続く3つの入力例のいずれかをCopilot CLIの対話欄に入力してください。#で始まる行は説明用です。
copilot
# 計画を作らせたあとで
Rubber duck your plan.
# 一連の変更の途中で
Get a critique of the changes you've made so far.
# スラッシュコマンドで観点を指定する
/rubber-duck What edge cases are missing?
観点を指定しない批評は網羅的になる分だけ長くなるので、「境界値の抜け」「並行実行時の競合」「既存の呼び出し元への影響」のように、自分が見落としを恐れている点を1つ書くほうが指摘が絞れます。Rubber Duckは別途インストールするツールではなく、Copilot CLI本体に入っています。v1.0.69(2026年7月7日)からは、認証前のヘルプにも /rubber-duck が載るようになりました。
自動レビュー(Proactive invocation)を有効にする設定
頼まなくてもCopilotが自分でRubber Duckに相談する「自動呼び出し」は、v1.0.60(2026年6月5日)で設定が追加されたときから既定でオフです。オンにするかどうかはCLIで切り替えます。
/subagentsでProactive invocationをオンにする手順
- 対話モードのCopilot CLIで
/subagents(別名/agents)を入力する - 矢印キーで
rubber-duckを選んで Enter - Proactive invocation を選んで Enter を押し、オンとオフを切り替える
- Esc で画面を閉じる
オンにすると、Copilotは次の場面でRubber Duckに相談するよう指示されます。小さく見通しのよい変更では通常は呼ばれません。
- 規模のある変更を計画したあと、実装に入る前(手戻りが最も安い時点)
- 複雑な実装の途中
- テストを書いたあと(要求を満たしているか、網羅できているかの確認)
- 失敗や想定外の結果が続いたとき(同じやり方の再試行を止める)
settings.jsonで管理する項目
Proactive invocationの切り替えは、ユーザー設定ファイル(通常は ~/.copilot/settings.json)に保存され、次のセッション以降も引き継がれます。設定ディレクトリのリファレンスに載っている関連項目は次のとおりです。
{
"subagents": {
"agents": {
"rubber-duck": {
"autoInvoke": true
}
}
}
}
| キー | 既定値 | 用途 |
|---|---|---|
subagents.agents["rubber-duck"].autoInvoke |
false |
自動呼び出しのオン・オフ |
subagents.agents["rubber-duck"].model |
未設定 | 批評役のモデルを指定 |
subagents.agents["rubber-duck"].modelPolicy |
未設定 | preferred か required |
subagents.disabledSubagents |
[] |
使わないエージェント名の一覧 |
批評役を固定のモデルにすると、セッションのモデルと同じ系統になったときに「別系統に見てもらう」という前提が崩れます。モデルを指定するなら、普段使うセッションのモデルと必ず別系統にしてください。Rubber Duckそのものを止めたい場合は、/subagents の各エージェントのオン・オフで切り替えると disabledSubagents に入ります。なお、5月29日のv1.0.56で追加された builtInAgents.rubberDuck、6月5日のv1.0.60で追加された builtInAgents.rubberDuckAutoInvoke は、現行のリファレンスには載っていません。古い記事の設定例をそのまま写さず、/subagents から設定してください。
Rubber Duckの変更履歴:実験版からGA後まで
Rubber Duckは半年で、実験的機能・Claude限定・自動起動から、GA・全モデルファミリー・手動が基本へと形が変わりました。Copilot CLIの変更履歴とGitHub Changelogから主な変更を拾うと次のとおりです。
| 日付 | 版 | 変更 |
|---|---|---|
| 2026-04-04 | v1.0.18 | Critic agentを追加(実験的・Claudeのみ) |
| 2026-04-06 | - | Rubber Duckとして発表(批評役GPT-5.4) |
| 2026-05-06 | v1.0.42 | GPTセッション向けにClaudeの批評役 |
| 2026-05-07 | - | Claudeセッションの批評役をGPT-5.5へ |
| 2026-05-18 | v1.0.49 | /rubber-duck コマンドを追加 |
| 2026-06-02 | v1.0.58 | GA・既定で有効に |
| 2026-06-05 | v1.0.60 | 自動呼び出しの設定を追加(既定オフ) |
| 2026-06-23 | v1.0.64 | /subagents で設定可能に |
| 2026-09-21 | v1.0.87 | 全モデルファミリー・低コスト帯に拡大 |
発表時のGitHub公式ブログは「計画後・複雑な実装後・テスト作成後に、Copilotが必要と判断したら自動で批評が出る」と説明していました。5月7日のChangelogも、GPTセッションで使うには /experimental の有効化が要ると書いています。どちらも当時の仕様としては正しいものの、現在は自動呼び出しが既定でオフです。手動で頼む分にはこの設定は不要で、/experimental も要りません。Rubber Duckを有効にしたのに自動で呼ばれない場合は、まずProactive invocationの設定を確認してください。
SWE-Bench Proでの効果と検出されたバグ
GitHubは発表時、大規模なオープンソースの実課題を集めたSWE-Bench ProでRubber Duckを評価しました。Claude Sonnet 4.6にGPT-5.4のRubber Duckを組み合わせると、解決率がClaude Opus 4.6単体に近づき、SonnetとOpusの差の74.7%を埋めました。効果が大きいのは3ファイル以上にまたがり、通常70ステップ以上かかる難しい問題で、Sonnet単体より3.8%高く、3回の試行で特定した最難関の問題では4.8%高い結果でした。
同じブログが挙げた検出例は、どれもエラーを出さずに壊れる種類のバグです。
- OpenLibraryの非同期スケジューラ:起動直後に終了してジョブを1件も実行しない設計で、仮に直してもスケジュール対象のタスクの1つが無限ループだった
- OpenLibraryのSolr検索:ループのたびに同じ辞書のキーを上書きし、4つのファセットのうち3つが全検索から落ちていた
- NodeBBのメール確認:新しいコードが書き込みをやめたRedisのキーを3つのファイルが読み続け、確認画面と後始末の処理がデプロイ後に黙って壊れる状態だった
この数値は、Claude Sonnet 4.6・Opus 4.6・GPT-5.4という発表当時の組み合わせで測ったものです。現在の既定モデルの組み合わせで同じ差が出るかは公表されていません。読み取れるのは「単一ファイルの小さな修正より、ファイルをまたぐ長い作業で効く」という傾向までです。
Rubber Duckを使う場面・使わない場面
Rubber Duckは追加の推論を別モデルで1回走らせるため、待ち時間とモデル利用が増えます。Copilot CLI自体は全てのCopilotプランで使え、利用量はAI Credits(旧課金ではプレミアムリクエスト)で数えられます。消費量は処理したトークン数と使ったモデルで決まり、/usage でセッションの使用量を確認できます。料金体系はGitHub Copilotの料金で整理しています。利用判断では、変更範囲に加え、不具合が起きた場合の影響と、既存テストで確認できる範囲を見ます。
Rubber Duckを使う場面:複数ファイルの変更と失敗の反復
- 3ファイル以上にまたがる変更や、データの流れを変える変更の計画段階
- 初めて触るコードベースで、既存の呼び出し元への影響が読めないとき
- Autopilotで長時間任せる前(計画の段階で一度批評を挟む)
- 同じテストが何度も落ち、エージェントが同じ直し方を繰り返しているとき
Rubber Duckの不向きな作業と指摘を過信するリスク
変更範囲が小さく、影響と確認方法が明確な修正では、Rubber Duckへの定例的なレビュー依頼は省き、通常のテストと差分確認を優先してください。自動呼び出しをオンにしても、こうした作業では通常呼ばれません。失敗しやすいのは、指摘をそのまま正解とみなす運用です。Rubber Duckも別のモデルの推論にすぎず、プロジェクト固有の規約や前提を取り違えた指摘が混じる可能性があります。採否はメインのエージェントが決めるので、最終的な差分は人がレビューしてからマージしてください。
Copilot Fusion・code-review・Copilotコードレビューとの違い
「別のモデルに見てもらう」仕組みは、Copilotの中に複数あります。
| 仕組み | いつ動くか | 見る対象 |
|---|---|---|
| Rubber Duck | 頼んだとき・自動呼び出し時 | 計画・実装・テスト |
| Copilot FusionのCritique | Fusionが批評方式を選択したとき | 1ターンの下書き |
| code-reviewエージェント | CLIで呼んだとき | 差分 |
| Copilotコードレビュー | PRでレビュー依頼したとき | プルリクエスト |
Copilot Fusion(旧HydraFusion)のCritiqueは、1つのモデルの下書きを複数のモデルが並列に批評し、集約した指摘をもとに元のモデルが修正する仕組みです。Fusionがプロンプトごとに実行方式を選ぶため、毎回Critiqueが動くわけではありません。CLIの組み込みエージェントには差分を見る code-review(既定モデルclaude-sonnet-4.6)もあり、こちらは書き上がった差分のバグを探す役、Rubber Duckは実装前の計画から関わる役です。チームで共有するPRのレビューはGitHub Copilotのコードレビューに任せ、Rubber Duckは手元で作業している最中の批評に使う、という分担が無駄がありません。セッション側のモデル選びはGitHub CopilotでClaudeを使う方法を参照してください。
Rubber Duckのようなクロスモデルレビューを、社内のコーディングエージェントの運用やレビュー体制にどう組み込むかは、生成AI導入支援でも相談を受けています。
よくある質問
Rubber Duckを使うには/experimentalの有効化が必要ですか?
不要です。2026年6月2日にGAとなり、v1.0.58から既定で有効です。/experimental が必要だったのは4〜5月の実験期間です。
Rubber Duckが自動で動かないのはなぜですか?
自動呼び出しは既定でオフだからです。/subagents で rubber-duck を選び、Proactive invocationをオンにしてください。オンにしても、小さく見通しのよい変更では呼ばれません。
Rubber Duckのレビュー役にはどのモデルが使われますか?
セッションのモデルと対照的な別系統のモデルが、呼び出しのたびに自動で選ばれます。発表時はClaudeセッションにGPT-5.4、5月7日からはGPT-5.5、GPTセッションにはClaudeが付き、v1.0.87からは全モデルファミリーが対象です。
/rubber-duckコマンドが表示されないのはなぜですか?
セッションのモデルに対応する批評役のモデルが使えないと、v1.0.85以降はコマンドが表示されません。/model でモデルを確認し、CLIを最新版に更新してください。
「rubberduck」という別ツールのインストールが必要ですか?
不要です。Rubber DuckはCopilot CLIの組み込みエージェントで、CLIを入れれば使えます。名前の似た別のツールとは関係ありません。
関連記事
- GitHub Copilot CLIのAutopilotとは|使い方・止まる条件・安全設定と料金【2026年10月】
- HydraFusionとは:Copilot Fusion正式版のStandard・High・Maxの違いとVS Code・CLIの手順・課金【2026年10月】
- GitHub Copilotのコードレビュー|使い方・自動レビュー設定・Max・日本語化と料金
- GitHub CopilotでClaudeを使う方法|Sonnet 5.5・Opus 5.5の選び方と料金・設定【2026年10月】
- シングルエージェントとは?マルチエージェントとの違いと使い分けの判断基準【2026年10月】