MemoryLake
すべての記事に戻る
Tutorial2026年9月14日·11 分で読了

文脈を失わずにSillyTavernのキャラクターカードをChatGPTに移行する方法 (2026)

キャラクターカードは一見、1つのドキュメントのように見えます。エディタを開くと、上から順に、名前、説明(description)、性格(personality)、シナリオ(scenario)、最初のメッセージ(first message)、例文(example messages)、そしていくつかの高度な設定ボックスが並んでいます。1つのファイル、1人のキャラクターです。

しかし、SillyTavern自身のドキュメントによると、これは1つのドキュメントではありません。寿命(ライフスパン)が大きく異なる2つの山の集まりであり、その境界線こそが、ChatGPTへの移行において実際に何を維持できるかを決定します。

実際に移行できるもの

SillyTavernの言葉を借りれば、分割は以下のようになります。一部のフィールドは、同ツールが「永続トークン(permanent tokens)」と呼ぶものです。「これらは、すべての生成リクエストにおいて常にAIに送信されます:キャラクター名、キャラクター説明ボックス、キャラクター性格ボックス、シナリオボックス。」

そして、そうではないものもあります。「最初のメッセージボックス - チャットの開始時に一度だけ送信されます」および「例文ボックス - チャット履歴がコンテキストを満たすまでのみ保持されます(オプションでこれらをコンテキスト内に強制的に保持することも可能です)。」

この2つ目の山こそが、通常、最も工夫が凝らされる場所です。最初のメッセージは、作者が口調や長さを設定する場所です。SillyTavernはこれを率直に説明しており、モデルは「他の何よりも最初のメッセージからスタイルや長さの制約を学習する可能性が高い」と指摘しています。例文は、会話のテンポやリズムを教える場所です。どちらも設計上「非永続的」であるとドキュメントに明記されており、移行先(ChatGPT)にそのまま対応する明確な場所はありません。

永続的な山は、簡単な方の半分です。説明、性格、シナリオは常に有効な文章であり、SillyTavernはその意味するところを明確にしています。「この情報は常にプロンプトに含まれるため、すべての重要な事実はここに含める必要があります。」ChatGPTのカスタム指示(Custom Instructions)も同様の構造をしています。OpenAIは、これを適用したい「明示的な情報や指示」を記述する場所と説明しています。この2つはほぼ正確に一致しており、コピー&ペーストでそのまま生き残るカードの部分です。

いくつかの要素はまったく移行できません。始める前に、どれがそれに該当するかを知おく価値があります。

制作者のメタデータは、そもそもモデルに届いていません。 SillyTavernは、「Created by(作成者)」、「Character Version(キャラクターバージョン)」、「Creator's Notes(制作者ノート)」、「Tags to Embed(埋め込みタグ)」のフィールドについて、「プロンプト構築には使用されず、キャラクターに関する追加のメタデータを提供するもの」と説明しています。もし制作者ノートに重要な意味を書き込んでいたとしても、モデルがそれを読んだことは一度もありません。移行する前に説明欄に移動させるか、あるいは最初から人間向けのものだったと割り切ってください。また、埋め込みタグは「キャラクターのインポート時にデフォルトではインポートされない」とも記載されているため、タグ構造はSillyTavernのインスタンス間であっても壊れやすいものです。

カードと一緒に移行できるロアブック(lorebook)は1つだけです。 SillyTavernはキャラクターへの「World Info(世界情報)」の紐付けをサポートしており、エクスポート時には「このファイルもキャラクターカードのデータに埋め込まれます」とされています。しかし、ドキュメントには「キャラクターと一緒にエクスポートされるのは、プライマリのWorld Infoファイルのみであることに注意してください」という制約が直接書かれています。シフトクリックで追加した他のロアブックや、ペルソナ紐付け、チャット紐付けのロアブックは、それぞれ異なるスコープを持つ別ファイルです。

キーワード起動はSillyTavernのエンジン機能です。 World Infoのエントリはキーワードによって起動しますが、SillyTavernは「起動キーワード、タイトル、およびContent(コンテンツ)フィールドにないその他の情報はコンテキストに挿入されない」と指摘しています。ChatGPTのドキュメント化されているパーソナライズ機能は、カスタム指示、メモリの要約、および従来の保存されたメモリです。そのドキュメントには、World Infoの起動に相当するキーワードトリガーの仕組みは記載されていません。エントリのテキスト自体は問題なく移行できますが、その起動条件は手動で再構築する必要があります。

