Claude APIのプロンプト設計で、1本の記事が薄味になるまでの8つの失敗

Claude APIで記事を作れば、すぐ良い下書きが出ると思っていました。

甘かったです。最初の出力は、丁寧で、正しくて、そして驚くほど薄味でした。3分で読めるのに、読後に何も残らない。夜中のコーヒーより薄い文章が出てきて、私は少し黙りました。

原因はモデルではなく、プロンプトでした。私が「良い記事」の条件を渡していなかったのです。

目次

失敗したプロンプト

最初はこんな依頼でした。

Claude Codeについて初心者向けの記事を書いてください。

これで出てくる文章は、だいたい安全です。安全ですが、刺さりません。

誰が書いたのか分からない。どこでつまずいたのか分からない。数字がない。痛みがない。つまり、読む理由が弱いです。

変えたプロンプト

そこで、条件を分解しました。

次の条件で技術ブログ記事を書いてください。

読者:
- Claude Codeを触るか迷っている個人開発者
- PythonとGitは少し分かる

記事の条件:
- 冒頭3行に数字か失敗談を入れる
- 具体的な失敗を3つ入れる
- コードブロックを1つ以上入れる
- 3000字前後
- 敬体
- 最後は1行の断言で締める

禁止:
- ぼんやりした体験談タイトル
- 「便利です」で終わる結論
- 実装していない機能を事実のように書く

この時点で、出力はかなり変わりました。AIは空気を読むのではなく、条件を読むのだと実感しました。

Pythonから呼び出す最小例

API呼び出しは、まず最小構成で確認します。

import os
from anthropic import Anthropic


client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])


def draft_article(topic: str) -> str:
    prompt = f"""
    テーマ: {topic}

    条件:
    - 冒頭3行で数字か失敗談を出す
    - 具体例を3つ入れる
    - コードブロックを1つ入れる
    - 敬体で書く
    - 最後は一文で断言する
    """

    message = client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=3000,
        messages=[{"role": "user", "content": prompt}],
    )
    # ハマりポイント: contentは配列なので、最初のtextを取り出す
    return message.content[0].text


print(draft_article("Claude Code導入で失敗した話"))

モデル名は利用時点の環境に合わせて確認してください。大事なのは、まず1関数で動かし、出力の形を見ることです。

8つの失敗から残ったルール

1つ目は、読者を指定しなかったことです。初心者向けと言っても、完全初心者なのか、Python経験者なのかで全然違います。

2つ目は、禁止事項を書かなかったことです。AIは無難な表現を選びがちです。「便利です」「勉強になりました」を禁止するだけで、結論が少し締まります。

3つ目は、数字を要求しなかったことです。30分、3回、47行、12個。数字が入ると、文章が急に現実に寄ります。

4つ目は、失敗談を薄く書かせたことです。失敗は読者の接点です。恥ずかしいところほど、読まれます。

5つ目は、コードの実用性を指定しなかったことです。雰囲気コードは読者を助けません。

6つ目は、出力後のチェックをAI任せにしたことです。記事は生成して終わりではなく、人間が「本当に読みたいか」を見る必要があります。

7つ目は、1回で完成させようとしたことです。最初は構成、次に本文、最後にタイトル。この3段階のほうが安定しました。

8つ目は、個性を入れ忘れたことです。地方在住、夜中、コーヒー、弱気、少し笑える失敗。こういう小さな癖がないと、文章はすぐ匿名になります。

私のチェックリスト

出力後は、毎回この5つを見ます。

1. 冒頭3行で読む理由があるか
2. 数字が3つ以上あるか
3. 失敗談が具体的か
4. コードは実際に動くか
5. 結論が「便利です」で逃げていないか

これを通すだけで、記事の密度が変わります。特に1番と5番は厳しく見ます。入口と出口が弱い文章は、途中が良くても残りません。

生成後に必ず1回削る

AIの文章は、足すより削るほうが効くことがあります。

私は最初、出力された記事をそのまま整えようとしていました。すると、丁寧な前置き、一般論、似たような結論が残ります。文字数はあるのに、読み応えが薄い状態です。

そこで、生成後に必ず3種類の文を削るようにしました。

1つ目は、誰でも言える文です。2つ目は、数字のない感想です。3つ目は、次の段落と同じことを言っている文です。

削る基準:
- その文は自分の経験でしか書けないか
- 数字、場面、失敗のどれかがあるか
- 次の1文を読みたくなるか

この削りを入れると、同じ3000字でも密度が変わります。AIに書かせるほど、人間の編集が必要になるのは少し皮肉ですが、そこが一番おもしろいところでもあります。

温度を指定するより、採点表を渡す

プロンプトで「熱量高く」「読みやすく」と書きたくなります。私も最初はそうしていました。

でも、熱量は人によって意味が違います。AIにとっての熱量は、やたら大きな形容詞になることがあります。そこで、感覚語ではなく採点表に変えました。

採点:
- タイトルはクリックしたくなるか 10点
- 冒頭3行で痛みか数字が出るか 10点
- 失敗談が具体的か 10点
- コードが実用か 10点
- 結論が一文で刺さるか 10点

合計45点未満なら書き直す。

これを入れると、出力の自己点検が少し具体的になります。もちろん採点を鵜呑みにしてはいけませんが、少なくとも「良い感じ」という霧は薄くなります。

文章生成で怖いのは、悪文ではなく、欠点が見えにくい平均点の文章です。

もう1つ効いたのは、先に失敗談だけを箇条書きで渡す方法です。完成文をいきなり求めず、材料を8個ほど並べます。

材料:
- 初回出力が薄かった
- 数字を入れ忘れた
- コードが雰囲気だけだった
- 結論が弱かった

材料が具体的だと、AIの文章も具体に寄ります。白紙から名文を出させるより、泥のついた材料を渡したほうが読める記事になります。

まとめ

Claude APIは、文章を作る道具ではなく、条件を満たす下書きを高速に出す道具です。

良い出力が欲しいなら、良い雰囲気ではなく、良い制約を渡す必要があります。私が8回失敗して分かったのは、プロンプト設計とはAIへのお願いではなく、品質基準の設計だということです。

AIに個性を出させる前に、人間が読む理由を設計しなければいけません。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次