ツールと拡張
チャット以外にも、TomoriBotはツールを呼び出して、Webの検索、ドキュメントの読み取り、メディアの生成、リマインダーの設定、Discordメッセージの操作を行うことができます。彼女は会話に基づいてそれらをいつ使用するかを決定します。このページでは、組み込みツール、MCPサーバーで拡張する方法、および意図的なツールモードでプロンプトを無駄のない状態に保つ方法について説明します。
ツールによって会話が可能になる例をいくつか示します。
- 1. ウェルネスチェッカー
Every few hours, do a mandatory wellness check on @bau_h.Ask them how they feel right now and if they've taken a break from coding recently.Track their emotional state over time with {memory_tool} and/or {memory_update_tool} to report back to them later.
- 2. 週刊百合ニュース
Every Friday, compile the week's notable yuri manga chapters, anime episodes, and community fanart drops using {web_search_tool}.Present findings with {voice_message_tool} in a seductive ASMR voice.
- 3. 睡眠警察
If you notice through {message_metadata_tool} that someone is chatting past 2 AM, use {voice_message_tool} to send them a threateningly calm ASMR lullaby telling them to go to bed.If they keep talking 10 minutes later, use {manage_message_tool} to delete their message for their own good and remind them that sleep deprivation is a leading cause of their issues.
組み込みツール
Section titled “組み込みツール”ツールは、ツール呼び出しをサポートするアクティブなプロバイダーとモデルに依存します。多くは、機能フラグ (/config > 権限)、Discord権限、モデル機能、またはオプションのAPIキーの背後でゲートされています。
| 道具 | プロンプトマクロ | 必要 | 何をするのか |
|---|---|---|---|
| レビュー機能 | {capabilities_tool} | - | 応答する前に、現在のチャットの能力、コマンド、または設定を確認してください。 |
| 長期記憶の作成/更新 | {memory_tool} / {memory_update_tool} | self_teaching_enabled | 安定したサーバーのファクトまたはユーザー設定を保存または置き換えます。 |
| 短期記憶を更新する | {short_term_memory_tool} | (NovelAIにはありません) | 現在のチャンネルまたはストーリー アークの一時的な作業メモリを保存します。 |
| タスクの作成/更新 | {task_tool} / {task_update_tool} | - | リマインダーとセルフタスクをスケジュールまたは編集します (スケジュールされたタスク を参照)。 |
| クロスチャネルメッセージ | {cross_channel_tool} | (NovelAIにはありません) | オプションでレポートバックを行って、別のチャネルまたはスレッドで活動します。 |
| スレッドを作成する | {create_thread_tool} | thread_creation_enabled + スレッド権限 | 公開スレッドを開き、その開始メッセージを投稿します。 |
| スタンプを選択 | {sticker_tool} | sticker_usage_enabled | 一致するサーバー スタンプまたはカスタム表現を返信に追加します。 |
| メッセージの管理 | {manage_message_tool} | manage_message_enabled | 最近のメッセージをピン留め、編集、または削除します (ピン留めにはメッセージの管理が必要です)。 |
| ユーザーをブロック/ブロック解除 | {block_user_tool} / {unblock_user_tool} | user_blocking_enabled | ペルソナを対象としたユーザーのミュート/ブロック (思い出には触れません)。 |
| 最近のメッセージを操作する | {message_interaction_tool} | - | 最近のメッセージに反応するか、短い返信を送信します。 |
| プロフィール写真を覗く | {profile_picture_tool} | ビジョンモデルまたはvision_llm | ユーザーまたはペルソナのアバターを検査します。 |
| 文書を読む | {document_tool} | - | PDFまたは任意のUTF-8テキストファイルからテキストを抽出します: ソースコード (.py/.ts/.rs/…)、.json、.yaml、.md、.txt、およびバイナリ以外の添付ファイル。 |
| メッセージのメタデータを明らかにする | {message_metadata_tool} | - | 最近のターンにハンドルとタイムスタンプを付けて注釈を付け、正確なターゲットを設定します。 |
| YouTubeビデオを処理する | {youtube_tool} | ビデオサポート付きモデル | 特定のYouTubeリンクをオンデマンドで分析します。 |
| 画像を解析する | {image_analysis_tool} | vision_llmを構成しました | 画像の理解を別の視覚モデルに委任します。 |
| 画像・アニメ画像の生成 | {image_generation_tool} / {anime_image_generation_tool} | imagegen_enabled + 対応プロバイダー | 画像を生成または編集します (メディア生成 を参照)。 |
| Danbooruタグ検索 | {tag_search_tool} | danbooru_enabled | キャラクター名、ニックネーム、タグの推測を正確なDanbooruタグに変換します(Danbooruタグ検索 を参照)。 |
| Danbooruイラスト検索 | {booru_post_search_tool} | danbooru_enabled | 1つまたは2つのタグで既存のDanbooru画像を最大4枚投稿します(イラスト検索と投稿の読み込み を参照)。 |
| Danbooru投稿の読み込み | - | danbooru_enabled | IDまたはリンクから1つのDanbooru投稿のグループ化されたタグを読み込みます。 |
| 音声メッセージを生成する | {voice_message_tool} | ElevenLabsキー+ペルソナボイス+voice_message_enabled | Discord音声応答を音声で送信します。 |
条件付きプロンプトブロック
Section titled “条件付きプロンプトブロック”上記のツールマクロをサポートするプロンプトテキストは、スコープ付き条件文もサポートします。
{{if capability:self_teaching}}Use {memory_tool} when a detail is worth remembering.{{else}}Do not promise to save long-term memories.{{/if}}有効なTomoriBot設定にはcapability:<name>を使用し、アクティブなプロバイダーとモデルで正確なツールが利用可能な場合にのみテキストを表示する必要がある場合はtool:<function_name>を使用します。バンドルされたURLリーダーまたはサーバーMCPの代替品が利用可能な場合は、tool_family:url_fetchを使用します。条件を反転するには、条件の前に!を付けます。ブロックはネストでき、1つの{{else}}を含めることができます。一般的なand/or式はサポートされていません。
サポートされている機能名は、tool_use、self_teaching、personal_memories、emoji_usage、sticker_usage、web_search、manage_message、thread_creation、image_generation、video_generation、voice_message、user_blocking、short_term_memory、およびtime_awareness。
ツールの条件には、プロバイダー/モデルのサポート、サーバー構成、構成されたバックエンド、MCPの置換、および現在の計画的ツールモードの許可リストが反映されます。これらは、ツールの実行時に実行されるDiscord権限チェックをバイパスしたり予測したりしません。不明な機能名はfalseとして評価され、ログに記録されます。不正な形式のブロックは省略されます。生のチャットメッセージ、モデル出力、ツールの結果は、条件付きテンプレートとして扱われることはありません。
Danbooruタグ検索
Section titled “Danbooruタグ検索”NovelAIなどのアニメ画像モデルはDanbooruタグを解釈するため、推測されたタグ(half up braid に対する half-up braid など)や不明なキャラクター衣装は画像の品質を低下させます。Danbooru検索 を有効にすると(/config > プラグイン > 利用可能なツール、デフォルトで有効)、彼女は作画前にタグを検索できます:
- 名前、ニックネーム、誤字が実際のタグ(
ryzaがreisalin stoutになるなど)と、その使用投稿数に解決されます。修正された一致や部分一致は異なる対象である可能性があるため、彼女はそれを確認します。 - キャラクターまたはその衣装の1つについて、最も頻繁に一緒に表示されるタグ、キャラクターの名前付き衣装やコスプレタグ、短いwiki概要も取得します。これらのタグは、すべてのチャンネルにおいて、一般およびセンシティブの投稿からのみ取得されます。
検索ごとに、見つかった内容を一覧表示する Danbooruタグ検索 カードが投稿され、手動の /generate image プロンプトに貼り付け可能なブロックにキャラクターのタグが表示されます。このカードはすべての通知詳細度で表示されたままになり、後の返信でも再検索せずにタグを再利用できます。他の通知と同様に、/config > 動作 > 通知動作 で非表示にできます。
イラスト検索と投稿の読み込み
Section titled “イラスト検索と投稿の読み込み”同じトグルにより、既存のイラストの共有と投稿タグの読み込みも可能になります:
- 何かのイラストを見せるよう求められると、彼女は1つのメッセージでランダムに選ばれた最大4枚の高評価Danbooru画像を各投稿へのリンク付きで投稿します。クエスチョナブルおよび明示的な画像にはスポイラー(閲覧注意)が付きます。Danbooruは1回の検索につき2つのタグのみを許可するため、彼女は最も具体的なタグ(通常はキャラクターまたはシリーズ)を選択します。
- Danbooruの投稿IDまたは
danbooru.donmai.us/posts/リンクが与えられると、キャラクター、シリーズ、絵師、メタ、一般にグループ化されたタグを読み込みます。明示的ツールモードでは、メッセージ内に投稿リンクがあるだけでこのツールが彼女に提供されます。
誰でも /booru search を実行して、彼女に頼むことなく同じギャラリーを取得できます。入力中にタグがサジェストされ、ニックネームや誤字が実際のタグに変換され、フッターに検索内容が表示されます。任意の count で送信する画像の枚数を1〜10枚で指定できます(デフォルト:4)。一致する投稿がそれより少ない場合は、利用可能な結果を送信します。このトグルは彼女のツールのみを制御し、コマンドは制御しません。/booru search を実行できるユーザーを制限するには、Discordの サーバー設定 > 連携サービス を使用してください。
レーティングはチャンネルの設定に従います。一般およびセンシティブの投稿はどこでも機能しますが、クエスチョナブルおよび明示的な投稿は年齢制限チャンネルでのみ機能します。スレッドは親チャンネルに従い、DMは年齢制限なしとして扱われます。一般を超えるレーティングで loli、shota、または toddlercon のタグが付いた投稿は、いかなるチャンネルでも投稿または読み込まれることはありません。
ウェブ検索とURLの読み込み
Section titled “ウェブ検索とURLの読み込み”モデルには、単一の統合されたweb_search(query, category)ツールが表示されます。その背後で、ディスパッチャーがエンジンチェーンを通じて各呼び出しをルーティングし、最初の成功を返します。
Brave → SearXNG → DuckDuckGo
- Brave は、Brave APIキーが設定されている場合 (
/providersで設定)、最初に実行されます。画像、ビデオ、ニュース検索が追加されます。🟡 突然の請求を避けるために、Braveダッシュボードで5ドルの使用制限を設定します。 - DuckDuckGoはキーが設定されていない場合のデフォルトです。テキスト検索のみを対象とします。DuckDuckGoがボットにレート制限を適用するかボットチェックを表示した場合、検索は失敗し、Braveの利用を提案する通知が投稿されます。
- SearXNGおよびCrawl4AIは、より多くのカテゴリとブラウザでレンダリングされたページの取得を追加するオプションのセルフホストサーバーです。セルフホスティングを参照してください。
特定のページを読むには、fetch_urlを使用します。NovelAIでは利用できません。
MCPサーバー
Section titled “MCPサーバー”MCP(Model Context Protocol)サーバーを使用すると、自分で登録した外部ツールで彼女を拡張できます。
オンラインMCPの追加
Section titled “オンラインMCPの追加”MCP Streamable HTTPまたはSSEをサポートするプロバイダーの直接HTTPSエンドポイントを使用します:
- プロバイダーからMCPエンドポイントと認証要件を取得します。
/config> プラグイン > MCPサーバー を開き、+ MCPを追加を選択します。- エンドポイントを
URLに貼り付け、必要な場合はそのBearerトークンを認証トークンに入力し、必要なサーバータイプを選択します。デフォルトでは 汎用 が選択されています。下書きレビューのルールチェッカーとして使用したいリンターには文章校正を選択してください:Tomori自身がそのツールを呼び出すことはなく、下書きレビューページのルールチェックの下に表示されます。
検索やURL取得に選択されている登録を無効化すると、TomoriBotの内蔵機能が復元されます。有効のままにしておくと、自動的な切り替えは行われません。保存されたツール名は前回の検出結果を示しているだけであり、接続が現在も機能していることを保証するものではありません。
ダウンロード中のレスポンスは8 MiBで停止します。大規模なツールカタログや結果は、プラグインを利用不可にしたりツール呼び出しを失敗させたりする原因になります。SSE接続の場合、この制限は連続する更新を含むレスポンスストリーム全体に適用されます。ツールが大きなドキュメントや埋め込みメディアを返す場合は、プロバイダーにより小さな結果、ページネーション、またはファイルリンクを要求してください。
サーバーが認証を必要としない場合は、認証トークン を空白のままにしてください。認証トークンは保存時に暗号化され、二度と表示されません。同じConfigページを開いて設定状態の確認、有効化・無効化、明示的な確認付きの削除を行えます。削除すると即座に切断され、スロットが解放されます。保存済みの各行には、最後に成功した検出で得られたツール名も表示されます。検出なし はツールが0件だった既知の結果、検出状況不明 は従来の行または成功したスナップショットがまだないサーバーを示します。MCP管理画面を開くだけでは保存済みメタデータを読み取るだけで、リモートサーバーには接続しません。
ローカルMCPサーバー
Section titled “ローカルMCPサーバー”ローカルMCPサーバーはセルフホストのインスタンスでのみサポートされています。パブリックホストのBotはHTTPSを必要とし、ローカル/プライベートアドレスをブロックします。自身のインスタンスを運用している場合は、セットアップ:ローカルMCPサーバーを参照してください。
明示的ツールモード
Section titled “明示的ツールモード”ツールを宣言するたびにプロンプトが長くなります。明示的ツールモードは、メッセージがタスク用ツールを必要としている場合にだけツールの宣言を渡すので、プロンプトを短くし、小規模なローカルモデルの応答を速めます。ただし、スタンプとツールの使用が有効で、プロバイダーが対応していれば、自発的な表現のためのスタンプ選択は引き続き利用できます。DM、なりすまし、ロールプレイの制限は引き続き適用されます。スタンプによる返答を止めるには、スタンプの使用をオフにしてください。また、短期記憶の更新期限に達すると、ユーザーからの依頼がなくても更新用ツールが利用可能になります。
- 彼女はまず、メッセージにツールの意図があるかどうかを確認します。組み込みトリガーは、一般的なリクエスト (リマインダー、Web検索、メモリ更新、クロスチャネルメッセージ、画像/ビデオ/音声生成、メディア分析、スレッド作成、メッセージアクション) をカバーします。現在のモデル、ツール、設定、または機能が利用できない理由に関する質問により、機能のレビューと公式ドキュメントへのアクセスが同時に公開されます。音声メッセージのリクエストの後に「もう一度やってください。ただし、もっと怒っています」などのフォローアップの文言も機能します。
- サーバー マネージャーは、
/server trigger addを使用してリテラルのカスタムトリガー フレーズを追加できます。たとえば、pic、img、またはpfpをイメージ生成にマッピングします。 - 内蔵トリガーは英語の表現を読み上げます。他の言語でも、各言語のキーワードリストを通じて同じツールにアクセスできます。言語設定に関係なく、出荷されたすべての言語リストがすべてのメッセージでチェックされるため、バイリンガルサーバーは両方の言語で動作します。
- 日本語、中国語、または韓国語のカスタムフレーズは、長い単語の内部にも一致します。これらの言語では単語がスペースで区切られないためです。
*で終わるフレーズは、*で始まるすべての単語と一致します。remind*は、reminderおよびremindingをカバーします。
/server dtm: サーバー管理者がそれを切り替えます。/personal config: ユーザーが自分でオーバーライドします。- 思考ログチャネル (
/server thought-logs) が構成されている場合、成功した意図的モードツール呼び出しは、ツールを公開したトリガーとともにそこに記録されます。
意図的ツールモードは、どのツールをモデルに *表示するかを決定するだけですが、モデルはツールを呼び出すことを選択する必要があります。/helpで、Discord概要として動作を選択し、次に明示的ツールモードを選択します。
構造化ユーザー情報の更新
Section titled “構造化ユーザー情報の更新”TomoriBotは、チャットで直接質問すると (「キャプテンと呼んでください」または「私の代名詞は彼ら/彼らです」など)、プロフィールとペルソナの命名設定を自動的に更新できます。
| 好み | 範囲 | 効果 |
|---|---|---|
| ニックネーム、プレフィックス、サフィックス | ペルソナごと | アクティブなペルソナのみがこの名前または肩書であなたに呼びかけます。 |
| 性自認、代名詞、話し方、タイムゾーン | グローバル | すべてのペルソナは、すべてのサーバーで同じ値を使用します。 |
- 称号の削除: 彼女に称号の使用をやめるように頼むと (「マスターと呼ぶのはやめてください」など)、そのペルソナの称号が消去されます。
- プライバシー: 制限的なプライバシー レベルにより、新しい追加や編集はブロックされますが、既存のデータは消去できます。
- 権限: サーバー管理者は、
/config>権限のユーザー情報の更新を使用して自動更新を切り替えることができます。/personal configを使用すると、いつでもプロフィールを手動で編集できます。
ツールパラメーター スキーマとデータベースストレージレイアウトについては、ツールシステムアーキテクチャ を参照してください。