0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プロンプトで「あなたは優秀なエンジニアです」と役割を与えるのは、もう不要なのか

0
Posted at

プロンプトで「あなたは優秀なエンジニアです」と役割を与えるのは、もう不要なのか

かつてのプロンプトエンジニアリングでは、冒頭に「あなたは優秀なシニアエンジニアです」「あなたは世界トップクラスのマーケターです」といった役割設定を置くのが定番でした。ところが最近、自分のプロンプトを整理していて、この手の一文をごっそり削除しました。性能は落ちませんでした。

では「役割設定」はもう不要になったのか? 結論から言うと、「役割設定」そのものは死んでいませんが、「優秀な〜です」という能力強調の部分は価値を失いました。今回削除したのは後者です。最新のリファレンスを踏まえて、この違いを整理します。

① 能力ブースト型ペルソナ(「優秀な」「エキスパートの」)→ 価値消失

「あなたは優秀な〜」という文言は、旧世代モデル(GPT-3.5 / Claude 2 の時代)では実際に効果がありました。モデルの出力を「専門家らしいテキストの分布」に寄せるハックとして機能していたからです。

しかし現行モデルは、指示がなくても常に能力上限で動くように調整されています。お世辞を言っても性能は上がりません。

さらに Claude Code のような環境では、ハーネス側のシステムプロンプトが既に「You are Claude Code, an agent for software engineering tasks」と役割を定義済みです。つまりスキルやルール内に書いたペルソナ行は、二重定義の純粋なノイズでしかありませんでした。削除して正解だったわけです。

② 情報を運ぶ役割設定 → 今も有効・公式も推奨

一方で、役割が「視点・ドメイン・行動制約」を定義している場合はまったくの別物です。

実際、Anthropic の現行ドキュメントに載っているエージェント例は、今でも次のような形を使っています。

system: "You are a research assistant. Cite sources for every claim."

この役割行が機能するのは、モデルの IQ を煽っているからではなく、ジョブを設定しているからです。「リサーチアシスタントとして、すべての主張に出典を付けよ」という行動制約が情報として乗っています。

見分け方は単純です。

  • ❌ 「あなたは優秀なエンジニアです」→ 削っても挙動が変わらない
  • ⭕ 「あなたは保守的なコードレビュアー。動作変更は一切提案しない」→ 削ると挙動が変わる

削って挙動が変わるなら情報、変わらないなら装飾。装飾は消してかまいません。

③ モデル世代・ティア別の注意 — 最新世代では方向が逆転している

今回の調査でいちばん重要だった知見がこれです。公式の移行ガイドに明記されているのですが、最新世代ではプロンプトの作法が逆方向に振れています

強圧的な文言は過剰トリガーを起こす。 Claude 4.6 以降は指示追従が大幅に強化されたため、旧モデル向けに書いた CRITICAL: 必ず〜すること のような強い文言は、むしろ過剰反応を引き起こします。公式も「dial back any aggressive 'CRITICAL: YOU MUST' instructions」と明言しています。

手順の細かい指定は品質を下げる。 最新の最上位モデルでは「手順を細かく指定したプロンプトはむしろ出力品質を下げる。目標と制約を述べ、手順の列挙はやめよ(de-prescribe)」が公式推奨になっています。

小型モデルは例外的に枠付けが効く。 Haiku などの小型モデルは、明確な枠付け・制約の恩恵が相対的に大きいです。ただし効くのはやはり具体的な指示であって、「優秀な」というラベルではありません。

まとめると、「ペルソナで煽る → 詳細手順で縛る」という旧作法から、「ジョブ定義+制約+ゴール」だけを書く新作法への移行が起きています。プロンプトのメタルールとしてよく言われる「短く・1行の核・採点可能」は、公式の方向性とも一致しているわけです。

④ 実務上の使い分け

最後に、実際の運用場面ごとに整理します。

Claude Code の rules / skills では、ペルソナは不要です。 ハーネスが既に役割を定義しているので、追加のペルソナ行は二重定義のノイズになります。

API で自前のエージェントを組むときは、短い役割定義が有効です。 競馬・競輪の分析プロンプトのようなドメイン特化の場面では、システムプロンプト冒頭にジョブ定義を置く価値があります。ただし書き方が重要で、「あなたは優秀な予想家です」ではなく、「車券戦略を立てる分析者。配分合計は必ず100%」のような検証可能な制約付きのジョブ定義として書きます。

この観点は、DeepSeek や Gemini 向けに書いたプロンプトにもそのまま当てはまります。能力強調型の文言が残っていれば、同様に削減候補です。

まとめ

  • 「優秀な」「エキスパートの」という能力ブースト型ペルソナは、現行モデルでは無効。削ってよい
  • 視点・ドメイン・行動制約を運ぶ役割設定は、今も有効で公式も推奨
  • 判定基準は「削って挙動が変わるかどうか」
  • 最新世代では強圧的な文言や詳細手順の列挙がむしろ逆効果。ジョブ定義+制約+ゴールに絞る
  • 小型モデルだけは明確な枠付けの恩恵が大きいが、効くのは具体的指示であってお世辞ではない

「役割を与える」習慣そのものを捨てる必要はありません。捨てるべきは、モデルへのお世辞だけです。


おまけ:競馬・競輪×AIの実践はこちら

本記事で触れた「検証可能な制約付きのジョブ定義」は、競馬・競輪の分析プロンプトで実際に運用しているものです。AIを使った馬券・車券戦略の試行錯誤は、それぞれ以下で公開しているので、興味があればのぞいてみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?