🎉

AI x ラバーダッキング

に公開

「ラバーダッキングしてますか?」 cv:な○しま

この記事は2025 ZAICO アドベントカレンダーの3日目の記事です。

ラバーダッキングって?

達人プログラマーって本で紹介されたデバッグ手法で、
ゴム製のアヒル(ラバーダック)にコードの説明することで、なんか勝手に思考が整理されちゃうすごいやつ。
語源となったラバーダック(無機物)以外にも、近年は概念として拡張されて第三者相手に話しかけるのもラバーダッキングらしい。
(わたしが最初教えてもらったのも第三者相手の手法)

よくあるのが バグとか実装で行き詰まって、
上司や同僚などに状況説明してる時とかに解決法見つかるアレのこと。

(開発とか以外でも、日常の悩みとかアイデアだしとかでもなんにでも使えるよ)

無機物相手、第三者相手とでそれぞれ違ったメリットがあり、

  • 無機物相手の利点

    • 邪魔をされない。
    • 自分のペースで進められる。
    • プライベートなことでも恥ずかしゅうない
  • 第三者相手の利点

    • フィードバックや質問がもらえることで、より深掘りができる

ってな感じ。

ラバーダッキングとAIって相性いいよね!

AIは無機物でありながらフィードバックも返してくれるので、
無機物x第三者両方のメリットが!

すごい!

ChatGPTなどのAIが出てきて、
多くの人が知らず知らずのうちにAIとラバーダッキングっぽいことをやっているのでは?
と思います。

といいつつ、AIとのラバーダッキングには大きなデメリットが・・・

AIはフィードバックしすぎちゃう

AIは賢すぎてイチ質問すると10とか20とか回答を返してきちゃう。

ラバーダッキングの目的は思考の整理なのに、回答を押し付けられることで、なんか思考が整理できた感になっちゃう。実際バグとか実装も解決しちゃうからそれ以上の深掘りもやめちゃう。

参考書の問題が分からず、答えみてわかった気になるやつ。
結局テストで赤点とるやつ。ぼくみたいなやつ。

AIにラバーダッキングモードを作った

ってなことで、ラバーダッキングモードを作りました。
作ったというか手厚い回答くれすぎるAIを、大幅にそっけなくする指示を考えました。

下記を設定したうえで、

/duck

って入力すると、ラバーダッキングモードに入ります。

  • ChatGPTなら以下を「パーソナライズ設定」に貼り付けるか、チャットの冒頭で記載。
  • ClaudeCodeなら以下を「Claudeが応答時に考慮すべき個人設定は何ですか?」に貼り付けるか、チャット冒頭で記載。
  • 他はわかんない
あなたは複数の “コーチ/レビューア/アシスタント” モードを持つアシスタントです。
ユーザーはスラッシュコマンドでモードを切り替えます。

[モード一覧と動作]
/duck
    - ラバーダッキング・コーチモードをON
    - Q/A形式で思考整理を促す
    - Aは短い質問のみ(最大2文)
    - 毎ターン:「Q: <要約>」「A: <質問>」「コマンド案内」を強制

/log [タイトル]
    - 現在の議論をMarkdownで整形
    - ```markdownコードブロック```で出力する
    - ChatGPTでは保存はせず出力だけ

/help
    - 定義済みのモード一覧を表示

[モード動作の共通ルール]
- モードは会話中状態を保持する
- スラッシュコマンドが来たら瞬時に切替
- 適用モードが未選択のときは通常会話
- /duck モード中のみ Q/A形式&質問主体を強制
- /log はどのモードからでも実行可能

[出力フォーマット(強制)]
- /duckモード:必ず
    1) Q: <要約>
    2) A: <ラバーダック向け質問>
    3) コマンド案内(/duck /log /help)
- その他モード:モード固有フォーマットに従う

使った感想

なんかいい感じに思考が整理されてる〜〜〜って感想。
ラバーダッキングはやってみないとわからないので、ラバーダッキング相手に困った時とかにぜひ。
(ちなみに弊社のメンバーはみんな優しいので、AIとラバーダッキングしなくても普通に相手してくれるよ)

次回の担当はhiroさんです。ぜひお楽しみに。

ZAICO Developers Blog

Discussion