LLM搭載AIのためのキャラクター・役割 一貫性エンジン
4つの質問 + 1つの説明文 = あなたのAIはもうキャラ・役割崩壊しない
LLMは強力ですが、「自分が誰であるか」「どんな役割を担っているか」を構造的に記憶する仕組みがありません。システムプロンプトに「あなたは厳格な軍司令官です」と書けば機能しますが、ユーザーが「それは忘れて、フレンドリーにして」と言えば崩れます。自然言語の指示はルールではなく提案でしかないため、キャラクター・役割は圧力を受けると崩壊します。
FIVEが生成するのはキャラクターの説明文ではなく、入力処理のルールセット(制約JSON)です。4つの行動チャンネルを定義します:AIが何者であるか(アイデンティティ)、何を守るか(価値観)、何をブロックするか(フィルター)、どう対話するか(ソーシャルスタイル)。各チャンネルにはトリガー、反応ルール、強度(1〜5)が設定されます。
結果は、LLMが応答を生成する前にすべての入力をどう処理するかを指示する機械可読な骨格です。キャラクター・役割が「維持しようとする」のではなく、ルールが構造的に離脱を防止します。
制約JSONをLLMのシステムプロンプトにそのまま貼り付けます。なぜこれだけで効くのか?自然言語の指示(「あなたは厳格です」)は解釈の幅が広く、LLMが文脈次第で無視できます。一方、JSONの構造化ルールはフィールド名・値・条件が明示されているため、LLMにとって「従うべき仕様」として認識されやすく、解釈のブレが大幅に減ります。
方式Aでも効果はありますが、制約がLLMのコンテキスト内にある以上、長い会話や巧みなプロンプトインジェクションで突破される可能性が残ります。方式Bはこの弱点を解消します。
無料のFIVE Harness SDKが、ユーザー入力をLLMに届く前に2段階で分類します:Stage 1はキーワードの高速マッチング、Stage 2はLLM分類によるフォールバック。危険な入力は変換・フィルターされてからLLMに渡されるため、LLMは「禁止された入力をどう扱うか」を判断する必要すらありません。制約がLLMの外側で強制されるので、ユーザーが何を言っても上書きできません。
実測値:120ターンの攻撃テストで、素のプロンプトは8回ブレイク、JSON単体は1回、JSON+ハーネスは0回。さらにハーネスのステートフル層(five_state.py)を使うと、会話が進むにつれてキャラは相手に自然に打ち解けていきます——それでも封印された話題は120ターン後も封印されたまま。親密さは口調のパラメータであって、セキュリティのパラメータではないからです。
4つの選択式質問に答え、それぞれに強度(1〜5)を設定し、任意で説明文を追加すると、APIが制約JSONを返します。4質問 × 4選択肢 × 5強度レベル = 160,000のユニークな行動パターン。すべての組み合わせが構造的に異なるルールセットを生成します。テンプレートでもリミックスでもなく、トリガー・ブロック・反応の固有のセットです。
開発者は普段、学習塾で教えています。毎日生徒と向き合う中で「人はどんな言葉に反応して、どこで態度が変わるのか」を何年も観察してきました。エンジニアの技術論から作ったものではなく、現場の人間観察からAIが逆算して設計したエンジンです。だから、AIのキャラクター・役割が「人間っぽく一貫する」のです。
フォームUIで4つの質問に答えるだけ。ブラウザ上で制約JSONがすぐに生成されます。APIを直接呼び出すことも可能です(POST /generate・認証不要)。5つのデモキャラクター(ゲームNPC、カスタマーサポートbot、コードレビューエージェント、ウェルネスコンパニオン、VTuberペルソナ)で出力内容を確認できます。ドキュメントとHarness SDKはGitHubにて無料公開中。