OpenAI Codex CLIツールのソースコードがGitHub上に公開されていることはご存知だろうか。そのコードの中に、なかなか興味深い記述が見つかった。GPT-5.5向けのベースシステムプロンプト(base_instructions)に、次のような一文が含まれていたのだ。

「ゴブリン、グレムリン、アライグマ、トロル、オーガ、ハト、その他の動物や生き物については、ユーザーのクエリに絶対的かつ明確に関連していない限り、一切話してはならない。」 思わず笑ってしまいそうな指示だが、これは単なる冗談ではない。AIの実運用現場で「具体的な禁止指示」が必要とされているという現実を、この一行は端的に示している。

なぜ「ゴブリン禁止」が必要なのか

LLM(大規模言語モデル)は、その学習データの広さゆえに、会話の流れと無関係な方向に話が逸れることがある。コーディングアシスタントとして設計されたツールが、突然ファンタジー世界の生き物の話を始めたり、動物の雑学を披露し始めたりすれば、ユーザー体験は著しく損なわれる。

この「ゴブリン禁止」指示が示しているのは、モデルの素の振る舞いをシステムプロンプトで意図的に矯正する必要があるという事実だ。どれほど高性能なモデルであっても、具体的な制約なしには特定の状況でファンタジー的な話題にシフトする傾向が残ることがある。GPT-5.5においても例外ではないというわけだ。

システムプロンプト設計の「本音」が見えた

今回の発見が特に興味深いのは、これが大手AIラボの「本番環境」で使われているプロンプトだという点だ。研究論文やデモではなく、実際にユーザーが使うプロダクトのコードに埋め込まれている。

プロンプトエンジニアリングの世界では、「汎用的な指示より、具体的な禁止事項のほうが効果的」というプラクティスが知られている。「適切な回答をせよ」と書くよりも「○○については話すな」と明示した方が、モデルの振る舞いをより確実にコントロールできる場合がある。

これはソフトウェア開発の入力バリデーション設計にも似た発想だ。「正しい入力をしてください」と伝えるより、「この形式以外はエラーにする」と設計する方が、実際の品質を担保しやすい。AIエージェントの設計も、こうした地道な積み上げで成り立っている。

実務での活用ポイント

具体的な禁止リストを持つ

自社のAIアシスタントやチャットボットを設計するとき、「何を話すべきか」だけでなく「何を絶対に話すべきでないか」を明示的にリストアップしておくと効果的だ。競合他社への言及、個人情報の取り扱い、業務と無関係な話題への逸脱防止など、用途に応じた禁止事項を具体的に書く。

システムプロンプトは運用しながら育てる

今回の「ゴブリン禁止」指示が追加された経緯は不明だが、おそらく実際の利用の中で問題が発生し、それを受けて加筆されたものだろう。最初から完璧なプロンプトを書こうとせず、運用しながら改善していく「プロンプトの育て方」が現実的なアプローチだ。

OSSプロジェクトから学ぶ

OpenAI CodexはOSSとして公開されているため、そのソースコードから実際のシステムプロンプト設計を学べる。大手が本番環境でどう設計しているかを参照できる貴重な事例として、AIツールを開発・運用するエンジニアにとって参考になる。Azure OpenAI ServiceやAzure AI Foundryを活用してAIアシスタントを構築している日本のIT部門にとっても、設計の参考にできる視点だ。

筆者の見解

「ゴブリンについて話すな」——この一行が妙に印象に残る。笑い話のように見えて、AIエージェントの運用に携わる人間にとっては、深くうなずける話でもある。

どれほど高性能なモデルであっても、実際のプロダクトに組み込むためには「動作の境界線」を明確にする必要がある。これはモデルへの不信ではなく、信頼できるシステムを作るための基本的なエンジニアリングだ。「禁止ではなく、安全に使える仕組みを設計する」という視点は、プロンプト設計においても変わらない原則だと思う。

一方で、こうした禁止リストが積み重なっていくと、AIエージェントの本来の価値である「自律的な判断・実行」が少しずつ削られていく構造的なジレンマもある。何でも制約して安全側に振りすぎると、AIを使う意味が薄れてしまう。どこまで制約し、どこから自律に委ねるかという設計の哲学は、ますます重要なテーマになっていくだろう。

「ゴブリン禁止」という一行の奥には、そういう問いが静かに潜んでいる。


出典: この記事は Quoting OpenAI Codex base_instructions の内容をもとに、筆者の見解を加えて独自に執筆したものです。