プロンプトのオーバーライドは、SillyTavern内部でさえ条件付きです。 「Main Prompt(メインプロンプト)」と「Post-History Instructions(履歴後指示)」ボックスは、対応するユーザー設定(それぞれ「Prefer Char. Prompt」および「Prefer Char. Instructions」)が有効な場合にのみ機能します。他人が作成したカードにはこれらが記入されていることが多いですが、あなたの環境では静かに無効化されている可能性があります。

チャットログのエクスポートには、ドキュメント化された損失があります。 JSONLエクスポートが本命です。SillyTavernは、「すべてのメタデータを含むチャットを共有または移行するには、これを使用してください(ただし、画像や添付ファイルは除きます)」と説明しています。プレーンテキストのエクスポートは閲覧用のコピーであり、ドキュメントでは「重要なメタデータが失われるため、再度インポートすることはできません」と警告されています。

ローカルインストールではなくホスト型プラットフォームから移行する場合、Character.AIのキーワード制限付きエントリに相当する作業は、migrating Character AI Lorebooks to ChatGPT でカバーされています。この記事は、インポートドキュメントにおいて順序や位置の設定が除外されるものとしてリストされているストアを扱っています。本稿は、カード自体を保持するプラットフォームにおけるカードそのものについて解説します。

手動での移行手順

Step 1: フィールドの順序ではなく、寿命(ライフスパン)でカードを分割する

ChatGPTを触る前に、カードを開いて2つのリストに書き換えます。

常時有効リスト(The always-on list)。 説明、性格、シナリオのボックスにあるすべての内容です。これはSillyTavernが毎回の生成で送信するものなので、常に真実である前提で書かれています。特定のシーンにしか適用されない内容が含まれていないか確認し、それらを抽出してください。多くのカードでは説明欄にプロット(あらすじ)が書かれており、返信のたびに無駄なトークンを消費しています。

セットアップリスト(The setup list)。 最初のメッセージと例文です。これらは、セリフの仮面をかぶった「スタイル指示」です。これらを読み、文章で1つの問いに答えてください。「これらはモデルに、口調、長さ、ペース、フォーマットについて何を教えているか?」 その答えを文章として書き留めます。「返信は2〜4段落。行動は斜体、セリフは引用符で囲む。ユーザーの代わりに話してはならない。」 この段落こそが、例文ブロックを移植可能な形にしたものです。

ついでに、紐付けられているWorld Infoについても同様の作業を行い、キャラクターが実際にいくつのロアブックを使用しているかを確認してください。ペルソナ紐付けのエントリは、キャラクターに関係なくそのペルソナが選択されているときはいつでも起動します。チャット紐付けのエントリは、1つの会話内でのみ機能します。これらのスコープは移行先(ChatGPT)には存在しないため、言葉による単純な条件に変換する必要があります。

また、トークンに関する現実的な確認も行う価値があります。SillyTavernは「2048コンテキストトークン制限のAIモデルを使用している場合、1000トークンのキャラクター定義はAIの『記憶』を半分に減らす」と率直に述べています。ほとんどのカードは、移行先よりもはるかに厳しいトークン制限のもとで書かれています。そのため、カード内で行われている圧縮の一部はもはや不要であり、一部は(モデルにとって)読みづらいものになっています。

Step 2: ドキュメント化された機能を使ってChatGPTで再構築し、定着度を確認する

常時有効リストは「カスタム指示(Custom Instructions)」に入力します。想定よりも短く抑えるようにしてください。すべての返答で機能するため、これはSillyTavernの永続トークンと同じトレードオフになります。

セットアップリストは、サンプルの対話としてではなく、常時適用されるスタイルガイドとして入力します。サンプルの対話がSillyTavernで機能するのは、エンジンがそれを意図的な位置に配置するからです。チャットにそのまま貼り付けても、スクロールで流れていってしまう長いメッセージにすぎません。

条件付きのロア(設定)は、実際の選択肢が分かれる部分です。エントリを常時有効の山に昇格させることもできますが、これは単純な反面、何週間も誰も言及していない派閥の設定にトークンを消費することになります。あるいは、世界設定を「プロジェクト(Project)」に入れて、その境界線にスコープ制限の役割を任せることもできます。OpenAIはその境界線の挙動について、プロジェクト限定メモリを使用すると「チャットは同じプロジェクト内の他の会話を参照できますが、プロジェクト外の会話は参照できず、プロジェクト外のチャットもプロジェクト内の会話を参照できません」と説明しています。または、シーンの開始時にエントリを貼り付けることもできます。これは機能しますが、そもそもロアブックを作った目的(手動貼り付けを避けること)に逆行します。

そして、思い込むのではなく確認してください。OpenAI自身のアドバイスは「ChatGPTが何かを覚えているか知りたい場合は、チャットで直接聞いてみる」ことであり、メモリの要約は「チャットに基づいてChatGPTが覚えていることのすべてを含むわけではない」と警告しています。キャラクターを定義する3つの特徴を尋ね、返ってきた内容を確認してから、移行が成功したかどうかを判断してください。

