コンテンツにスキップ

記憶

TomoriBotは永続的な記憶システムを備えているため、会話をまたいで事実を記憶できます。このページでは彼女が何を知っているか(事実、コンテキスト、ドキュメント)について説明します。どのように振る舞うか(性格、トーン)については、マルチペルソナを参照してください。

永続的なものから消えやすいものへ

階層内容保持期間
長期記憶(LTM)ユーザーやサーバーについて保存された事実、アップロードされたドキュメント、条件付け永続的。誰かが削除するまで。/refresh、再起動、その他すべてに影響されません
短期記憶(STM)彼女がチャンネルごとに書く要約と、直近の数件のメッセージ24時間。チャンネルをまたげます
チャット履歴返信しているチャンネルの直近のメッセージこのチャンネルのみ。/config > 動作 > 一般的な動作 の範囲(デフォルトは直近80件)からスクロールで外れるまで。/refresh で即座に打ち切られます

会話中に彼女が「知っている」ように見えるもののほとんどは単なるチャット履歴です。だからこそ、会話が長くなりすぎるとメッセージを忘れたように見えます。永続的なのは長期記憶だけです。 STMはその中間で、何も確定させずに場面をチャンネルをまたいで持ち越すのに役立ちますが、それでも期限切れになります。

各ターンで彼女に何が渡されるかについては、プロンプトの中身を参照してください。

長期記憶は、彼女が永続的に保持する唯一のものです。/refresh、再起動、別のチャンネルへの移動の影響を受けません。

長期記憶には2つの種類があります:

  • 個人の記憶/personal memories):個々のユーザーに関する事実。例:「Amaoriは猫が好き」「ダークモードを好む」「ピーナッツアレルギー」。これらはあなたに紐付いており、すべてのサーバーで追従しますが、あなたがアクティブに参加している会話でのみ引き出されます。
  • サーバーの記憶/memories):サーバー全体に関連する情報。例:「ゲームナイトは毎週金曜日の午後8時」「NSFWの投稿禁止」「#generalはアナウンス用」。これらはサーバー内に留まり、常に考慮されます。

記憶はデフォルトでペルソナごとに分離されています。 各ペルソナ(オルタを含む)は個人の記憶とサーバーの記憶をそれぞれ独自に保持するため、ペルソナが違えば、あるペルソナが学んだことを別のペルソナは思い出せません。唯一の例外は、/personal memories のGlobalページから追加された個人の記憶で、これはあなた専用としてすべてのペルソナに適用されます。サーバーの記憶にはこのオプションはなく、同じサーバー内であっても各ペルソナのサーバー記憶セットは常に分離されたままです。

サーバーの記憶を閲覧、追加、編集、削除、またはドキュメント知識ベースへ移動するには /memories を使用します。あなたに紐付く事実は /personal memories で管理します。 記憶は削除されるまで保持されます。

新しいサーバーでは、管理権限のないメンバーによる共有サーバー記憶の作成、編集、削除へのアクセスはデフォルトで無効になっています。サーバーの管理 権限を持つメンバーは常にアクセス権を保持し、管理者は /moderation の Member Access を通じて他のメンバーにアクセス権を付与できます。

長期記憶が作られる方法は、次の2つだけです:

  1. あなたが保存する/personal memories または /memories
  2. 彼女自身が保存する:残す価値があると判断したとき。

彼女自身が保存した場合、何かを学んだことを伝える埋め込みメッセージを投稿します。その埋め込みが確認の証です。 何かを伝えても埋め込みが表示されない場合、何も保存されていません。それはまだチャット履歴に過ぎないため、会話が進めば失われ、別のチャンネルには引き継がれません。

残したいことを彼女が保存してくれない場合、強制力の弱い順に3つの方法があります:

  • 覚えておいてと直接頼む。
  • /config > 動作 > 一般的な動作、または プロンプトの中身 にある他のプロンプト系コマンド(/config > ペルソナ > 高度な設定、/config > 動作 > 一般的な動作、/config > チャンネル > チャンネルの個別設定)を使って促す一文を追加する。特にコンテキストノートはプロンプトの下の方に配置されるため、実行される可能性が高くなります。「覚えておく価値のある情報については長期記憶の作成が推奨されます」 程度の簡単な文で十分です。プロバイダーによって変わる保存ツールの実際の名前をハードコードせずに参照したい場合は、代わりに {memory_tool} プロンプトマクロを使います。例:「{memory_tool} を使って…」
  • /personal memories で自分で保存する。これが唯一確実な方法です。

サーバー管理者は /config > 権限 で彼女の自動保存を完全に無効にできます。

デフォルトでは、個人の記憶100件サーバーの記憶100件まで保持できます。セルフホストの場合、.env変数の MAX_PERSONAL_MEMORIESMAX_SERVER_MEMORIESMAX_MEMORY_LENGTH でこれらを変更できます。文字数を増やすほうが件数を増やすよりもはるかにコンテキストを消費するため、長い記憶を少なく持つより、短い記憶を多く持つほうが望ましいです。

