3秒でわかる
生成 AI に渡す指示文のこと。読み手や条件、出力形式まで書き込むことで、返ってくる答えの具体性と手直しの量が大きく変わります。
30秒図解
もう少し詳しく
どういうものか
大規模言語モデルに渡す入力テキストのこと。質問文だけを指すのではなく、役割の指定、前提となる情報、守ってほしい条件、出したい形式まで含めた入力全体を指す。モデルはプロンプトの続きとして最も自然な文字列を予測しているため、入力の書き方がそのまま出力の質を決める。
多くの API では、プロンプトは system と user の 2 種類に分かれる。system には振る舞いの前提を、user には個別の依頼を書く。
なぜ必要か
同じことを聞いても、書き方しだいで結果が変わる。「マーケの文章を書いて」では、誰に向けた何文字の文章かが決まらないため、当たり障りのない一般論が返る。読み手、目的、長さ、形式、避けたい表現を書けば、手直しの量が桁違いに減る。プロンプトを整えることは、そのまま作業時間の短縮になる。
具体例
曖昧な指示と、条件を足した指示の対比。
[ 曖昧な指示 ]
エラーの原因を教えて
[ 条件を足した指示 ]
あなたは <a href="/glossary/nodejs" class="text-primary font-medium underline underline-offset-2 hover:text-primary-dark">Node.js</a> の経験が長いレビュアーです。
下記のエラーについて、考えられる原因を可能性の高い順に3つ挙げ、
それぞれに確認手順を1行で添えてください。推測の部分は推測と明記してください。
環境 Node.js 20 / Express 4
エラー本文
TypeError: Cannot read properties of undefined (reading 'id')
at /app/routes/users.js:42役割、出力の個数、並べる順、形式、環境情報を足しただけで、返答は具体的な調査手順になる。
つまずきやすいところ
「詳しく」「いい感じに」といった、人によって解釈が割れる語を条件だと思ってしまうこと。分量なら文字数、丁寧さなら想定読者、というように測れる形に置き換える必要がある。
もう 1 つは、出力形式を指定しないまま後続のプログラムに渡す設計。JSON で受け取りたいなら、キー名と型まで書いて例を 1 つ添える。書式が揺れる前提でパースを組むより、揺れないように指示するほうが早い。
長い前提を毎回貼り直すのも非効率になる。繰り返す部分はテンプレート化し、変わる部分だけを差し込む形にすると管理しやすい。
似た用語との違い
| 語 | 指すもの |
|---|---|
| プロンプト | モデルに渡す入力テキスト全体 |
| システムプロンプト | 振る舞いの前提を書く枠。会話をまたいで効く |
| コンテキストウィンドウ | 一度に扱える入力と出力の合計の上限 |
| ファインチューニング | 追加学習でモデルの重みそのものを変える手法 |
プロンプトの工夫で足りるのか、追加学習や外部知識の検索が要るのかは、目的で分かれる。社内文書に基づいて答えさせたい場合は、プロンプトに資料を差し込む方式か、検索と組み合わせる方式を選ぶ。
覚え方
新人に仕事を頼むときのメモと同じ。目的、材料、締切、提出形式が書いてあれば、たいていの仕事は一度で返ってくる。