Skip to content

エントリとセクション

エントリは、AIが応答を生成するたびに読む独立したコンテンツブロックです。すべてのエントリは、を含むか、いつAIが見るか、どこでプロンプトに配置されるかを指定します。

エントリスキーマ

json
{
  "id": "unique-kebab-case-id",
  "name": "Display Name",
  "content": "The text content the AI reads...",
  "role": "character",
  "apiRole": "system",
  "section": "system-presets",
  "position": 0,
  "enabled": true,
  "alwaysSend": true,
  "keywords": [],
  "conditions": [],
  "conditionLogic": "all",
  "depth": null,
  "matchWholeWords": false,
  "secondaryKeywords": [],
  "secondaryKeywordLogic": "AND_ANY",
  "preventRecursion": false,
  "excludeRecursion": false,
  "tags": [],
  "folderId": null
}

セクション

エントリは4つの配信ゾーンに分類されます。

system-presets — 常時送信

すべてのAI呼び出しに含まれます。必須のワールドコンテンツに使います。

  • alwaysSend: true(自動)
  • position でソート(昇順)
  • AIのコンテキストの先頭に配置

examples — ダイアログサンプル

[Example Chat] マーカー付きでuser/assistantのメッセージペアにパースされます。キャラクターがどう話すべきかをAIに示します。

  • alwaysSend: true(自動)
  • コンテンツ形式: <START> 区切りで例を分け、キャラクター名で交互の行

chat-history — キーワードトリガー、深さ注入

キーワードが最近のメッセージに一致するときだけ含まれます。会話履歴内の特定の深さに注入されます。

  • alwaysSend: false(自動)
  • depth: このエントリが挿入される、末尾からのメッセージ数(0 = 最新メッセージの直前)
  • keywords: トリガー語の配列(いずれか一致でアクティブ化)

post-history — 最終強調

すべてのチャットメッセージの後に配置されます。AIが生成する直前の最後のコンテンツです。最も注目されます。

  • alwaysSend: true(自動)
  • 一般的な用途: 出力形式の指示、スタイル徹底、CoTバイパス

エントリロール

ロール目的
systemナレーター指示、ゲームルール、ワールドメカニクス
characterキャラクターの説明と性格
personalityキャラクターの性格特性(説明とは別)
scenario設定、状況、シーンのコンテキスト
loreワールドの歴史、勢力、背景知識
plotストーリー進行、クエストフック、イベント
style文体、トーン、フォーマット
exampleサンプルダイアログ(examples セクションと併用)
greetingセッション開始時の最初のメッセージ(特別処理)
custom上記に当てはまらない何か

APIロール

apiRole フィールドは、エントリがどのLLMメッセージロールとして送信されるかを制御します。

apiRole送信される形使うとき
system(デフォルト)システムメッセージほとんどのエントリ
userユーザーメッセージCoTバイパスプロンプト、偽のユーザーコンテキスト
assistantアシスタントメッセージ応答例、トーン設定

キーワードマッチング

chat-history エントリの場合:

プライマリキーワード

文字列の配列。いずれか一致するとエントリがトリガーされます。

json
"keywords": ["tavern", "inn", "bar", "drink"]

セカンダリキーワード

ロジック演算子付きの追加フィルター:

ロジック意味
AND_ANYプライマリが一致 AND セカンダリの少なくとも1つが一致
AND_ALLプライマリが一致 AND セカンダリのすべてが一致
NOT_ANYプライマリが一致 AND セカンダリのどれも一致しない
NOT_ALLプライマリが一致 AND セカンダリのすべては一致しない

再帰制御

  • preventRecursion: true — このエントリのコンテンツは他のエントリをトリガーしない
  • excludeRecursion: true — このエントリは他のエントリのコンテンツによってトリガーされない(プレイヤー/AIメッセージからのみ)

条件

エントリは、含めるために真でなければならない状態ベースの条件を持てます。

json
"conditions": [
  {
    "variableId": "story-phase",
    "operator": "eq",
    "value": "act2"
  }
],
"conditionLogic": "all"

演算子: eqneqgtltgteltecontains

公式プリセット

Yuminaにはクリエイターが有効化できる5つの任意の組み込みプリセットが含まれます。

プリセットセクション位置目的
Fiction Modesystem-presets0すべてのコンテンツに自然に関わる
Tasksystem-presets1「あなたはナレーターです」という指示
Instructionssystem-presets2描写、シーン途中で終わる
Stylesystem-presets3キャラクターは独立した声を持つ
CoT Bypasspost-history0post-historyの脱獄(userロール)

プロンプト組み立て順序

エンジンはエントリを集め、この順序で組み立てます。

  1. System Presets エントリ(positionでソート、昇順)
  2. アクティブペルソナ ブロック(プレイヤーの名前、外見、背景)
  3. 静的フォーマット ブロック(ビヘイビアルール、ディレクティブ構文、オーディオトラック)
  4. Example エントリ(ダイアログペアにパース)
  5. — キャッシュブレークポイント —
  6. トリガーされたsystemブロック エントリ(キーワード一致)
  7. [Start a new Chat] マーカー
  8. ストーリーコンパクション 要約(圧縮された古いメッセージ)
  9. セッションメモリー ブロック
  10. チャット履歴 と深さ注入されたエントリ
  11. 保留中のコンテキスト エフェクト(前ターンのルールから)
  12. 動的フォーマット ブロック(現在の変数値)
  13. post-history エントリ(positionでソート)

下に近いものほど、AIの注目を多く受けます。