これらの件数はペルソナごとであり、ユーザーごとやサーバーごとではありません。各ペルソナが独自のセットを保持するため、4つのペルソナを運用しているサーバーには4つの独立した枠があります。あなた自身のグローバルな個人の記憶は、すべてのペルソナの個人の記憶の枠に対して計上されます。

ドキュメント知識ベース(RAG)

Section titled “ドキュメント知識ベース(RAG)”

サーバー管理者はRAGを使って参照用のドキュメントを提供できます。ドキュメントはチャンク化され、検索可能な埋め込み(エンベディング)として保存され、回答時に関連するコンテンツが自動的に取得されます。新しいサーバーでは、ドキュメントの管理も同様に、デフォルトで サーバーの管理 権限を持つメンバーに制限されています。管理者は /moderation の Member Access を通じてメンバーにアクセス権を付与できます。

埋め込みモデルが必要です/config > モデル > モデルの切り替え で設定します。プロバイダーとモデルを参照してください。 /memories の Documents ページでは、ペルソナおよびサーバー全体のスコープ、リアルタイムのドキュメントとチャンクの数、アップロード、ドキュメントの閲覧、および削除機能が提供されます:

  • テキスト、PDF、またはMarkdownファイルをサーバーの知識としてアップロードします。スコープによって、このペルソナだけに紐づけるか(デフォルト)、すべてのペルソナが参照できるサーバー全体にするかを選びます。
  • /learn history:チャンネルの履歴を検索可能な知識として抽出します。
  • 保存されたドキュメントをチャンクごとに閲覧します。サーバー管理者はドキュメント全体を削除することなく、個々のチャンクの編集、ドキュメントのチャンネルタグの更新、単一チャンクの削除を行えます。
  • 保存されたドキュメントや個別のチャンクをパネルから直接削除します。

チャンネル履歴を /learn history でインポートする際、prompt オプションによってTomoriBotの記憶抽出方法が変化します:

  • 会話:通常のチャットから独立した事実を抽出します。代名詞を解決し、日付や時間が明示的または推測可能な場合は絶対タイムスタンプを使用します。
  • ロールプレイ:細かな動きをすべて残そうとするのではなく、シーン、ロア(伝承・設定)、人間関係、印象的な出来事を検索します。
  • In-Character:選択されたペルソナの視点から記憶を抽出します。そのペルソナのプロンプト、属性、既存の記憶、関連ドキュメントをコンテキストとして使用します。

インポート前にプロンプトが表示されるため、チャンネルやシーンに合わせて調整できます。

履歴インポートはドキュメントとして保存されるため、/memories も同様に機能します。

/conditioning はペルソナごと・サーバーごとの記憶であり、時間の経過とともにペルソナの振る舞いを誘導します。完全な属性やシステムプロンプトよりも軽量な後押しです。特定のキャラクターが特定のサーバーでどのように振る舞うべきかを強化するために使用します。

/reward/punish は実行するたびに必ず集計されますが、それが彼女の実際の行動に影響する記憶になるのは reason を指定した場合のみです。その場合、プロンプトには次のように表示されます:

## Rewarded Behaviors
Here are past things Tomori did that got rewarded for. Strive to do them again:
- [Tomori was fed by Amaori. Reason: `being extra helpful today` with `cookies`] (2 times)
## Punished Behaviors
Here are past things Tomori did that got punished for. Avoid doing them again:
- [Tomori was bonked by Amaori. Reason: `spamming pings after being told to stop`]

reason を指定しない場合、集計は記録されますがプロンプトには表れません。/conditioning remove でエントリーの確認や削除ができます。

他の何よりも先にスコープによる絞り込みが働きます:サーバーの記憶が届くのはそのサーバー内のプロンプトだけ、個人の記憶が届くのはそのユーザーが会話に現れているときだけ、そしてどちらもそれを所有するペルソナに対してのみです。そのスコープの中では、デフォルトですべてのプロンプトに対してすべての記憶が送信されます。タグ付けはさらに絞り込むもので、特定のキーワードが出たときだけ、または特定のチャンネルだけで記憶が有効になります。/config > 動作 > 高度な記憶 で有効化できます。

  • キーワードタグのない記憶は常に有効です(デフォルト)。
  • キーワードタグのある記憶は、可視コンテキスト内にキーワードが現れたときにのみ有効になります。
  • /tool prompt snapshot を使用して、現在どの記憶が有効になっているかを確認できます。
  • #channel タグを持つ記憶は、そのチャンネル内でのみ有効になります。
  • チャンネルタグはキーワードタグと組み合わせることができます。
  • ドキュメント知識ベース(RAG)を使用している場合、チャンネルタグはドキュメントや抽出された履歴にも適用されます。