より良い方法:入力されたボックスではなく、キャラクターに関する「決定事項」を保持する

キャラクターカードを削ぎ落としたとき、価値があるのはフィールドのレイアウトではありません。それは一連の「決定事項」です。この詳細はすべてのシーンで真実である、この詳細は港湾編でのみ真実である、この口調は短めである、このキャラクターは主人公の名前を絶対に呼ばない、といったことです。SillyTavernは、これらの決定事項をフィールドの配置や挿入設定としてエンコードします。別のツールは、それらを異なる方法でエンコードするか、あるいはまったくエンコードしません。

決定事項を「決定事項」として書き留めれば、特定のエンジンのボックスに縛られることはなくなります。

MemoryLake は、これらを保管できる場所の1つです。あなた自身の言葉で、それぞれのエントリのスコープと理由とともに書き込み、接続したアシスタントが同じセットを読み込みます。ツールのファイルから何かが勝手に引き出されることはありません。このレイヤーは、あなたが入力したものをそのまま保持します。

Step 1: APIキーを作成する

サインインし、ワークスペースの設定を開いて、APIキーを生成します。これはアシスタントが同じエントリを読み取るために使用する認証情報です。一度作成したら、作成するすべてのツールからアクセスできる場所に保管してください。

APIキー名と有効期限を求める「Create API Key」ダイアログが開いている、MemoryLakeコンソールのAPIキーページ
APIキー名と有効期限を求める「Create API Key」ダイアログが開いている、MemoryLakeコンソールのAPIキーページ

Step 2: 最初の記憶をアップロードする

2つのリストを移行し、SillyTavernが教えてくれた区別を維持します。1つのテーマにつき1つのエントリ。常時有効な事実は「常時有効」としてマークし、条件付きのものはキーワードリストではなく文章として条件を記述します。フォルダ全体ではなく、実際に執筆しているキャラクターから始めてください。

最初のプロジェクトとそれに紐付けられたデータソースが表示されている、MemoryLakeデフォルトワークスペースの「Projects」タブ
最初のプロジェクトとそれに紐付けられたデータソースが表示されている、MemoryLakeデフォルトワークスペースの「Projects」タブ

Step 3: AIとエージェントを接続する

ChatGPTや、その他に使用しているツールを接続します。同じキャラクターがそれぞれのツールに反映され、港湾地区の歴史が必要なシーンでは、記憶から港を再構築することなく、その情報を得ることができます。

OpenClaw、Hermes Agent、Claude、ChatGPT、MCP、REST APIのカードが並ぶ、MemoryLakeの統合ギャラリー
OpenClaw、Hermes Agent、Claude、ChatGPT、MCP、REST APIのカードが並ぶ、MemoryLakeの統合ギャラリー

実務において何が変わるか

最初の違いは、特定のエンジンのフィールドリストに作業が縛られなくなることです。カードはフォーマットにすぎず、キャラクターは決定事項の集まりです。これらが文章として記述されていれば、別のフロントエンドへのインポートも、ホスト型アシスタントへのプロンプト入力も、同じ作業になります。

2つ目は、非永続的な部分が「見えない状態」でなくなることです。コンテキストからスクロールアウトした例文は、静かに何も機能しなくなります。記述されたスタイルルールは、例文が消えた後も機能し続けます。これは、1つ上のレイヤーで when Janitor AI forgets your worldbuilding において説明されているのと同じ失敗です。

3つ目は、ペルソナとキャラクターの境界が曖昧にならなくなることです。SillyTavernはこれらを適切に分離しますが、ホスト型アシスタントは一般的にそうしません。自身のノートでこの区別を維持することが、when Character AI forgets your persona で扱われているブレを防ぐことにつながります。

4つ目は、監査可能性(確認のしやすさ)です。不適切に選択されたキーワードは静かに失敗しますが、言葉で書かれた条件は読んで修正することができます。その見直しの習慣については、auditing what your AI remembers で解説しています。

キャラクターカードを移行するためのベストプラクティス

フィールドではなく、寿命(ライフスパン)で移行する。 何が毎回送信され、何が一度だけ送信されるかを問いかけてください。SillyTavernは両方をドキュメント化していますが、他のほとんどのツールには前者の種類しかありません。

例文をスタイルに関する段落に変換する。 例文は口調、長さ、フォーマットを教えていました。それらを言葉として明確に表現すれば、どこでも通用するようになります。

