プロンプトの設計に他の領域の考え方を転用してみた
この記事では、既存のプロンプト設計手法ではなく、他の分野の手法や考え方をプロンプトの設計に応用してみました。
こんにちは。組織開発室に所属し、組織開発を担当しているてぃーびーです。
プロンプトには様々な設計手法が存在します。
たとえば以下のような手法です。
- Zero-Shotプロンプティング
- Few-Shotプロンプティング
- Chain-of-Thoughtプロンプティング
この記事では、こういった既存の手法ではなく、他の分野の手法や考え方をプロンプトの設計に応用してみました。
リファクタリングプロンプト
リファクタリングとは、コードの外部の動作を変えずに、内部構造を再構築し、品質、可読性、保守性を向上させることです。この考え方をプロンプトに応用してみます。
冗長なテキストを意味を保ったままできるだけシンプルにしてもらいます。
入力
以下のテキストを、中心となるメッセージを維持したまま、明瞭さと簡潔さのためにリファクタリングしてください。
論理的な流れと文の構造に関して、どのような変更を加えたか説明してください。
## テキスト
リファクタリング、それはコードを改善していくための重要なプロセスであり、それによってシステムの健全性を保つことができます。
これは、コードを書き直すということとは全く違う概念であり、既存のコードの機能性は維持しつつ、その内部構造を改良していく、地道な作業の積み重ねです。
リファクタリングは、主にいくつかの理由から行われますが、その最も大きな動機の一つは、コードが時間と共に劣化してしまうという事実です。
私たちは常に新しい機能を実装し続け、その結果としてコードベースはどんどん大きくなっていきます。
しかし、その過程で、当初の設計思想から逸脱したり、同じような機能を持つコードが複数箇所に存在したり、
変数の名前が適切でなくなったりすることがあります。そのような状況は、
将来的に新しい開発者がプロジェクトに参加した際に、コードを理解するのを非常に困難にします。
さらに言えば、バグを見つけるのも修正するのも、非常に手間がかかるようになってしまうでしょう。
だからこそ、定期的にリファクタリングの時間を設けることが推奨されます。
これは、必ずしも大規模なプロジェクトである必要はありません。
日々の開発業務の中で、少しずつコードをきれいに保つように心がけることが大切です。
例えば、変数名をより分かりやすいものに変更したり、長すぎる関数をいくつかの小さな関数に分割したり、
重複したコードを一つの関数にまとめたりする作業がこれにあたります。
このような小さな改善を積み重ねることで、最終的にメンテナンスしやすい、より読みやすいコードベースが構築されるのです。
しかし、リファクタリングを行う際には、テストが非常に重要になります。
なぜなら、機能を変えずに内部構造だけをいじるというのは、一歩間違えると意図しないバグを生み出す可能性があるからです。
既存の機能を壊していないかを確認するために、包括的なテストスイートが不可欠です。
リファクタリングは単にコードをきれいにすること以上の意味を持ち、
チーム全体の生産性を向上させるための、不可欠な習慣なのです。
出力
承知いたしました。ご提示いただいたテキストを、明瞭さと簡潔さを重視してリファクタリングし、変更点を解説します。
---
### リファクタリング後のテキスト
**リファクタリング**とは、コードの外部の振る舞いを変えずに、内部構造を改善するプロセスです。
コードを根本から書き直すのではなく、少しずつ改良を積み重ねていきます。
コードは新機能の追加に伴い、時間と共に劣化し、読みづらく、メンテナンスしにくくなりがちです。
重複したコードが増えたり、変数名が不明瞭になったりすると、新しい開発者が理解するのに時間がかかり、
バグの発見や修正も困難になります。
そのため、定期的なリファクタリングが重要です。大規模な作業でなくても、日々の開発の中で変数名を分かりやすくしたり、
長い関数を分割したり、重複をなくしたりする小さな改善を続けることが大切です。
これにより、メンテナンスしやすく、読みやすいコードベースを構築できます。
ただし、リファクタリングでは**テスト**が不可欠です。内部構造の変更は意図しないバグを生む可能性があるため、
既存の機能が壊れていないかを包括的なテストで確認する必要があります。
リファクタリングは単なる清掃作業ではなく、チーム全体の生産性を向上させるための重要な習慣です。
---
### 論理的な流れと文の構造に関して行った変更点
#### 1. 全体構成の再構築
元の文章は論理的なつながりがやや不明瞭でした。リファクタリング後は、**「リファクタリングの定義」** → **「なぜリファクタリングが必要か(問題点)」** → **「どう行うべきか(解決策)」** → **「注意点(テストの重要性)」**という明確な流れに再構成しました。
#### 2. 冗長な表現の削除と簡潔化
* 「...重要なプロセスであり、それによってシステムの健全性を保つことができます。」→「...プロセスです。」と簡潔にまとめ、重複する情報を削除しました。
* 「...全く違う概念であり...地道な作業の積み重ねです。」といった冗長な説明を、「コードを根本から書き直すのではなく、少しずつ改良を積み重ねていきます。」という平易な表現に置き換えました。
* 「将来的に新しい開発者がプロジェクトに参加した際に、コードを理解するのを非常に困難にします。さらに言えば、バグを見つけるのも修正するのも、非常に手間がかかるようになってしまうでしょう。」→「新しい開発者が理解するのに時間がかかり、バグの発見や修正も困難になります。」と要点を絞り込みました。
#### 3. 句読点の整理と主語・述語の明確化
元の文章では読点が多く、一文が長くなりがちでした。文を細かく区切り、主語と述語を明確にすることで、各文の意味をより分かりやすくしました。
#### 4. 段落の再構成
元の4つの段落を、内容に応じてより論理的な塊にまとめ直しました。例えば、2番目の段落は複数の文がまとまりなく並んでいましたが、原因と結果の関係を明確に示しながら一つの流れにまとめました。
このリファクタリングにより、元の文章の中心的なメッセージを保ちつつ、読み手にとってより理解しやすく、スムーズに読める文章になったかと思います。
事前学習プロンプト
仕事で関わる分野について事前に学習してから挑むことでより多くの知識を持った状態で取り組むことができます。結果として、より良い結果に繋がる可能性が高まります。
この流れをプロンプトで再現してみます。
事前学習なしの例
入力1
まずは事前学習なしで実施
以下のフィードバックの改善点を指摘してください。
# フィードバック
さっきの会議よかったよ。天才。
出力1
もちろんです。いただいたフィードバックについて、より具体的に、建設的な内容にするための改善点をいくつか挙げさせていただきます。
---
### **1. 具体的な内容を付け加える**
「よかった」という評価だけでなく、**「何が」「どう」よかったのか**を具体的に伝えることで、相手は自分のどの行動や発言が評価されたのかを理解し、次の行動に活かすことができます。
**改善例:**
* **「さっきの会議、〇〇さんのアイデアが素晴らしかったです。特に、あの部分で示してくれたデータは、私たちの議論に説得力を持たせてくれました。」**
* **「会議でのファシリテーション、とてもスムーズでしたね。全員が発言しやすい雰囲気を作ってくれたおかげで、活発な議論ができました。」**
### **2. なぜ「天才」だと感じたのかを説明する**
「天才」という言葉は最高の褒め言葉ですが、なぜそう感じたのかが不明瞭です。その理由を付け加えることで、相手は自身の強みや、周囲からどのように見られているのかを把握できます。
**改善例:**
* **「〇〇さんが会議で提案した解決策は、誰も思いつかないような斬新な視点でした。まさに天才的だと思いました。」**
* **「あの複雑な問題を、たった一言でシンプルにまとめてくれて、本当に驚きました。その洞察力は天才的です。」**
### **3. 相手の行動を認める言葉を加える**
単に「よかった」と言うだけでなく、相手の努力や準備、貢献を認める言葉を加えることで、より深い信頼関係を築くことができます。
**改善例:**
* **「素晴らしい発表でした。事前の準備が大変だったと思いますが、その努力が報われた結果だと思います。」**
* **「あなたの提案のおかげで、私たちのチームは目標達成に大きく近づきました。本当にありがとう。」**
---
### **まとめ**
いただいたフィードバックは、ポジティブな気持ちを伝える上でとても良いものですが、相手の成長をさらに促すためには、以下の3つのポイントを意識すると効果的です。
1. **具体性:** 何がどう良かったのかを明確にする。
2. **根拠:** なぜそう評価したのかの理由を述べる。
3. **行動の承認:** 相手の努力や貢献を認める言葉を加える。
これらの点を踏まえることで、より建設的で、相手のモチベーションを高めるフィードバックになります。
事前学習ありの例
入力1
一般的に重要とされるフィードバックの手法を3つ説明してください。
出力1
一般的に重要とされるフィードバックの手法はいくつかありますが、代表的な3つの手法を以下に説明します。
### 1. サンドイッチ型フィードバック
サンドイッチ型フィードバックは、**ポジティブな内容(褒める)で始まり、改善点(指摘)を挟み、再びポジティブな内容で締めくくる**手法です。
* **手順:**
1. **ポジティブなフィードバック:** 最初に、相手の良かった点や成果を具体的に伝えます。
2. **改善点の指摘:** 次に、改善してほしい点や課題を具体的に伝えます。
3. **ポジティブなフィードバック:** 最後に、再び相手の良い点や今後の期待を伝えて締めくくります。
* **メリット:**
* 改善点を指摘されても、最初と最後にポジティブな言葉があるため、相手のモチベーションを維持しやすい。
* ネガティブな内容を伝えやすくなる。
* シンプルな構造で、実践しやすい。
* **注意点:**
* 形式的な褒め言葉を繰り返すと、改善点が軽視されたり、かえって不信感を与えたりする可能性がある。
* 改善点と関連性のある褒め言葉を選ぶことが効果的。
### 2. SBI型フィードバック
SBI型フィードバックは、**Situation(状況)、Behavior(行動)、Impact(影響)**の3つの要素に基づいてフィードバックを伝える手法です。
* **手順:**
1. **Situation(状況):** どのような状況下での話か、客観的な事実を伝えます。
2. **Behavior(行動):** その状況で、相手がどのような行動をとったのかを具体的に伝えます。
3. **Impact(影響):** その行動がどのような影響や結果をもたらしたのかを伝えます。
* **メリット:**
* 主観や感情を排除し、客観的な事実に基づいて伝えられるため、相手が納得しやすい。
* 具体的な行動に焦点を当てるため、改善点が明確になり、行動変容につながりやすい。
* 良い行動を強化したい場合にも有効。
* **注意点:**
* 状況、行動、影響を明確に把握しておく必要がある。
* 影響を伝える際に、自分の感情的な反応ではなく、客観的な事実や周囲への影響として伝えることが重要。
### 3. ペンドルトンルール
ペンドルトンルールは、**フィードバックを受ける側が主体的に考え、自ら気づきを得る**ことを重視した対話形式の手法です。
* **手順:**
1. **何について話すか確認する:** まず、フィードバックのテーマを共有します。
2. **良かった点を挙げてもらう:** 相手に、今回の行動で良かったと思う点を挙げてもらいます。
3. **良かった点について話し合う:** 上司が相手の挙げた良かった点に同意したり、補足したりします。
4. **改善点を挙げてもらう:** 相手に、今回の行動で改善すべきだったと思う点を挙げてもらいます。
5. **改善点について話し合う:** 上司が相手の挙げた改善点についてアドバイスや意見を加えます。
6. **今後の行動計画を立てる:** 相手に、次回どのように行動するか考えてもらい、上司がサポートします。
7. **まとめる:** 話し合った内容を要約し、今後への期待を伝えます。
* **メリット:**
* 相手が主体的に内省し、自ら課題や解決策を見つけるため、成長につながりやすい。
* 一方的な指導にならず、対話を通じて信頼関係を築ける。
* 自発的な行動を促すことができる。
* **注意点:**
* 時間がかかる場合がある。
* フィードバックを受ける側の自己評価が低い場合、改善点を見つけるのが難しいことがある。
* 上司が一方的に答えを教えるのではなく、あくまでガイド役に徹することが重要。
入力2
事前学習したうえで事前学習なしと全く同じ質問をします
以下のフィードバックの改善点を指摘してください。
# フィードバック
さっきの会議よかったよ。天才。
出力2
出力内容がSBI法を加味した内容に変化しました。
いただいたフィードバックには、改善できる点がいくつかあります。
### 改善点
このフィードバックは、**具体的さに欠け、なぜ良かったのかが不明瞭**です。また、「天才」という言葉は抽象的で、相手の具体的な行動や貢献を褒めているわけではないため、相手は何を評価されたのか理解できません。
---
### 改善提案
より効果的なフィードバックにするために、以下の点を改善することをおすすめします。
#### 1. 具体的な行動を伝える
「よかった」という漠然とした評価ではなく、**「何が」「どう」良かったのか**を具体的に伝えましょう。
* **例:**
* 「会議の途中で、A社のプロジェクトに関する**数字の根拠を的確に示してくれた**ことで、議論がスムーズに進んだよ」
* 「提案資料の**視覚的なグラフが非常に分かりやすかった**おかげで、参加者全員が内容をすぐに理解できたね」
#### 2. その行動がもたらした影響を伝える
相手の行動が、**自分やチーム、会社にどのような良い影響を与えたのか**を伝えることで、相手は自分の貢献を実感できます。
* **例:**
* 「君が論理的に説明してくれたおかげで、**クライアントからの信頼が高まった**と思う」
* 「君の資料のおかげで、**チーム全体の理解が深まり、次のアクションプランが立てやすくなった**よ」
#### 3. 抽象的な言葉を避ける
「天才」のような抽象的な褒め言葉は、相手が何を評価されたのか分からず、行動の再現につながりません。**具体的な事実に基づいた言葉**を選びましょう。
---
### 改善後のフィードバック例
これらの改善点を踏まえると、以下のようなフィードバックになります。
**改善例1(SBI型フィードバックを意識):**
「さっきの会議で、A社との契約に関する**現状をデータに基づいて冷静に説明してくれた**(行動)おかげで、チーム全員が現状を正しく把握し、**スムーズに次の戦略を話し合うことができた**(影響)よ。素晴らしい貢献だったね。」
**改善例2(よりシンプルに):**
「会議での資料、すごく分かりやすかったよ。特に、**売上予測のグラフが論理的で説得力があった**。あれのおかげで、全員が納得して次のステップに進めたよ、ありがとう。」
このように、具体的な行動と、それがもたらした良い影響を伝えることで、相手は**「何をすれば評価されるのか」を理解し、今後の行動に活かす**ことができます。
思考発話プロンプト
思考発話法とは、ある課題やタスクを実行している最中に、頭に浮かんだことや考えていることをすべて声に出して話してもらうことで、その人の思考プロセスをリアルタイムで記録・分析する手法です。
AIに質問に対する答えだけではなく、思考の過程を説明してもらいます。
入力1
以下のフィードバックの改善点を指摘してください。
最初に指摘を出力し、その後に指摘する際に、フィードバックの内容を読み、指摘をするうえで考えたことを思考発話法で説明してください。
# フィードバック
さっきの会議よかったよ。天才。
出力1
このフィードバックには改善点がいくつかあります。
---
### 指摘
このフィードバックは非常に簡潔ですが、具体性に欠け、評価の根拠が不明瞭です。以下の2点が主な改善点です。
1. **具体性がなく、相手の行動を評価し改善に繋げることができない**:
「よかったよ」「天才」という言葉はポジティブな評価ですが、何がどう良かったのかが全くわかりません。会議での発言内容、資料の構成、議論の進め方など、具体的にどの点が優れていたのかを伝える必要があります。これでは、相手は自分のどの行動が評価されたのかを理解できず、次回の会議で同様の行動を再現したり、さらに改善したりすることが困難です。
2. **根拠が示されていないため、ただの感想に聞こえる可能性がある**:
「天才」という言葉は、褒め言葉としては強いですが、その根拠が示されていないと、ただの社交辞令や感情的な発言に聞こえてしまう可能性があります。なぜそのように感じたのかの理由を添えることで、フィードバックに説得力が増し、相手に響きやすくなります。
---
### 指摘する際の思考プロセス
1. **フィードバックの目的を考える**: フィードバックの目的は、相手の行動を評価し、その後の成長や改善に繋げることです。このフィードバックは、その目的を果たせているだろうか?
* 「よかったよ」「天才」という言葉はポジティブな感情は伝えているが、行動の改善には繋がらないな。なぜなら、何が良かったのかが不明だからだ。
2. **フィードバックの構成要素を分解する**: 良いフィードバックには何が必要だろうか?
* **評価**: 良かったか悪かったか。このフィードバックでは「よかった」「天才」と評価されている。これはOKだ。
* **根拠**: なぜそう評価したのか。このフィードバックには根拠がない。「なぜ良かったのか?」が全くわからない。
* **具体例**: どのような行動、発言、結果がその評価に繋がったのか。これも全くない。
3. **改善点を特定する**: 構成要素の不足点を踏まえて、このフィードバックのどこが問題かを見つけ出す。
* 一番の問題は**具体性**だ。相手がどの行動を繰り返せばいいのか、全く分からない。
* 次に、**根拠**がないこと。「天才」という言葉は強いが、根拠がないと褒め言葉として機能しにくい。
4. **改善点をどのように伝えるか考える**: 改善点をユーザーにわかりやすく伝えるにはどうすればいいか?
* まず、結論として改善点を簡潔にまとめる。「具体性がない」「根拠が不明瞭」という点を指摘しよう。
* 次に、それぞれの指摘について、なぜそれが問題なのかを具体的に説明する。
* 具体性がないと、相手は**何をすればいいか分からない**。行動の再現性がない、という視点で説明しよう。
* 根拠がないと、**説得力がない**。ただの感想に聞こえる、という視点で説明しよう。
* 最後に、全体を整理して、分かりやすい文章にまとめる。最初に指摘を箇条書きで示し、その後に思考プロセスを説明するという構成にしよう。