Discordでは /help記憶 から 記憶のタグ付け を選択すると、同じ概要を確認できます。

TomoriBotは発言中の現在のチャンネルのメッセージを容易に読み取ることができますが、STMを使用すると実際の長期記憶を保存することなく以下のことが可能になります:

  1. コンテキスト内でチャンネルの現在のシナリオ/状況を一時的に強化する
  2. 他のチャンネルやサーバーでの会話を一時的に記憶する

彼女は自分が参加した会話のみを記憶します。 彼女が返信したときにのみチャンネルの記憶を更新するため、誰も彼女に話しかけない賑やかなチャンネルには何も残りません。

各チャンネルのSTMはデフォルトで24時間後に期限切れとなり、/personal config でオプトアウトしている場合、あなたのメッセージは一切含まれません。

彼女に見えるもの・見えないもの

Section titled “彼女に見えるもの・見えないもの”
場所意味
サーバー内1人ごとではなく、チャンネルごとに1つの共有記憶。個人ごとにメモを取っているわけではありません。
DM内あなただけのもの。
他のチャンネル同じサーバー内の他のいくつかのチャンネルでの最近の会話を呼び出すことができます。
プライベートチャンネル/config > チャンネル > チャンネルの個別設定 で設定された内容はそこに留まり、他へ露出することはありません。
他のサーバー/personal configcrossserver をオンにしない限り露出することはありません。オンにした場合でもあなた自身の会話のみが追従します。
各ペルソナそれぞれ独立した記憶を保持しているため、ペルソナを切り替えると記憶も切り替わります。

各チャンネルの記憶には、直近の数通のメッセージと、会話の進行に合わせて彼女自身が書き更新する短い要約が保持されます。静かな時間が数時間続くと自動的に消えていきます。

コマンド役割
/config > ペルソナ > 記憶このチャンネルに対して彼女が保持している要約を確認する
/config > ペルソナ > 記憶要約を修正するか、自分で記述する
/personal config / /personal memoriesサーバー間での呼び出しをオプトインするか、自身の記憶を消去する
/refresh今すぐこのチャンネルの記憶を忘れさせる
/config > 動作 > 高度な記憶更新頻度や保持する詳細度を設定する
/config > 動作 > 高度な記憶要約を最大5つのラベル付きフィールド(Current sceneMoodなど)に差し替える
/config > 動作 > 高度な記憶記憶保持の指示プロンプトを書き換える
/memories1つの管理パネルからアクティブなサーバーのエントリーを確認し、選択的にクリアする
/config > 権限プライベートチャンネルの記憶を他へ露出できるようにする
/config > 権限機能をオン/オフにする(保存された記憶はどちらの場合も保持されます)

誰でも /config > ペルソナ > 記憶、/personal config、および /personal memories を実行できます。それ以外は サーバーの管理 権限が必要です。

ワークスペースの管理者は /configエンジン記憶と短期記憶 から短期記憶を調整できます。 これらの設定は、ワークスペースのアクティブなSTMレコードに適用されます:

  • 更新の頻度(更新頻度)は、ボットのターンが何回経過するごとに更新の促進を行うかを制御します。許容範囲は1〜100です。
  • レンダリングモード(レンダリングモード)は、カテゴリー値が直近のターンよりも優先されるか、または単純な要約として表示されるかを選択します。
  • 未加工のメッセージ(保持メッセージ数)は、直近のメッセージをいくつ保持するかを制御します。1からチャンネルの最大値まで設定できます。
  • ナッジの深さ(ナッジの深さ)は、構築されたコンテキストの末尾から更新の促進をどの位置に配置するかを設定します。0〜20の範囲です。
  • コンテンツの深さ(コンテンツの深さ)は、構築されたコンテキストの末尾からSTMコンテンツをどの位置に配置するかを設定します。-1〜20の範囲です。

短期記憶カテゴリ は、デフォルトの Summary フィールドを最大5つのラベル付きフィールドに置き換えます。各フィールドは ラベル: 説明 の形式で入力します。すべてのフィールドを空白にすると、デフォルトの Summary カテゴリーに戻ります。カテゴリーを保存すると、互換性のないアクティブなサーバーチャンネルのSTMがクリアされます。パネルでは保存前に影響を受けるチャンネルが開示されます。

短期記憶プロンプト は、管理者がツールの説明と更新の促進プロンプトを上書きできるようにします。空白のまま上書きすると、カテゴリーが有効な場合はカテゴリー対応の促進プロンプトを含め、効果的なデフォルト値に戻ります。


彼女が何を保存し、それをどのようにエクスポートまたは削除するかについては、データの取り扱い および /legal privacy-policy を参照してください。/personal config で記憶機能を完全にオプトアウトすることもできます。