毎回同じような指示を書き直しては「思った通りの回答が返ってこない」と悩んでいた。特にコード生成や要約、設計レビューなどで、微妙なニュアンスの違いが結果を大きく左右することに気づき、プロンプトの型を整理して使い分けるようになった。
1. 役割を明示して「専門家」にさせる
以前は「コードを書いて」だけで依頼すると、初心者向けの説明が混ざり冗長になりがちだった。
あなたはシニアのバックエンドエンジニアです。
以下の要件でGoのHTTPハンドラを実装してください。
役割を先頭に置くだけで、トーン・用語・粒度が現場レベルに揃い、レビュー工数が約3割減った。
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
最新ツール・トレンド情報をずんだもん×めたんが解説するYouTubeチャンネルを運営しています!
いいね、チャンネル登録してもらえると嬉しいです🙇♂️
ハジメル.dev: https://hajimeru-dev.vercel.app/
「ひとりで続けるのは難しい」「何から学べばいいか分からない」という方向けに、
プログラミングのマンツーマンレッスンサービス「ハジメル.dev」も運営しています。
未経験OK・オンライン完結・月額制/違約金なしなので、気軽に無料相談してみてください🙇♂️
海外テックニュースを追いたいけど、英語や情報量の多さで大変…という方向けに、
Hacker News の話題を日本語でサクッと追える「HackerNews 日本語まとめ & AI要約」
を個人開発しました!
技術トレンド収集に使ってもらえると嬉しいです🔥🙇♂️
→ HackerNews 日本語まとめ & AI要約: https://hn-matome-2ht.pages.dev/
「ニャンパイアサバイバー」というヴァンパイアサバイバーリスペクトのゲームを作成しました!
もしよろしければ遊んで頂けると嬉しいです😭
習い事教室の先生向けに、SNS 投稿・生徒募集・保護者通知の文章を AI で生成する Web サービス「おしらせAI」を個人開発しました。Next.js + Supabase + LLM で構成しており、無料で月 10 回まで試用できます。よければ触ってみてください。
→ おしらせAI: https://oshirase-ai.vercel.app/
言いたいことがうまく伝わらない…という方向けに、会話の言い方を添削する「伝え方ラボ」を開発中です。
場面を選んで自分の言葉で返すと、何が伝わっていないかの指摘と、そのまま使える言い換えが返ってきます。
ChatGPT に相談すると褒めから入って直すべきところが残りがちなので、指摘側に振り切りました。
現在は公開時にお知らせするメール登録のみ受付中です🙇♂️
→ 伝え方ラボ: https://tsutaekata-lab.pages.dev/
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨
2. ステップバイステップで思考を誘導する
複雑なリファクタリングを一発で頼むと、途中の設計判断が省略されバグが紛れ込んだ。
1. 現状のコードを読み、責務を箇条書きで整理してください。
2. 単一責務の原則に従い、関数を分割する案を3つ提示してください。
3. それぞれのメリット・デメリットを比較表で出力してください。
段階を区切ると、モデルが内部で整理しながら答えるため、提案の質が安定し、後で修正する回数が激減した。
3. 出力フォーマットを厳密に指定する
MarkdownやJSONで返してほしいのに、自由文で返されパースに失敗することが多かった。
出力は必ず以下のJSONスキーマに従ってください。
{
"functionName": "string",
"params": ["string"],
"returnType": "string"
}
スキーマを提示すると、余計な説明が消え、CI/CDパイプラインにそのまま食わせられるようになった。
4. Few‑shot 例を提示してスタイルを固定する
ドキュメント生成でトーンがブレると、レビューで毎回修正指示が出た。
以下の形式で関数説明を書いてください。
例:
### `calcTax(price, rate)`
指定価格に税率を適用し、税込価格を返します。
- 引数: price (number), rate (number)
- 戻り値: number
例を2〜3件入れると、以降の出力がほぼ同一フォーマットになり、手直しがほぼゼロになった。
5. 制約条件を箇条書きで列挙する
「パフォーマンスを意識して」だけでは、具体的な最適化が漏れる。
制約:
- 計算量は O(n log n) 以内
- 外部ライブラリは標準ライブラリのみ
- エラーハンドリングは result パターンで
制約を明文化すると、モデルが自動的にチェックリストのように振る舞い、レビュー指摘が「未対応の制約」だけに絞られた。
6. 思考過程を「Chain‑of‑Thought」で出力させる
難易度の高いアルゴリズム設計で、答えだけ貰っても納得感が薄く、バグを見逃した。
解答の前に、ステップごとの理由付けを「思考:」プレフィックスで出力してください。
思考が見える化されると、こちらでロジックを検証しやすく、バグ混入率が体感で半分以下に下がった。
7. 反復改善ループを組み込む
一度のプロンプトで完璧を求めると、細かい要件漏れが後で発覚する。
以下の手順で繰り返してください。
1. 初版を作成
2. 自分でコードレビューし、改善点を3つ挙げる
3. 改善版を出力
4. 2〜3を満足するまで繰り返す
自己評価を促すと、モデル自身が欠陥を潰し込み、最終成果物の完成度が初回比で大幅に向上した。
8. コンテキストを分割して渡す
巨大なリポジトリ全文を貼り付けるとトークン制限で切れ、肝心な部分が欠落した。
--- ファイルA ---
[コード]
--- ファイルB ---
[コード]
上記2ファイルのみを対象に、インターフェースの整合性をチェックしてください。
必要な断片だけを区切り記号で渡すと、トークン節約かつ関連情報が漏れず、レビュー精度が上がった。
9. temperature / top_p を用途別に調整する
クリエイティブな命名と、厳密なコード生成で同じ設定だと、どちらかがブレた。
# 命名アイデア出し
temperature: 0.9
top_p: 0.95
# 本番コード生成
temperature: 0.1
top_p: 0.3
用途ごとにパラメータを変えると、命名は多様性が出て、コード生成は決定的になり、手戻りが減った。
10. システムメッセージでルールを固定する
会話途中で「今度は別の言語で」と言われると、前のルールが崩れて混乱した。
system:
あなたは常にTypeScriptのstrictモードでコードを出力します。
コメントはJSDoc形式に統一してください。
システムメッセージで前提を固定すると、ユーザー側の指示が変わってもベースルールが守られ、レビュー指摘の「型定義漏れ」がほぼ消えた。
まとめ
プロンプトの型をストックして使い分けるだけで、AIとのやり取りが「試行錯誤」から「確実な道具」に変わる。まずは1つ試してみてほしい。