Tlon(外掛)

Tlon 是建立在 Urbit 上的去中心化通訊軟體。OpenClaw 連接到你的 Urbit ship,可以 回覆私訊和群組聊天訊息。群組回覆預設需要 @ 提及,並可透過許可清單進一步限制。

狀態:透過外掛支援。私訊、群組提及、討論串回覆、富文字格式和 圖片上傳皆已支援。表情回應和投票尚未支援。

需要外掛

Tlon 是外掛式的,不包含在核心安裝中。

透過 CLI(npm 套件庫)安裝:

openclaw plugins install @openclaw/tlon

本機 checkout(在 git repo 中開發):

openclaw plugins install ./extensions/tlon

詳情:外掛

設定

  1. 安裝 Tlon 外掛。
  2. 取得你的 ship URL 和登入代碼。
  3. 設定 channels.tlon
  4. 重啟 Gateway。
  5. 私訊機器人或在群組頻道中提及它。

最小設定(單帳號):

{
  channels: {
    tlon: {
      enabled: true,
      ship: "~sampel-palnet",
      url: "https://your-ship-host",
      code: "lidlut-tabwed-pillex-ridrup",
      ownerShip: "~your-main-ship", // 推薦:你的 ship,永遠被允許
    },
  },
}

私有/區域網路 ship

OpenClaw 預設會封鎖私有/內部主機名稱和 IP 範圍以防止 SSRF 攻擊。 如果你的 ship 在私有網路上運行(localhost、區域網路 IP 或內部主機名稱), 你必須明確選擇啟用:

{
  channels: {
    tlon: {
      url: "http://localhost:8080",
      allowPrivateNetwork: true,
    },
  },
}

適用於以下 URL:

  • http://localhost:8080
  • http://192.168.x.x:8080
  • http://my-ship.local:8080

警告: 只在你信任本機網路時才啟用此設定。此設定會停用對你 ship URL 請求的 SSRF 保護。

群組頻道

自動發現預設啟用。你也可以手動指定頻道:

{
  channels: {
    tlon: {
      groupChannels: ["chat/~host-ship/general", "chat/~host-ship/support"],
    },
  },
}

停用自動發現:

{
  channels: {
    tlon: {
      autoDiscoverChannels: false,
    },
  },
}

存取控制

私訊許可清單(空 = 不允許私訊,使用 ownerShip 進行核准流程):

{
  channels: {
    tlon: {
      dmAllowlist: ["~zod", "~nec"],
    },
  },
}

群組授權(預設受限):

{
  channels: {
    tlon: {
      defaultAuthorizedShips: ["~zod"],
      authorization: {
        channelRules: {
          "chat/~host-ship/general": {
            mode: "restricted",
            allowedShips: ["~zod", "~nec"],
          },
          "chat/~host-ship/announcements": {
            mode: "open",
          },
        },
      },
    },
  },
}

擁有者與核准系統

設定擁有者 ship 以在未授權使用者嘗試互動時接收核准請求:

{
  channels: {
    tlon: {
      ownerShip: "~your-main-ship",
    },
  },
}

擁有者 ship 在所有地方自動獲得授權 — 私訊邀請會自動接受,頻道訊息永遠被允許。你不需要將擁有者加入 dmAllowlistdefaultAuthorizedShips

設定後,擁有者會收到以下私訊通知:

  • 不在許可清單中的 ship 的私訊請求
  • 在沒有授權的頻道中被提及
  • 群組邀請請求

自動接受設定

自動接受私訊邀請(針對 dmAllowlist 中的 ship):

{
  channels: {
    tlon: {
      autoAcceptDmInvites: true,
    },
  },
}

自動接受群組邀請:

{
  channels: {
    tlon: {
      autoAcceptGroupInvites: true,
    },
  },
}

訊息傳送目標(CLI/排程)

搭配 openclaw message send 或排程傳送使用:

  • 私訊:~sampel-palnetdm/~sampel-palnet
  • 群組:chat/~host-ship/channelgroup:~host-ship/channel

內建技能

Tlon 外掛包含一個內建技能(@tloncorp/tlon-skill),提供 Tlon 操作的 CLI 存取:

  • 聯絡人:取得/更新個人檔案、列出聯絡人
  • 頻道:列出、建立、發布訊息、取得歷史記錄
  • 群組:列出、建立、管理成員
  • 私訊:發送訊息、對訊息回應表情
  • 表情回應:對貼文和私訊新增/移除表情回應
  • 設定:透過斜線指令管理外掛權限

安裝外掛後技能會自動可用。

功能

功能狀態
私訊支援
群組/頻道支援(預設需要提及)
討論串支援(自動在討論串中回覆)
富文字Markdown 轉換為 Tlon 格式
圖片上傳至 Tlon 儲存空間
表情回應透過內建技能支援
投票尚未支援
原生指令支援(預設僅限擁有者)

疑難排解

依序執行以下指令:

openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor

常見故障:

  • 私訊被忽略:發送者不在 dmAllowlist 中且未設定 ownerShip 用於核准流程。
  • 群組訊息被忽略:頻道未被發現或發送者未獲授權。
  • 連接錯誤:檢查 ship URL 是否可連線;本機 ship 請啟用 allowPrivateNetwork
  • 認證錯誤:確認登入代碼是最新的(代碼會輪換)。

設定參考

完整設定:設定

供應商選項:

  • channels.tlon.enabled:啟用/停用頻道啟動。
  • channels.tlon.ship:機器人的 Urbit ship 名稱(例如 ~sampel-palnet)。
  • channels.tlon.url:ship URL(例如 https://sampel-palnet.tlon.network)。
  • channels.tlon.code:ship 登入代碼。
  • channels.tlon.allowPrivateNetwork:允許 localhost/區域網路 URL(SSRF 繞過)。
  • channels.tlon.ownerShip:核准系統的擁有者 ship(永遠獲授權)。
  • channels.tlon.dmAllowlist:允許私訊的 ship(空 = 不允許)。
  • channels.tlon.autoAcceptDmInvites:自動接受許可清單中 ship 的私訊。
  • channels.tlon.autoAcceptGroupInvites:自動接受所有群組邀請。
  • channels.tlon.autoDiscoverChannels:自動發現群組頻道(預設:true)。
  • channels.tlon.groupChannels:手動指定的頻道巢路徑。
  • channels.tlon.defaultAuthorizedShips:對所有頻道獲授權的 ship。
  • channels.tlon.authorization.channelRules:按頻道的授權規則。
  • channels.tlon.showModelSignature:在訊息後附加模型名稱。

備註

  • 群組回覆需要提及(例如 ~your-bot-ship)才會回覆。
  • 討論串回覆:如果接收的訊息在討論串中,OpenClaw 會在討論串中回覆。
  • 富文字:Markdown 格式(粗體、斜體、程式碼、標題、清單)會轉換為 Tlon 的原生格式。
  • 圖片:URL 會上傳至 Tlon 儲存空間並嵌入為圖片區塊。