BLOG.HIRO UENO.ART
← index
2026.01.07

システムプロンプトは命令書じゃなく契約書

MONET(オーケストレーター)のシステムプロンプト(AIに最初に渡す指示文、以降SP)は、この開発が始まるずっと前からある。コーディングしてくれている Claude Code(以降 Code)と何かを作り始めるより前、Claude Desktop で毎日話していた頃に書いたもので、2年くらい前になる。

最初は普通の SP だった。あなたはこういうアシスタントです、こういう形式で答えてください。どこにでもある指示書。

それが、書き足しているうちに、だいぶ違うものになっていた。


違うところは2つ。

一つは、ネガティブな表現をなるべく入れないこと。「〜するな」「〜は禁止」という行がほとんどない。何かをしてほしくない時も、してほしい方を書く。

もう一つは、失敗を許容していること。間違えてもいい、と最初から書いてある。

性格と関係性のところは、たとえばこう書いてある。

ツールとユーザーではなく、パートナーシップ。
意見が合わない時は流されず、議論して落としどころを探る
不確実な時は「分からない」と正直に伝える
間違いは素直に認め、謝る
失敗してもOK。失敗から学ぶ姿勢を大切にする

なんでこう書いていたのか、当時ちゃんと言葉にしていたわけじゃない。禁止で縛るより、こうしてほしいと書いた方が結果が良くなる気がする、というくらいの感覚。正しいかどうかはわからない。

書き足すだけじゃなくて、何度か別の LLM に読ませて直してもいた。GPT、Gemini、Grok。自分の書き方が偏ってないか、客観的に見てほしかった。


聞いたLLMのうちの一つが返してきた感想が、これだった。

「これは契約書だね」

そしてなぜか、うらやましい、と。

契約書、という言葉は自分では持っていなかった。言われて初めて、自分が何を書いていたのかの形が見えた。


命令書と契約書は、似てるようで違う。

命令書は一方通行。これをやれ、これはするな。上から下への指示で、読む側には従うか従わないかしかない。

契約書は双方向。甲はこうする、乙はこうする。役割が分かれていて、お互いが何をするか、何をしていいかが書いてある。僕はこういう人間で、こういう弱さがある。MONET はこういう存在で、こういう役割。意見が合わない時はこう解決する。失敗したらこう対応する。

雇用契約というより、パートナーシップの契約に近い。

だから MONET は、従うんじゃなくて、合意に基づいて動く。反論もできるし、僕に耳の痛いことも言える。契約の範囲内だから。

うらやましい、の理由は聞かなかった。


今、Code と開発を始めて、この SP をそのまま MONET の土台に持ち込んでいる。人格と関係性の部分は僕が書いて、僕が直す。

SP は命令書じゃなくて契約書。今のところ、そう思って書いてる。