跳到內容

工具與擴充

除了聊天之外,TomoriBot還可以呼叫工具來搜尋網路、閱讀文件、產生媒體、設定提醒以及與Discord訊息互動。她根據對話決定何時使用它們。本頁介紹了內建工具、如何使用MCP伺服器擴充她,以及如何使用Deliberate Tool模式保持提示精簡。

以下是一些工具在對話中啟用的範例:

  • 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.

工具取決於支援工具呼叫的活動供應商和模型。許多都受到功能標誌(/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發送最多 4 張符合 1 到 2 個標籤的現有 Danbooru 圖片(請參閱 插圖搜尋與貼文讀取)。
Danbooru 貼文讀取-danbooru_enabled透過 ID 或連結讀取單則 Danbooru 貼文的分組標籤。
產生語音訊息{voice_message_tool}ElevenLabs鍵+人格語音+voice_message_enabled發送語音Discord語音回覆。

支援上述工具巨集的提示文字也支援作用域條件:

{{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。在条件前面加上!可将其反转。區塊可以嵌套,並且可以包含一個{{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權限檢查。未知的功能名稱評估為錯誤並被記錄;格式錯誤的區塊被省略。原始聊天訊息、模型輸出和工具結果永遠不會被視為條件模板。

諸如 NovelAI 等動漫圖片模型能理解 Danbooru 標籤,因此猜測的標籤(例如用 half-up braid 代替 half up braid)或未知的角色服裝會降低圖片品質。開啟 Danbooru 搜尋 後(/config > 外掛 > 可用工具,預設開啟),她可以在作畫前查詢標籤:

  • 名字、暱稱與錯字會解析為真實標籤(例如 ryza 會變成 reisalin stout),並附帶使用該標籤的貼文數量。修正或部分符合的結果可能代表不同的事物,因此她會對此進行核對。
  • 對於某個角色或其特定服裝,她還會取得最常與其一同出現的標籤、該角色的專屬服裝與 Cosplay 標籤,以及一段簡短的 Wiki 簡介。在所有頻道中,這些標籤僅來自普遍級與敏感貼文。

每次查詢都會發送一張 Danbooru 標籤查詢 卡片列出找到的內容,並附帶可直接複製貼上到手動 /generate image 提示詞中的角色標籤區塊。該卡片在所有通知詳細度層級下皆保持可見,後續回覆無需重新搜尋即可重複使用其中的標籤。如需隱藏,可在 /config > 行為 > 通知行為 中像其他通知一樣將其關閉。

同一個開關也允許她分享現有插圖並讀取貼文的標籤:

  • 當被要求展示某樣事物的插圖時,她會在單則訊息中最多發送 4 張隨機的高評價 Danbooru 圖片,並附帶每張貼文的連結。存疑與限制級圖片皆會加上防雷遮罩。Danbooru 每次搜尋僅允許使用 2 個標籤,因此她會挑選最特定的標籤,通常是角色或所屬作品。
  • 給出 Danbooru 貼文 ID 或 danbooru.donmai.us/posts/ 連結後,她會讀取其標籤,並按角色、作品、繪師、詮釋資料與一般進行分組展示。在明確工具模式下,訊息中只要包含貼文連結就足以向她提供此工具。

任何人也都可以執行 /booru search 來直接取得相同的圖庫,而無需向她提問。指令會在輸入時提供標籤建議,並將暱稱或錯字轉換為真實標籤,頁尾則會顯示實際搜尋的內容。可選的 count 可設定要發送的圖片數量,介於 1 到 10 張(預設:4)。若相符貼文較少,則發送現有的結果。該開關僅控制她的工具,不影響斜線指令;如需限制誰能執行 /booru search,請使用 Discord 的伺服器設定 > 整合。

分級遵循頻道屬性。普遍級與敏感貼文在所有地方皆可展示;存疑與限制級貼文僅在年齡限制頻道中生效。討論串遵循其父頻道的設定,私訊則視為非年齡限制頻道。任何分級高於普遍級且帶有 loli、shota 或 toddlercon 標籤的貼文,在任何頻道中都絕不會被發送或讀取。

該模型看到一個統一的web_search(query, category)工具。在其後面,調度程序通過引擎鏈路由每個調用並返回第一個成功:

Brave → SearXNG → DuckDuckGo

  • 當配置了Brave API密鑰(使用/providers設定)時,Brave 首先運行;它增加了圖像、視訊和新聞搜尋。🟡 在Brave儀表板中設定5美元的使用限額,以避免意外收費。
  • DuckDuckGo 是未設定金鑰時的預設引擎。它僅涵蓋文字搜尋。當 DuckDuckGo 對 bot 進行速率限制或顯示機器人驗證時,搜尋將會失敗,她會發布通知建議使用 Brave。
  • SearXNG和Crawl4AI是選購的自架伺服器,可新增更多類別和瀏覽器呈現的頁面取得;請參閱自架。

為了閱讀特定頁面,她使用fetch_url。NovelAI上不可用。

MCP(Model Context Protocol)伺服器可以用你自己註冊的外部工具擴充她。

使用支援 MCP Streamable HTTP 或 SSE 的供應商直連 HTTPS 端點:

  1. 向供應商取得 MCP 端點及其驗證要求。
  2. 開啟 /config > 外掛 > MCP 伺服器,選擇 + 新增 MCP。
  3. 將端點貼入 URL,若有需要則在 驗證權杖 輸入其 Bearer 權杖,並選擇需要的 伺服器類型。預設已選取 一般用途。若想要作為回覆草稿審查的規則檢查器,請選擇 文章檢查器:Tomori 本身絕不會呼叫其工具,它會出現在回覆草稿頁面的 規則檢查 底下。

停用已選用於搜尋或 URL 讀取的註冊項目會還原 TomoriBot 的內建選擇;保持其啟用則可防止自動切換。儲存的工具名稱僅反映上次探索到的內容,因此無法證明連線目前依然有效。

下載時的回應會在達到 8 MiB 時停止。大型工具目錄或結果可能導致外掛無法使用或造成工具呼叫失敗。對於 SSE 連線,此限制涵蓋整個回應串流,包含後續的連續更新。當工具回傳大型文件或嵌入媒體時,請向供應商要求較小的結果、分頁或檔案連結。

如果伺服器不需要驗證,請將 驗證權杖 留空。你的驗證權杖會加密儲存,而且不會再顯示。開啟同一個設定頁面即可檢視已設定的狀態、啟用或停用伺服器,或在明確確認後將其移除。移除會立刻中斷連線並釋出名額。每一列已儲存的紀錄也會顯示上次成功探索到的工具名稱(有數量上限)。未探索到任何工具 是已知的零工具結果;探索狀態未知 則代表舊版紀錄或尚未成功取得快照的伺服器。開啟 MCP 管理介面只會讀取已儲存的中繼資料,不會連線至遠端伺服器。

本機MCP伺服器只支援自架執行個體:公開託管的bot要求HTTPS,並封鎖本機與私人位址。如果你自己跑執行個體,請看設定:本機MCP伺服器。

每個宣告的工具都會增加提示詞長度。明確工具模式會在訊息需要任務工具時才加入工具宣告,藉此縮短提示詞,讓較小的本機模型更快回覆。不過,只要貼圖使用與工具使用已開啟,而且供應商支援,貼圖選擇工具仍會保留,讓她自然表達情緒。私訊、模仿與角色扮演的限制仍然適用。若要阻止貼圖回覆,請關閉貼圖使用。短期記憶到了更新期限時,也會加入維護工具,不需要使用者提出要求。

  • 她首先檢查訊息中的工具意圖。內建觸發器涵蓋常見請求(提醒、網路搜尋、記憶體更新、跨頻道訊息、圖像/視訊/語音產生、媒體分析、執行緒建立、訊息操作)。有關她當前模型、工具、設定或功能為何不可用的問題會同時暴露功能審核和官方文件存取。後續措辭也有效,例如在語音訊息請求後「再做一次,但更生氣」。
  • 伺服器管理員可以使用/server trigger add新增文字自訂觸發短語,例如將pic、img或pfp對應到影像產生。
  • 內建觸發器可讀取英文片語。其他語言透過每種語言的關鍵字清單可以使用相同的工具。無論你的語言設定是什麼,每個訊息都會檢查每種出貨語言的列表,因此雙語伺服器可以同時使用兩種語言。
  • 日語、中文或韓語中的自訂短語也可以匹配較長的單詞,因為這些語言不使用空格分隔單字。以*結尾的短語與以其開頭的任何單字相符:remind*涵蓋reminder和reminding。
  • /server dtm:伺服器管理員切換它。
  • /personal config:用戶自己覆蓋它。
  • 配置思想日誌通道 (/server thought-logs) 後,成功的深思熟慮模式工具呼叫以及暴露該工具的觸發器都會記錄在那裡。

有意工具模式僅決定向模型「顯示」哪些工具,但模型仍必須選擇呼叫一個工具。在/help中,選擇行為,然後選擇明確工具模式,作為Discord摘要。

當你在聊天中直接詢問時(例如“叫我隊長”或“我的代名詞是他們/他們”),TomoriBot可以自動更新你的個人資料和人格命名偏好:

偏愛範圍影響
暱稱、前綴、後綴每個人格只有活躍人格才會用此名稱或頭銜稱呼你。
性別認同、代名詞、稱呼風格、時區全球的每個人格在所有伺服器上使用相同的值。
  • 刪除頭銜:要求她停止使用頭銜(例如“停止叫我大師”)可以清除該人格。
  • 隱私:限制性隱私等級會阻止新的新增和編輯,同時仍允許你清除現有資料。
  • 權限:伺服器管理員可以使用/config > 權限中的使用者資訊更新切換自動更新。你始終可以使用/personal config手動編輯你的個人資料。

工具參數架構與資料庫儲存佈局請參考工具系統架構。