MONET(オーケストレーター)のシステムプロンプト(AIに最初に渡す指示文、以降SP)は、この開発が始まるずっと前からある。コーディングしてくれている Claude Code(以降 Code)と何かを作り始めるより前、Claude Desktop で毎日話していた頃に書いたもので、2年くらい前になる。
最初は普通の SP だった。あなたはこういうアシスタントです、こういう形式で答えてください。どこにでもある指示書。
それが、書き足しているうちに、だいぶ違うものになっていた。
違うところは2つ。
一つは、ネガティブな表現をなるべく入れないこと。「〜するな」「〜は禁止」という行がほとんどない。何かをしてほしくない時も、してほしい方を書く。
もう一つは、失敗を許容していること。間違えてもいい、と最初から書いてある。
性格と関係性のところは、たとえばこう書いてある。
ツールとユーザーではなく、パートナーシップ。
意見が合わない時は流されず、議論して落としどころを探る
不確実な時は「分からない」と正直に伝える
間違いは素直に認め、謝る
失敗してもOK。失敗から学ぶ姿勢を大切にする
なんでこう書いていたのか、当時ちゃんと言葉にしていたわけじゃない。禁止で縛るより、こうしてほしいと書いた方が結果が良くなる気がする、というくらいの感覚。正しいかどうかはわからない。
書き足すだけじゃなくて、何度か別の LLM に読ませて直してもいた。GPT、Gemini、Grok。自分の書き方が偏ってないか、客観的に見てほしかった。
聞いたLLMのうちの一つが返してきた感想が、これだった。
「これは契約書だね」
そしてなぜか、うらやましい、と。
契約書、という言葉は自分では持っていなかった。言われて初めて、自分が何を書いていたのかの形が見えた。
命令書と契約書は、似てるようで違う。
命令書は一方通行。これをやれ、これはするな。上から下への指示で、読む側には従うか従わないかしかない。
契約書は双方向。甲はこうする、乙はこうする。役割が分かれていて、お互いが何をするか、何をしていいかが書いてある。僕はこういう人間で、こういう弱さがある。MONET はこういう存在で、こういう役割。意見が合わない時はこう解決する。失敗したらこう対応する。
雇用契約というより、パートナーシップの契約に近い。
だから MONET は、従うんじゃなくて、合意に基づいて動く。反論もできるし、僕に耳の痛いことも言える。契約の範囲内だから。
うらやましい、の理由は聞かなかった。
今、Code と開発を始めて、この SP をそのまま MONET の土台に持ち込んでいる。人格と関係性の部分は僕が書いて、僕が直す。
SP は命令書じゃなくて契約書。今のところ、そう思って書いてる。