具体性が重要な理由
曖昧なプロンプトが一般的な出力につながる仕組みと、正確な指示で改善する方法を学びます。
「具体性が重要な理由」はCoddyKit上の無料AI Prompt Engineeringレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Prompt Engineering学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Prompt Engineeringコースには全4レッスンが含まれています。
曖昧さの問題
曖昧なプロンプトを送ると、AIは不足している詳細をすべて最善の推測で補います。その推測は、あなたの実際の意図ではなく、統計的に最も平均的な解釈に基づいています。
その結果、一般的で印象に残らない出力になり、大幅な書き直しが必要になります。具体性は、AIの出力品質を向上させるうえで、最も強力な手段です。
曖昧なプロンプト:犬について書く
次のプロンプトを考えてみましょう。「犬について何か書いてください。」
モデルは、形式、長さ、対象読者、切り口を推測しなければなりません。そのため、子ども向け百科事典にも載せられそうな、無難で特徴のない段落をデフォルトで生成します。
次のプロンプトと比較してみましょう。「ゴールデンレトリバーの子犬が初めてビーチに行った日のために、200語のInstagramキャプションを書いてください。トーンは、遊び心があり感情に訴えるものにしてください。関連するハッシュタグを5つ含めてください。」
2つ目のプロンプトでは、推測の余地がありません。
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
vague = 'Write something about dogs.'
specific = (
'Write a 200-word Instagram caption for a golden retriever puppy\'s '
'first day at the beach. Tone: playful and emotional. '
'End with 5 relevant hashtags.'
)
for label, prompt in [('VAGUE', vague), ('SPECIFIC', specific)]:
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=300,
messages=[{'role': 'user', 'content': prompt}]
)
print(f'--- {label} ---')
print(response.content[0].text)
print()一般的な出力が生まれる理由
モデルは何十億ものテキスト例で学習されています。「Xについて書いて」と言うと、学習中に見たXについての最も一般的な種類のテキストを生成します。
その特徴は次のとおりです。
- 百科事典のようなトーン
- 中程度の長さ
- 主要な観点を浅く一通り扱う
- 独自の声や目的がない
具体的な制約を指定すると、こうしたデフォルトが上書きされ、モデルを本当に必要としている方向へ導けます。
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
# Default (vague) output
default_response = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': 'Write about coffee.'}]
)
print('DEFAULT OUTPUT (first 200 chars):')
print(default_response.choices[0].message.content[:200])
print()
# Constrained output
constrained_response = client.chat.completions.create(
model='gpt-4o',
messages=[{
'role': 'user',
'content': (
'Write a 100-word product description for a single-origin Ethiopian pour-over coffee. '
'Target audience: specialty coffee enthusiasts. '
'Tone: sophisticated, sensory. Mention flavor notes: jasmine, blueberry, dark chocolate.'
)
}]
)
print('CONSTRAINED OUTPUT:')
print(constrained_response.choices[0].message.content)具体性を決める5つの要素
プロンプトを書くときは、次の5つの要素を具体的に指定してください。
- 形式 — 段落、箇条書き、表、JSON、メール
- 長さ — 単語数、文の数、項目数
- 対象読者 — この出力を読む、または利用する人
- トーン — フォーマル、カジュアル、技術的、説得力のある、共感的
- 目的 — 出力によって何を達成するのか
常に5つすべてが必要なわけではありません。ただし、どれか1つでも欠けると、モデルが誤って推測する余地が生まれます。
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
# All 5 dimensions specified
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=256,
messages=[{
'role': 'user',
'content': (
'Format: 3-bullet summary.\n'
'Length: each bullet max 20 words.\n'
'Audience: busy startup founders with no ML background.\n'
'Tone: direct, no jargon.\n'
'Goal: explain why fine-tuning an LLM is expensive.'
)
}]
)
print(response.content[0].text)曖昧な依頼と具体的な依頼:メール
AIで最もよく行うタスクの1つである、メールの作成を見てみましょう。
曖昧な依頼:「クライアントにメールを書いてください。」
モデルは、クライアント、話題、関係性、目的、トーンを知りません。
具体的な依頼:「支払いが14日遅れているB2B SaaSクライアント(TechFlow Inc)に、3段落のメールを書いてください。トーンは、厳格でありながら、ビジネス上の礼儀を保ったものにしてください。目的は、関係を損なわずに支払いを促すことです。5日以内という期限を設けた、具体的な行動喚起を含めてください。」
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
specific_prompt = (
'Write a 3-paragraph professional email to a B2B SaaS client (TechFlow Inc) '
'who has a payment 14 days overdue. '
'Tone: firm but courteous — preserve the business relationship. '
'Include: acknowledgment of potential oversight, the overdue amount placeholder [AMOUNT], '
'a payment link placeholder [LINK], and a 5-day deadline. '
'Subject line included.'
)
response = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': specific_prompt}]
)
print(response.choices[0].message.content)曖昧な指示と具体的な指示:要約
一見簡単そうな要約でさえ、具体性によって大きな効果が得られます。
曖昧:「この記事を要約してください。」
具体的:「この記事を、ちょうど3文で要約してください。1文目:主な知見。2文目:使用した方法論。3文目:実務担当者にとって最も重要な示唆。」
構成を指定したバージョンはすぐに使えますが、曖昧なバージョンは形式を整え直す必要があります。
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
article = (
'Researchers at MIT have developed a new neural network architecture that achieves '
'94% accuracy on medical image diagnosis, outperforming human radiologists by 7%. '
'The model was trained on 2.4 million anonymized X-ray images and uses a novel '
'attention mechanism that highlights regions of interest for clinician review. '
'The team expects FDA clearance by Q3 2025 for use as a diagnostic aid, not replacement.'
)
specific_prompt = (
f'Summarize the following article in exactly 3 sentences:\n'
f'Sentence 1: main finding.\n'
f'Sentence 2: methodology.\n'
f'Sentence 3: key implication for clinicians.\n\n'
f'Article:\n{article}'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=200,
messages=[{'role': 'user', 'content': specific_prompt}]
)
print(response.content[0].text)曖昧な指示と具体的な指示:ブレインストーミング
ブレインストーミング用のプロンプトでは、曖昧さのコストが最も大きくなります。誰でも思いつく、重複したアイデアのリストになるからです。
曖昧:「自分のアプリ向けにアイデアを出してください。」
具体的:「25~35歳の都市部の会社員を対象とするB2Cの瞑想アプリ向けに、独自性のある収益化戦略を10個挙げてください。サブスクリプションモデルは除外してください(すでに1つ導入しています)。各アイデアは1文で記述し、リスクの高い順から低い順に並べてください。」
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
specific_brainstorm = (
'Generate 10 unique monetization strategies for a B2C meditation app '
'targeting 25-35 year-old urban professionals. '
'Exclude: subscription models (already implemented). '
'Each strategy in one sentence. '
'Order from most to least conventional. '
'Label each with: CONVENTIONAL / EXPERIMENTAL / BOLD.'
)
response = client.chat.completions.create(
model='gpt-4o',
messages=[{'role': 'user', 'content': specific_brainstorm}]
)
print(response.choices[0].message.content)プロンプトで例を使う
具体性を高める最も強力な方法の1つは、求める出力の例をプロンプトに直接含めることです(few-shot promptingと呼ばれる手法です)。
形式を説明する代わりに、実際に示してください。モデルは実例から、構成、長さ、トーンを瞬時に理解します。多くの場合、文章による説明よりも明確に伝わります。
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
example_prompt = '''
Generate 3 product taglines in this style:
Example 1: Notion — 'The all-in-one workspace where better thinking happens.'
Example 2: Figma — 'Design together. Ship faster.'
Example 3: Linear — 'The issue tracker you'll actually enjoy using.'
Product: A CLI tool that automatically writes Git commit messages by analyzing your diff.
Taglines:
'''
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=200,
messages=[{'role': 'user', 'content': example_prompt}]
)
print(response.content[0].text)してはいけないことを指定する
否定的な制約は、肯定的な指示と同じくらい強力です。モデルに避けるべきことを伝えると、よくある望ましくないパターンを防げます。
- 「箇条書きを使わないでください」
- 「Iという単語で始めないでください」
- 「クレジットカードが必要な解決策を提案しないでください」
- 「受動態を使わないでください」
最大限に制御するには、肯定的な指示と否定的な制約を組み合わせてください。
import openai
client = openai.OpenAI(api_key='sk-your-key-here')
response = client.chat.completions.create(
model='gpt-4o',
messages=[
{
'role': 'system',
'content': (
'You are a copywriter. Rules:\n'
'- NEVER start a sentence with "Additionally" or "Furthermore"\n'
'- NEVER use the phrase "In conclusion"\n'
'- NEVER use passive voice\n'
'- NEVER use bullet points or lists'
)
},
{
'role': 'user',
'content': 'Write a 100-word about us section for a craft bakery called Morning Light.'
}
]
)
print(response.choices[0].message.content)具体性を反復的に高める
最初から完璧なプロンプトを書く必要はありません。反復的な改善は有効な方法です。
- 適度に具体的なプロンプトから始めます
- 出力の問題点や不足している点を特定します
- その不足を補う制約を追加します
- 出力が基準を満たすまで繰り返します
反復するたびに、モデルに必要な制約が分かってきます。最も良かったプロンプトはテンプレートとして保存し、今後も使えるようにしましょう。
import anthropic
client = anthropic.Anthropic(api_key='sk-ant-your-key-here')
# Iteration 1: first attempt
v1 = 'Write a LinkedIn post about my new job.'
# Iteration 2: add specifics based on what was missing
v2 = (
'Write a LinkedIn post (max 150 words) announcing I just joined Stripe as a Senior Engineer. '
'Tone: genuine excitement, not bragging. '
'Include: what drew me to the role, one thing I plan to focus on. '
'No cliches like "excited to announce" or "humbled to share". '
'End with a genuine question for my network.'
)
response = client.messages.create(
model='claude-opus-4-5',
max_tokens=300,
messages=[{'role': 'user', 'content': v2}]
)
print(response.content[0].text)具体性チェックリストを作る
プロンプトを送信する前に、次のチェックリストを頭の中で確認してください。
- 出力形式を指定しましたか?(段落/リスト/JSON/表)
- 長さを指定しましたか?(語数/項目数)
- 対象読者を指定しましたか?(誰が読むのか)
- トーンを指定しましたか?(フォーマル/カジュアル/技術的)
- 目的を指定しましたか?(この出力を何に使うのか)
- 制約を含めましたか?(避けるべきこと)
- 意図を示すために例を追加できますか?
# Prompt template with all specificity dimensions filled
prompt_template = '''
Task: {task_description}
Format: {format}
Length: {length}
Audience: {audience}
Tone: {tone}
Goal: {goal}
Do NOT: {constraints}
Example of good output: {example}
'''
filled = prompt_template.format(
task_description='Explain what an API is',
format='3 short paragraphs, plain prose — no bullet points',
length='150 words maximum',
audience='Non-technical business stakeholders',
tone='Friendly, analogy-based, jargon-free',
goal='Prepare them for a meeting with the engineering team',
constraints='Do not use the words "endpoint", "REST", or "HTTP"',
example='An API is like a waiter in a restaurant — it takes your order...'
)
print(filled)理解度チェック
マーケティングマネージャーがAIに「ソーシャルメディアへの投稿を書いてください」と依頼しました。AIは会社についての一般的な2文の投稿を返しました。有用な結果を得るための書き換えとして、最も適切なのはどれですか?
なぜ具体性が重要なのか — まとめ
具体性は、効果的なプロンプトの土台です。重要なポイントは次のとおりです。
- 曖昧なプロンプトは、統計的に平均的で一般的な出力を生みます
- すべてのプロンプトで形式、長さ、対象読者、トーン、目的を指定します
- 望ましくないパターンを防ぐために否定的な制約を使います
- 求める出力スタイルの例を含めます
- 反復的な改善を行います。最初から完璧なプロンプトである必要はありません
- うまくいったプロンプトはテンプレートとして保存し、再利用します
具体的に指定するほど、出力を書き直す時間を減らせます。
AI チューターと学ぶ AI Prompt Engineering — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 53
- レッスン
- 199
よくある質問
「具体性が重要な理由」レッスンは無料ですか?
はい。「具体性が重要な理由」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Prompt Engineeringコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Prompt Engineeringコースには全4レッスンが含まれています。
「具体性が重要な理由」で何を学びますか?
曖昧なプロンプトが一般的な出力につながる仕組みと、正確な指示で改善する方法を学びます。 ブラウザで直接実行するハンズオンコードでAI Prompt Engineeringを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Prompt Engineeringを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Prompt Engineeringは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「具体性が重要な理由」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Prompt Engineeringレッスンでコードを書いて実行できますか?
はい。すべてのAI Prompt Engineeringレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。