
この内容は、Claude 4の流出したとされるシステムプロンプトから学んだ7つのプロンプト戦略について解説したものである。主な戦略は、アイデンティティの事前確立、トリガーとテンプレート拒否、3段階の不確実性ルーティング、正負の例を含むツール文法の固定、主観的ガイドラインではなく二進的スタイルルール、重要な指示の位置的強化、ツール使用後の振り返りである。核心的な洞察は、モデルに何をすべきかを指示することから、失敗モードを防ぐポリシーを構築することへの転換である。
4,665 文字

これまでこのようなことはしたことがありませんでした。実際に、Claude 4の流出したとされるシステムプロンプトを研究して学んだことを分析してご紹介します。
過去にこの話題を取り上げなかった理由は、システムプロンプトの流出という考え方について非常に複雑な気持ちを抱いているからです。せいぜいグレーハット的な戦術です。これは常に起こっていることです。平均して、主要なモデルがリリースされてから48時間以内にシステムプロンプトが流出し、これがモデルの急速な普及を可能にしている要因の一部でもあります。
しかし、この件についてどう感じているかに関係なく、今日取り上げる理由は、このシステムプロンプトから学べることが非常に多いと思うからです。それが本物かどうかは関係ありません。もちろんモデル制作者は決してそれが本物かどうかを検証しませんし、私もそれが本物かどうかは気にしません。私が関心を持っているのはプロンプトの構造であり、この動画の説明欄にリンクを貼っておきます。
このプロンプトの重要なポイントは、プロンプトをモデルに何かをするよう指示するものという考え方から、失敗モードを防ぐポリシーを構築するものという考え方への転換です。
もしかすると、それはモデルのシステムプロンプトには適用できるかもしれないと思われるかもしれません。APIを使用している場合には意味があるかもしれません。でも、なぜチャットをするオペレーターとして私が気にする必要があるのでしょうか。実際には、あなたも大いに気にする必要があると思います。なぜなら、結局のところ、あなたも品質の高い出力を求めているからです。
ほとんどの人は、モデルに何をしてもらいたいかに80%の労力を費やし、せいぜい20%の労力しかモデルに何をしてもらいたくないかに費やしません。
このClaude 4のプロンプトは基本的にその逆です。Claudeがすべきでないことが90%で、すべきことが10%のようなものです。そして、私がプロンプト内で見つけた7つの異なる戦術について説明したいと思います。繰り返しますが、これにリンクを貼りますので、興味があれば全体のプロンプトを見ることができます。300行余り、1万語ほどあります。
第一に、このプロンプトはアイデンティティと変わらないことを事前に実体化します。つまり、具体的な事実から始まります。これがこのモデルのアイデンティティです。これが現在の日付です。これがコア機能です。安定した着実なコンテキストを早期に確立することで、作業メモリの負担を軽減するという考え方です。これはハックというよりも、優れた指導設計なのです。
第二に、トリガーとテンプレート拒否です。これは、エッジケースを処理する明示的なif X then Yの条件ブロックです。このプロンプトがエッジケースに注ぐ注意深さは、それ自体がマスタークラスだと思います。曖昧さはこれらのモデルからの非一貫性につながります。一貫した動作を望むなら、明確である必要があり、エッジケースを詳しく説明する必要があります。
これは制限的になることではなく、明確になることです。このユースケースにはこれらの境界とこれらの明示的な条件があると言うことです。これは、プロンプティングにとって非常に強力な原則だと思います。
第三に、これについて非常に正確に言いますが、私はこれを3段階不確実性ルーティングと呼んでいます。基本的に、これはモデルが曖昧さをどのように処理するかについて非常に具体的な指示を与えます。他のプロンプトでこれを見たことはほとんどありません。
最初の回答、決定木の最初のステップは、これは永続的な情報です。直接答えてください。モノポリーの言葉で言えば、ゴーを通らず、100ドルを払わず。すぐに答えてください。第二に、それを緩やかに変化する情報として評価します。直接答えに加えて、検証を申し出ます。
そして第三に、それをライブ情報として評価します。おそらく今日の株価について尋ねているかもしれません。すぐに検索してください。ここでの教訓は、良いプロンプトには命令だけでなく決定基準が含まれているということです。どのようにではなく、いつかを決定するのを手助けする必要があります。これは特にエージェント型コミュニケーションにとって真実です。
エージェントに指導政策を与えている場合、この種の不確実性に対するルーティングは重要です。
第四に、私がロックツール文法と呼ぶものです。システムプロンプトでCloudのAPIを使用するようモデルに指示する際、正しい例と間違った例の両方を提供します。有効な関数呼び出し形式と明示的に無効な関数呼び出し形式があります。
反例を持つべきだと以前に指摘しましたが、これは本当にそれを強調しています。ツールや関数を使用している場合、API呼び出しを使用している場合、MCPサーバーを使用している場合、何であれ、正しいものと間違ったものの両方を示してください。これは、誰かに自転車の乗り方を教え、同時に人々が転ぶ一般的な方法、たとえば減速しすぎることなどを示すようなものです。
子供たちに自転車の乗り方を教えています。これがどのように機能するかを理解しています。要点は、否定的な例は強力だということです。それらは人々にとって強力な教育ツールです。そして、モデルにとっても強力な教育ツールであることが分かります。特に、ツールをうまく使用する方法をモデルに教えようとしている場合は特にそうです。
私たちが公に話し合ったプロンプティングの良い例で、これを行うものはほとんどありません。だからこそ、これは本当に重要だと思いますし、これが私がこのプロンプトについて話すことを決めた理由の一例です。ここには私たちが掴むべき多くの宝石があります。
第五に、7つのうちの5番目は、二進的スタイルルールです。主観的なガイドラインの代わりに、Claude 4のプロンプトは、それが気にかけることについて極めて規範的です。厳格なオン・オフルール。決してお世辞から始めない。これは「簡潔にせよ」という表現よりもはるかにオン・オフでハードコードされています。簡潔はモデルによって解釈可能です。決してお世辞から始めないは、はるかに二進的です。
モデルは絶対的なルールを処理します。「要求されない限り箇条書きなし」は、はるかに明確です。「要求されない限り絵文字なし」は、「書式設定を最小限に抑える」よりもモデルにとってはるかに明確です。だから、あなたのプロンプトがそれほど明確な場所にいてほしいのです。
ここでの要点は、あなたのプロンプトは曖昧な形容詞を持つべきではないということです。あなたが最も気にかけることについて極端な明確さを持つべきです。
第六に、位置的強化です。これは私たちが話し合う必要がある本当に興味深いテクニックです。この長いプロンプト全体を通して、重要な指示は戦略的な位置で繰り返されます。単に最初だけではありません。これもまた、めったに見ません。
プロンプトはこれらの制約を複数回繰り返します。これが機能するのは、長いコンテキストにわたって注意が劣化するからです。たとえば500トークンごとに強化する場合、重要なルールは何ですか。これは、この長いプロンプトを読むときにモデルに制限速度標識を与えるようなものです。これは1万語のプロンプトです。500トークンごとに読んでいます。ああ、そうだ、これを覚えておかなければならない。
これがどのように見えるかというと、メインの指示があり、プロンプト指示を含み続ける間に挟まれた内容があ、そして、ねえ、標識、つまり道標があります。顧客のPIIを例で決して使用しないことを覚えておいてください。より多くの内容が続きます。重要なリマインダー、すべてのPIIは匿名化されなければなりません。このように繰り返すことで、LLMのメモリにこれを位置的に強化するのです。
これもまた、人間が行うことでもあります。これは単に優れた指導設計です。それは繰り返し、人間とモデルの両方の記憶を助けますが、私たちがプロンプトでこれを行うのをめったに見ません。
最後の一つ。第七に、ツール後反映です。ツール使用後に組み込まれた思考の一時停止があります。これもまた、エージェントベースのものです。MCPサーバーやAPIを使用している場合、これはあなたに関連するでしょう。プロンプトには、関数結果の後に思考ブロックを出力することを強く検討するよう指示があります。
ツールの出力は常に解析しやすいとは限らないため、反映ステップは精度を向上させることができます。次に何をするかを理解するのに役立ちます。特に、これらの長いマルチステップのインターリーブされた推論とツール使用チェーンで有名なClaude 4にとっては特にそうです。
これは文字通りこのように見えます。Claude 4を使用している場合、次の動きを決める前に、得ているものを読むために時間を取りたいのです。
そして、そこでの要点は、それは恐らく私たちのプロンプティング全般にとって良い原則だということだと思います。その認知的チェックポイントを組み込んでください。単にツール出力を吐き出すだけにしないでください。それを処理し、考えるよう求めてください。
見てください、これはオペレーターとしてあなたが使用できるプロンプトに変換することもできます。これに固執して、遠くからClaudeプロンプトを称賛するだけである必要はありません。実際に自分で使用することができます。
私がここで得る教訓は、プロンプトをオペレーティングシステムとして理解することがもっと必要だということです。プロンプトは単なる呪文ではありません。魔法ではありません。LLMに何かをさせる魔法の言葉ではありません。それはOS設定ファイルのようなものです。それは、あなたが意図することについて極めて正確であることです。
そして、それにおいて防御的であることは構いません。幻覚、著作権問題、有害なコンテンツに対して、単にそれに手を振って進むのではなく、徹底的に対処することは構いません。そして、もしあなたがそれを行うなら、もしあなたがこれらのプロンプトを書くときに、ほとんどの同僚よりも防御的プログラミングについてより情熱的で、より気遣いがあるなら、あなたはより良い結果を得るでしょう、そしてそれは実際の価値に積み上がるでしょう。
私が持つ第三の要点は、オペレーティングシステム防御的プログラミング以外に、宣言的でありたいということです。最初にXをしてYをするのではなく、それをポリシーとして組み立てることができるかどうか見てください。もしXなら常にY。もしあなたがそれを行ったら、あなたのプロンプティングのどのくらいが変わるでしょうか。
ということで、以上です。プロンプトへの長い長い掘り下げでした。私はこれについてSubstackにも何かあります。これは素晴らしいユースケースだったと思います。繰り返しますが、この疑惑のプロンプトがどのようにして生まれたかについては複雑な気持ちを持っていますが、それは非常に有用です。とにかく学ぶ価値があります。そして、この会話の過程でそれを見ることができたことを願っています。


コメント