Skip to content

Telegram ​

將您的 Triggerfish 代理連接到 Telegram,這樣您就可以在任何使用 Telegram 的裝置上與它互動。轉接器使用 grammY 框架與 Telegram Bot API 通訊。

設定 ​

步驟 1:建立機器人 ​

  1. 開啟 Telegram 並搜尋 @BotFather
  2. 傳送 /newbot
  3. 為您的機器人選擇一個顯示名稱(例如「My Triggerfish」)
  4. 為您的機器人選擇一個使用者名稱(必須以 bot 結尾,例如 my_triggerfish_bot)
  5. BotFather 會回覆您的 bot token——複製它

保護您的 Token 您的 bot token 賦予對您機器人的完全控制權。切勿將其提交到版本控制或公開分享。Triggerfish 將其儲存在您的作業系統金鑰鏈中。 :::

步驟 2:取得您的 Telegram 使用者 ID ​

Triggerfish 需要您的數字使用者 ID 來驗證訊息是否來自您。Telegram 使用者名稱可以被更改,不適合用於身份驗證——數字 ID 是永久的且由 Telegram 的伺服器指定,因此無法被偽造。

  1. 在 Telegram 上搜尋 @getmyid_bot
  2. 向它傳送任何訊息
  3. 它會回覆您的使用者 ID(一個類似 8019881968 的數字)

步驟 3:新增頻道 ​

執行互動式設定:

bash
triggerfish config add-channel telegram

這會提示您輸入 bot token、使用者 ID 和分類等級,然後將設定寫入 triggerfish.yaml 並提供重新啟動 daemon 的選項。

您也可以手動新增:

yaml
channels:
  telegram:
    # botToken 儲存在作業系統金鑰鏈中
    ownerId: 8019881968
    classification: INTERNAL
選項類型必填說明
botTokenstring是來自 @BotFather 的 Bot API token
ownerIdnumber是您的 Telegram 數字使用者 ID
classificationstring否分類上限(預設:INTERNAL)

步驟 4:開始聊天 ​

Daemon 重新啟動後,在 Telegram 中開啟您的機器人並傳送 /start。機器人會向您打招呼以確認連線正常。之後您就可以直接與代理聊天了。

分類行為 ​

classification 設定是一個上限——它控制可以通過此頻道流動的擁有者對話的最大資料敏感度。它不會統一套用到所有使用者。

每條訊息的運作方式:

  • 您向機器人傳送訊息(您的使用者 ID 與 ownerId 相符):Session 使用頻道上限。使用預設的 INTERNAL,您的代理可以與您分享內部等級的資料。
  • 其他人向機器人傳送訊息:他們的 session 會自動被標記為 PUBLIC 汙染,無論頻道分類為何。禁止降級寫入規則防止任何內部資料到達他們的 session。

這意味著單一個 Telegram 機器人可以安全地處理擁有者和非擁有者的對話。身份驗證在 LLM 看到訊息之前就在程式碼中發生——LLM 無法影響它。

頻道分類擁有者訊息非擁有者訊息
PUBLICPUBLICPUBLIC
INTERNAL(預設)最高至 INTERNALPUBLIC
CONFIDENTIAL最高至 CONFIDENTIALPUBLIC
RESTRICTED最高至 RESTRICTEDPUBLIC

請參閱分類系統了解完整模型,以及 Sessions 與汙染了解汙染升級的運作方式。

擁有者身份 ​

Triggerfish 透過比較發送者的 Telegram 數字使用者 ID 與已設定的 ownerId 來判斷擁有者身份。此檢查在 LLM 看到訊息之前就在程式碼中進行:

  • 相符——訊息被標記為擁有者,可以存取直到頻道分類上限的資料
  • 不相符——訊息被標記為 PUBLIC 汙染,禁止降級寫入規則防止任何分類資料流向該 session

務必設定您的擁有者 ID 若未設定 ownerId,Triggerfish 會將所有發送者視為擁有者。任何找到您機器人的人都可以存取您的資料,直到頻道的分類等級。這就是為什麼在設定過程中此欄位是必填的。 :::

訊息分塊 ​

Telegram 有 4,096 字元的訊息限制。當您的代理產生超過此長度的回應時,Triggerfish 會自動將其分割成多條訊息。分塊器在換行或空格處分割以保持可讀性——避免將單字或句子切成兩半。

支援的訊息類型 ​

Telegram 轉接器目前處理:

  • 文字訊息——完整的傳送和接收支援
  • 長回應——自動分塊以符合 Telegram 的限制

輸入指示器 ​

當您的代理正在處理請求時,機器人會在 Telegram 聊天中顯示「正在輸入...」。指示器在 LLM 生成回應時持續運作,並在回覆傳送後清除。

變更分類 ​

要提高或降低分類上限:

bash
triggerfish config add-channel telegram
# 提示時選擇覆蓋現有設定

或直接編輯 triggerfish.yaml:

yaml
channels:
  telegram:
    # botToken 儲存在作業系統金鑰鏈中
    ownerId: 8019881968
    classification: CONFIDENTIAL

有效等級:PUBLIC、INTERNAL、CONFIDENTIAL、RESTRICTED。

變更後重新啟動 daemon:triggerfish stop && triggerfish start