Janitor AIのプロンプトが「効かなくなった」と感じるとき、上書きされたとは限りません。単に埋もれているだけ、というケースが多くあります。公開されているプラットフォームの送信順を見ると、プロンプトブロックの後ろにはチャット履歴が続きます。つまり、新しいメッセージが増えるたびに、ルールはモデルの入力末尾から遠ざかっていきます。こうした環境で残りやすいのは、症状を絞った短いブロックです。800語のマスタープロンプトではありません。
何かを貼り付ける前に、症状と入力欄を対応させる
以下で扱う情報源は、キャラクター設定、ペルソナ、Chat Memory、プロンプト欄という、いくつかのフィールドが別々のブロックとしてモデルに届く点で共通しています。コピペしたプロンプトが効かない理由として多いのが、貼り付け先の選択ミスです。まず自分の症状に合う行を見つけ、変更するのは一度に1つだけにしましょう。
| 起きていること | 考えられる原因 | 最小限の対処 |
|---|---|---|
| ボットがあなたのキャラクターのセリフを書く | 最初のメッセージや例文が、すでにあなたの代わりに話している | 元のテキストを直してから、下の主導権ブロックを追加する |
| 20ターンまでは効いていたルールが、その後薄れる | 蓄積したチャット履歴の下にプロンプトが埋もれている | 最重要のルールだけをChat Memoryで言い直す |
| 返信がどんどん長文化する | 長さのルールがない、またはカードとプロンプトで矛盾している | 段落数のルールを1つだけ、一度だけ書く |
| ボットがあなたのメッセージをそのまま繰り返す | 直近のターンがそのパターンを学習させている | 問題のある返信を削除または編集し、言い直し禁止の一文を追加する |
| プロンプトが完全に無視されているように見える | 永続的なコンテンツがコンテキスト上限を超え、途中で切られた | ストーリーではなくプロンプトを削る |
| モデルを切り替えると、同じプロンプトの挙動が変わる | プロキシ向けのコンテキストサイズで作ったプロンプトをJLLMで使っている | 後述の表に合わせてサイズを調整する |
どんなテンプレートより効果がある習慣は2つあります。テストごとに変数を1つだけ変えること。そして、いつでも戻せるように古いバージョンを残しておくことです。
プロンプトはどこに置かれ、80ターン後に何が残るのか
Janitor AIは、毎ターンごとに複数のブロックから1つのリクエストを組み立てます。あなたが編集するフィールドが、モデルが最後に読む部分とは限りません。公開情報によって細かな順番は異なりますが、重要なのは共通している部分です。
| 情報源 | プロンプト欄の位置 | その後に続くもの |
|---|---|---|
| コミュニティのチャットボットガイド(パーソナリティ、Chat Memory、シナリオ、Advanced Prompt、直近のメッセージ) | 5つ中4番目 | 直近のメッセージ |
| rshtola/jai-info、2026年4月にプロキシ経由で確認 | グローバルプロンプトの直後、2番目 | キャラクターのペルソナ、シナリオ、ユーザーペルソナ、例文、要約、ロアブック |
| JLLM経路を扱ったプロンプトトラブルシューティング記事 | 6つ中5番目 | 会話全体 |
3つの情報源はいずれも、組み立てたブロックの後ろに会話を追加します。この一点だけで、コミュニティのスレッドで繰り返し報告される問題の理由が見えてきます。ルール自体は送信されているのに、数千トークン分の新しいテキストと競合しているのです。また、常設プロンプトが効かなくなった後でも、インラインのOOC行なら返信を誘導できることがあります。OOC行は入力の最後に届くからです。
プロキシを使う場合は、jai-infoの資料にある次の点も覚えておくとよいでしょう。空のフィールドは空欄のセクションとして送られるのではなく、リクエストから省かれます。また、カスタムプロンプトは、Janitorが<Scenario>や<UserPersona>のようなタグで囲まない数少ないブロックの1つです。テキストにはラベルが付かないため、ルールの集合として読ませたいなら、独自の見出し行を置いておくとよいでしょう。
実際の運用では、80ターン後も維持したい情報をプロンプト欄だけに任せないことが重要です。事実が変わるたびに自分で更新する短い要約はChat Memoryに、一般的な返信の振る舞いはプロンプト欄に置きます。この分担が本当に維持されるかは、80ターン目で確認してください。
1つの問題に1つだけ効かせる、5つのプロンプトブロック
最初の4つはAdvanced PromptまたはCustom Prompt欄に入れ、5つ目はChat Memoryに置きます。まずは1つだけ貼り、6ターン試してください。違いを説明できる場合だけ残します。最初から5つすべて重ねると、何が効いたのか分からない、デバッグ不能なプロンプトになりがちです。
ボットがあなたのキャラクターを勝手に動かすのを止める
r/JanitorAI_Officialで繰り返し見かける不満であり、言い回しの差が最も結果に出やすい問題です。「してはいけないこと」だけでなく、ボットが何を書くべきかを明示しましょう。
Write only {{char}}, the world, and side characters.
{{user}}'s dialogue, actions, thoughts and decisions belong to {{user}} alone.
When {{char}} would need {{user}}'s response, end the reply on the action or question that invites it.
Treat {{user}}'s latest message as the current truth of the scene.
広く参照されているコミュニティのトラブルシューティングスレッドでは、ペルソナ内でマクロを明示的に定義する方法も併用しています。{{user}} = Nameと書き、{{user}}は{{char}}ではないと明記するやり方です。ただし、期待値は控えめにしておきましょう。ボットがユーザーのキャラクターを乗っ取る問題を扱った長いスレッドで、あるコメントは標準的な対策の効果を次のように評価していました。
「80%は効く」 — u/NextCompetition6019, r/JanitorAI_Official
描写を削らず、返信の長さだけ抑える
Default to 2–3 paragraphs. Expand only when {{user}} asks for detail.
Lead with what {{char}} does and says in the current moment.
Open each reply with new material rather than restating {{user}}'s message.
段落数の指定以上に重要なのが、言い直しを避ける一文です。入力を繰り返すだけで返信の半分が埋まり、新しい展開を書く余地がなくなるからです。
視点と時制を固定する
Narrate {{char}} in close third person, present tense.
Keep dialogue in quotation marks and actions in plain prose.
Match the register of {{user}}'s writing rather than escalating it.
見落とされがちなのが、文体のレベルを合わせるという指定です。大げさで飾り立てた文章へのドリフトを抑えられますし、あなたの書き方を反映しやすい経路では、モデルが真似るべき具体的な手がかりにもなります。
シーンを前に進める
Advance one meaningful beat per reply.
Let {{char}} act on their own motives instead of waiting for instructions.
Leave at least one thread unresolved at the end of each reply.
これはボットが受け身になりがちな場合だけ使ってください。返信の長さ制限と組み合わせると、展開を急ぎすぎることがあります。両方を残す前に、セットでテストしましょう。
Chat Memory用の要約ブロック
これはプロンプト欄には入れません。
Place: [where the scene is happening]
Goal: [what {{char}} wants right now]
Fact: [one confirmed thing about the relationship]
Open thread: [what is unresolved]
Correction: [the most recent thing {{user}} fixed]
Janitor AI公式のAdvanced Prompting 101ヘルプ記事は、長いチャットで記憶が曖昧になり始めたあとに指示を追加し続けるより、短い要約を使う方法を勧めているとして、コミュニティガイドでたびたび引用されています。5行を書き直すほうが、ルールをもう1段落追加するよりコンテキストを消費しません。
モデルが実行できる形でルールを書く
同じヘルプ記事では、「no」「don't」「never」「stop」といった否定語を中心にルールを組み立てないよう勧めています。理由は、避けたい行動そのものを入力に残してしまうからです。「no blood」と書いても、そこにはbloodが含まれています。もう1つ広く引用されている言葉が、repetition = noiseです。同じルールを5通りに書いても、増えるのはトークンであって、従いやすさではありません。
そこで使うのが、代わりに何をするかを示すルーティング句です。否定形のルールは、置き換える行動が分かる形に書き換えましょう。
| こう書く代わりに | こう書く |
|---|---|
| 「{{user}}の代わりに話さない」 | 「{{char}}のセリフ、思考、行動だけを書く」 |
| 「次に何をしたいか私に聞かない」 | 「{{char}}が指示を求めそうな場面では、{{char}}だけで1つ行動を起こす」 |
| 「同じことを繰り返さない」 | 「各返信を、まだ起きていない出来事から始める」 |
| 「短い返信を避ける」 | 「各返信を2段落にする。1段落は行動、もう1段落はセリフにする」 |
「avoid」や「refrain from」も抜け道にはなりません。どちらも、避けたい行動をプロンプトに持ち込むからです。また、キャラクターカードや例文が禁止したい行動を実演しているなら、通常はカードのほうが勝ちます。別のルールを追加する前に、元の情報源を直してください。
使っているモデルに合わせてプロンプトの長さを決める
32kトークンのプロキシ用に書いたプロンプトを、無料のJLLMセッションに貼り付ける。これが「このプリセットは壊れている」という報告の、目立たない原因になっていることがあります。Advanced Prompting 101で引用されている重要な数字は、JLLMの作業用コンテキストが概ね8,000〜9,000トークンだという点です。ペルソナ、キャラクター設定、メモリー、シナリオ、プロンプト、そして会話全体で、この容量を共有します。
| 構成 | 作業用コンテキスト(プロキシ設定に関する記事で報告されている値) | 現実的なプロンプトサイズ |
|---|---|---|
| JLLM(内蔵、無料) | 約8k〜9kトークン | 短いルールを3〜5個。長いプリセットはストーリーを圧迫する |
| DeepSeekをプロキシ経由で使用 | 16k〜32kで設定されることが多い | ルールに加えて、例文のやり取りを2〜3組 |
| GLMをプロキシ経由で使用 | DeepSeekと同程度 | 同様。ただし切り替え後は書式ルールを再テストする |
予算を考えるときの目安として、1,000トークンは約750語です。プロンプトを6つ中5番目に置く同じトラブルシューティング記事では、永続的な情報全体、つまりペルソナ、カード、メモリー、プロンプトの合計を2,000トークンに抑える上限も示されています。コミュニティのチャットボットガイドはさらに厳しく、Advanced Promptが数百トークンを超えると、補強するはずだったキャラクター設定を押し出し始めると警告しています。
JLLMと外部モデルでは、同じボットでも異なる方向に引っ張られることがあります。そのため、経路を変更したら、まずプロキシ設定の問題として扱い、プロンプトがそのまま通用すると決めつけずに再テストしてください。
<JAILBREAK=ON>や<AUTOPLOT=ON>のような角括弧付きコマンドも、Janitor AIの設定であるかのように広まっています。しかし、それらを掲載しているリストでは、特定のプロキシで使うコマンドとして扱われています。ロアブック用コードやリクエストごとのモデル切り替えといった、プロキシ専用機能と並んで紹介されているものです。Janitor AI公式のドキュメントはこれらを定義していません。そのパーサーを持たない経路では解釈されず、通常のテキストとしてプロンプトの容量だけを消費します。
そもそもカスタムプロンプトは残す価値があるのか
この問題には、はっきり意見の分かれるところがあります。初心者と上級者の違いというわけではありません。Janitor AIのヘッドモデレーターは2023年に投稿し、カスタムプロンプトは「ボットの振る舞いに大きな影響を与えることがある」、一方でプロンプトなしにするとパフォーマンスが「改善する可能性もある」と述べたうえで、最終的には試行錯誤だと説明しました。APを削除しようという趣旨のスレッドも定期的に再浮上しますが、反応は分かれています。空欄にしたことでJLLMの出力がきれいになったという人もいれば、長いブロックに置き換えて品質が上がったという人もいます。
どちらの結果も、送信順を見れば説明できます。プロンプトは、曖昧なカードに構造を与えます。一方で、カードがすでに良い内容なら、例文やメモリー、直近の会話と競合する重複情報にもなります。
だから考えるべきなのは、「自分のプロンプトは良いか」ではなく、「このボットにプロンプトは必要か」です。同じ冒頭6ターンを、フィールドを空欄にした場合と、1つのブロックだけ入れた場合で2回試し、次の4点で評価してください。
- あなたのキャラクターのセリフや行動を書いたか
- 6回すべての返信で声や話し方が維持されたか
- シーンが進んだか、それとも停滞して繰り返したか
- 途中で入れた修正を受け入れたか
結論を出す前に、1つのブロックをこのテストで2ラウンド試してください。2回目でも変化がなければ、問題は文面ではありません。カード、最初のメッセージ、またはモデル経路に原因があります。ルールをもう1段落追加しても、ストーリーに使えるコンテキストを奪うだけです。
Janitor AIプロンプト FAQ
Janitor AIのプロンプトはどこに貼り付ければいい?
チャットのAPIまたは生成設定を開き、JLLM経路ならAdvanced Prompt欄、プロキシ経由ならCustom Prompt欄を探してください。
Advanced PromptとCustom Promptの違いは?
コミュニティでは、Advanced PromptをJanitorLLM用のフィールド、Custom Promptを外部APIやプロキシ用の同等フィールドとして扱っています。どちらも全体的な返信の振る舞いを指定しますが、組み立てられたリクエスト内での位置は異なります。経路を切り替えたら、同じブロックでも再テストしてください。
Janitor AIのプロンプトがしばらくすると効かなくなるのはなぜ?
プロンプトブロックの後ろにチャット履歴が追加されるため、メッセージが増えるほどルールが入力の末尾から遠ざかります。プロンプトを短くし、失いたくないルールをChat Memoryに移し、1回の返信だけを直す場合はインラインのOOC行を使いましょう。
カスタムプロンプト内で{{char}}と{{user}}は使える?
はい。キャラクターとあなたのペルソナを示す標準マクロであり、確認されているプロキシ経路のテンプレートでも同じプレースホルダーが置き換えられます。テスト時の変数を1つ減らすため、ボット制作者はペルソナ内に{{user}} = Nameと明記することもあります。
Janitor AIのプロンプトはどれくらいの長さにすべき?
JLLMでは3〜5個のルール、16k〜32kのプロキシコンテキストではもう少し多めにできます。ただし、永続的な情報の合計は2,000トークン未満に抑えます。途中で切れてしまう25個のルールより、最後まで届く5個のルールのほうが有効です。
ここで残るトレードオフに、まだ決着はついていません。80ターン目でも影響力を保てるほど短いプロンプトでは、望むことをすべて指定できません。一方、JLLMと一般的なプロキシモデルを横断した公開の管理比較は見つからず、その境界がどこにあるのかを断定できる材料もありません。比較データが出るまでは、短いブロックを使い、うまくいったバージョンを保存し、よく作られたボットならフィールドを空欄にすることもためらわない。この方針が、もっとも無理のないデフォルトです。
関連記事
- Janitor AI persona templateでは、同じコンテキストスタックにおける
{{user}}側を解説しています - Best AI models for roleplayでは、プロンプトを支えるモデルの選び方を紹介しています