制作者ノート(Creator's Notes)にあるものを救出する。 SillyTavernは、制作者のメタデータはプロンプト構築に使用されないと述べています。意味を持つ内容であれば、説明欄に移動させるべきです。

まずは1人のキャラクターを移行する。 フォルダ全体を移行する前に、実際に使用している1枚のカードでプロセス全体を実行してみてください。ローカルインストールではなくホスト型プラットフォームからの移行という、同様の作業の縮小版は、migrating Character AI to ChatGPT のガイドに掲載されています。

エクスポートする前にロアブックを数える。 エクスポートされたカードに埋め込まれるのは、プライマリのWorld Infoファイルのみです。追加のファイル、ペルソナ紐付け、チャット紐付けのファイルは別々になります。

チャットはテキストではなくJSONLとしてエクスポートする。 ドキュメントによると、プレーンテキスト版はメタデータが失われるため、再インポートできません。

共有する前にエクスポートデータをクレンジングする。 SillyTavern自身もこのアドバイスをしています。プライバシーを気にする場合は、エクスポートされたJSONLを検査し、共有したくない内容を削除してください。ファイルがマシンから離れる前に、この確認を行ってください。

移行先のリストは不完全であることを想定する。 OpenAIは、メモリの要約がすべてを含むわけではないと述べており、チャットで尋ねることを推奨しています。その実質的な影響については、ChatGPT's memory limitations でカバーされています。

結論

SillyTavernは本当に有用なことを行いました。キャラクターのどの部分が毎回送信され、どの部分が一度だけ送信されるかを明示し、その事実を挙動から推測させるのではなくドキュメントに記載したのです。この区別こそが、フォーマット全体の中で最も移植性の高いアイデアです。

移行が厄介なのは、移行先(ChatGPT)のドキュメント化された機能が、ほぼ完全に永続的な半分を中心に構築されているためです。カスタム指示は説明ボックスのように機能します。口調を植え付けてから身を引く最初のメッセージや、コンテキストが満たされるまで保持される例文ブロックに相当する、ドキュメント化された機能は存在しません。

ですから、ボックスではなく、分割された「中身」を持ち運んでください。常に真実であること、例文が教えていたことを書き留め、次のツールが読み取れる場所に保管してください。カードのフォーマットはまた変わるでしょう。その中にある決定事項はあなたのものであり、それらは平易な言葉で表現されて初めて生き残り続けます。

よくある質問

SillyTavernのキャラクターカードには何が含まれていますか?

名前、説明、性格、シナリオ(これらはSillyTavernのドキュメントで、すべての生成リクエストで送信される永続トークンとされています)に加えて、最初のメッセージ、例文、代替の挨拶、オプションのプロンプトオーバーライド、および制作者のメタデータが含まれます。SillyTavernは、名前のみが必須フィールドであると指摘しています。

カードのどの部分が毎回送信されないのですか?

最初のメッセージボックス(ドキュメントによると、チャット開始時に一度だけ送信されます)と、例文ボックス(チャット履歴がコンテキストを満たすまでのみ保持され、強制的に残すオプションもあります)です。

World Info(世界情報)はキャラクターと一緒に移行されますか?

1つのロアブックは移行されます。SillyTavernは、キャラクターに紐付けられたプライマリのWorld Infoファイルがエクスポート時にカードデータに埋め込まれると述べており、プライマリファイルのみがエクスポートされると直接明記しています。追加のロアブック、ペルソナロアブック、チャットロアブックは別々になります。

ChatGPTはキーワード起動のロア(設定)に対応していますか?

OpenAIがドキュメント化しているパーソナライズ機能は、カスタム指示、メモリの要約、および従来の保存されたメモリであり、これらは削除されない限り常に考慮されると説明されています。World Infoの起動に相当するキーワードトリガーの仕組みはドキュメントに記載されていないため、現実的な対応としては、各キーワードリストを平易な言葉による条件に書き換えることです。

チャットをエクスポートするにはどうすればよいですか?

SillyTavernは「Manage chat files(チャットファイルの管理)」ダイアログからのJSONLエクスポートをサポートしており、画像や添付ファイルを除くメタデータを含んだチャットの共有や移行に適していると説明しています。また、プレーンテキストでのエクスポートも提供されていますが、重要なメタデータが失われるため再インポートできないと警告されています。

他人が作成したカードは、私の環境でも同じように動作しますか?

必ずしもそうとは限りません。「Main Prompt」と「Post-History Instructions」のオーバーライドは、対応する「Prefer Char. Prompt」および「Prefer Char. Instructions」設定が有効な場合にのみ適用され、埋め込みタグはデフォルトではインポートされません。ダウンロードしたカードが作者の意図通りに動作していると仮定する前に、両方の設定を確認してください。