跳轉到主要內容
Tlon 是建構於 Urbit 上的去中心化通訊工具。OpenClaw 會連線到你的 Urbit 船艦,並回應 DM 與群組聊天訊息。群組回覆預設需要 @ 提及,並在其上疊加授權規則與擁有者核准流程。 狀態:內建外掛。支援 DM、群組提及、討論串、富文字、圖片上傳/下載,以及擁有者核准系統。不支援反應與投票。

內建外掛

Tlon 已內建於目前的 OpenClaw 發行版本;封裝建置不需要另外安裝。 在較舊的建置或排除它的自訂安裝中,請從 npm 安裝:
openclaw plugins install @openclaw/tlon
使用裸套件名稱可追蹤目前的發行標籤。只有在需要可重現安裝時,才釘選版本(@openclaw/tlon@x.y.z)。 從本機 checkout 安裝:
openclaw plugins install ./path/to/local/tlon-plugin
詳細資訊:外掛

設定

openclaw channels add --channel tlon --ship ~sampel-palnet --url https://your-ship-host --code lidlut-tabwed-pillex-ridrup
或直接編輯設定:
{
  channels: {
    tlon: {
      enabled: true,
      ship: "~sampel-palnet",
      url: "https://your-ship-host",
      code: "lidlut-tabwed-pillex-ridrup",
      ownerShip: "~your-main-ship", // recommended: your ship, always authorized
    },
  },
}
直接編輯設定後請重新啟動閘道。接著 DM 機器人,或在群組頻道中 @ 提及它。

私有/LAN 船艦

OpenClaw 預設會封鎖私有/內部主機名稱與 IP 範圍,以提供 SSRF 防護。如果你的船艦執行在私有網路上(localhost、LAN IP、內部主機名稱),請明確選擇啟用:
{
  channels: {
    tlon: {
      url: "http://localhost:8080",
      network: {
        dangerouslyAllowPrivateNetwork: true,
      },
    },
  },
}
適用於像 http://localhost:8080http://192.168.x.x:8080http://my-ship.local:8080 這類目標。只應為你信任的船艦 URL 啟用此選項;它會停用該帳號 HTTP 請求的 SSRF 防護。
channels.tlon.allowPrivateNetwork(扁平鍵)已淘汰。openclaw doctor --fix 會自動將它移至 channels.tlon.network.dangerouslyAllowPrivateNetwork

群組頻道

手動釘選頻道,或開啟自動探索:
{
  channels: {
    tlon: {
      groupChannels: ["chat/~host-ship/general", "chat/~host-ship/support"],
      autoDiscoverChannels: true,
    },
  },
}
autoDiscoverChannels 在設定中未設定時預設為 false;設定精靈會將提示預設為是,並明確寫入 true。開啟後,OpenClaw 會在啟動時 scry 已加入的群組、在接受群組邀請時監看新頻道,並每 2 分鐘重新檢查一次。

存取控制

DM 允許清單(空白 = 除非傳送者是 ownerShip,否則不允許任何 DM):
{
  channels: {
    tlon: {
      dmAllowlist: ["~zod", "~nec"],
    },
  },
}
群組授權預設每個頻道為 restricted。設定 defaultAuthorizedShips 作為基準,並依頻道 nest 覆寫:
{
  channels: {
    tlon: {
      defaultAuthorizedShips: ["~zod"],
      authorization: {
        channelRules: {
          "chat/~host-ship/general": {
            mode: "restricted",
            allowedShips: ["~zod", "~nec"],
          },
          "chat/~host-ship/announcements": {
            mode: "open",
          },
        },
      },
    },
  },
}
機器人一旦在討論串內回覆,就會持續回應該討論串中的後續訊息,而不需要再次提及。

擁有者與核准系統

{
  channels: {
    tlon: {
      ownerShip: "~your-main-ship",
    },
  },
}
擁有者船艦在任何地方都已授權:DM 邀請一律自動接受、群組邀請一律自動接受,且頻道訊息一律通過授權。擁有者不需要列在 dmAllowlistdefaultAuthorizedShipsgroupInviteAllowlist 中。 設定 ownerShip 後,未授權請求不會只是被丟棄,而是會佇列為待核准項目並 DM 擁有者:
  • 來自不在 dmAllowlist 中船艦的 DM 請求
  • 傳送者在頻道中未通過授權時的提及
  • 來自不在 groupInviteAllowlist 中船艦的群組邀請(自動接受關閉時,或已開啟但邀請者不在允許清單中時)
擁有者可在 DM 中回覆以處理請求:
擁有者回覆效果
approve / deny / block處理最近的待核准項目
approve <id> / deny <id>依 id 處理特定核准項目
block也會原生封鎖該船艦,使其無法重新連線
unblock ~ship解除原生封鎖
blocked列出目前已封鎖的船艦
pending列出待核准請求
未設定 ownerShip 時,未授權的 DM 與頻道提及只會被丟棄並記錄;不會出現核准提示。

自動接受設定

自動接受來自已在 dmAllowlist 中船艦的 DM 邀請(無論此旗標如何,擁有者一律會自動接受):
{
  channels: {
    tlon: {
      autoAcceptDmInvites: true,
    },
  },
}
自動接受來自允許清單的群組邀請(封閉失敗:若 autoAcceptGroupInvites: truegroupInviteAllowlist 為空,則不會接受任何非擁有者邀請):
{
  channels: {
    tlon: {
      autoAcceptGroupInvites: true,
      groupInviteAllowlist: ["~zod"],
    },
  },
}

透過 Urbit 設定儲存區熱重新載入

上述大多數設定(dmAllowlistgroupInviteAllowlistgroupChannelsdefaultAuthorizedShipsautoDiscoverChannelsautoAcceptDmInvitesautoAcceptGroupInvitesownerShipshowModelSignature)會在首次執行時鏡像到船艦的 %settings 代理程式(desk moltbot、bucket tlon),之後會從該處即時讀取,因此透過 Landscape 用戶端或內建技能的設定命令所做的變更,無需重新啟動閘道即可套用。channelRules 與待核准項目也會以 JSON 持久化在該處。檔案設定仍是從未寫入設定儲存區之值的真實來源。

傳遞目標(命令列介面/排程)

搭配 openclaw message send 或排程傳遞使用:
  • DM:~sampel-palnetdm/~sampel-palnet
  • 群組:chat/~host-ship/channelgroup:~host-ship/channel

內建技能

此外掛內建 @tloncorp/tlon-skill,這是一個用於直接 Urbit 操作的命令列介面;安裝外掛後即可自動使用:
  • 活動:提及、回覆、未讀
  • 頻道:列出、建立、重新命名
  • 聯絡人:列出/取得/更新個人資料
  • 群組:建立、加入、邀請/請求流程、角色
  • 鉤子:管理頻道鉤子
  • 訊息:歷史、搜尋
  • DM:傳送、反應、接受/拒絕
  • 貼文:反應、刪除
  • 筆記本:張貼到日記頻道
  • 設定:透過上述設定儲存區熱重新載入外掛設定

功能

功能狀態
直接訊息支援
群組/頻道支援(預設由提及門控)
討論串支援(一旦加入就會持續回覆)
富文字Markdown 會轉換為 Tlon 的原生格式
圖片下載傳入圖片、上傳傳出圖片
反應僅可透過內建技能使用
投票不支援
原生命令預設僅限擁有者

疑難排解

openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor
常見失敗:
  • DM 被忽略:傳送者不在 dmAllowlist 中,且未設定用於核准流程的 ownerShip
  • 群組訊息被忽略:頻道未被探索/釘選,或傳送者未通過授權且沒有 ownerShip 可佇列核准。
  • 連線錯誤:檢查船艦 URL 是否可連線;針對本機船艦設定 network.dangerouslyAllowPrivateNetwork
  • 驗證錯誤:登入碼會輪替,請從你的船艦複製目前的代碼。

設定參考

完整設定:設定
意義
channels.tlon.enabled啟用/停用頻道啟動。
channels.tlon.ship機器人的 Urbit 船艦名稱(例如 ~sampel-palnet)。
channels.tlon.url船艦 URL(例如 https://sampel-palnet.tlon.network)。
channels.tlon.code船艦登入碼。
channels.tlon.network.dangerouslyAllowPrivateNetwork允許 localhost/LAN 船艦 URL(SSRF 選擇啟用)。
channels.tlon.ownerShip擁有者船艦:一律授權,接收核准請求。
channels.tlon.dmAllowlist允許 DM 的船艦(空白 = 除擁有者外無)。
channels.tlon.autoAcceptDmInvites自動接受來自 dmAllowlist 中船艦的 DM。
channels.tlon.autoAcceptGroupInvites自動接受來自 groupInviteAllowlist 的群組邀請。
channels.tlon.groupInviteAllowlist群組邀請會被自動接受的船艦。
channels.tlon.autoDiscoverChannels自動探索已加入的群組頻道(預設:false)。
channels.tlon.groupChannels手動釘選的頻道 nest。
channels.tlon.defaultAuthorizedShips授權所有頻道的船艦(沒有規則相符時使用)。
channels.tlon.authorization.channelRules每個頻道 nest 的驗證模式 + 允許清單。
channels.tlon.showModelSignature_[Generated by <model>]_ 附加到回覆。
channels.tlon.responsePrefix加到傳出回覆前方的靜態前綴。
channels.tlon.accounts.<id>額外的具名帳號(多船艦設定)。

備註

  • 群組回覆需要 @ 提及(例如 ~your-bot-ship),除非機器人已加入該討論串。
  • 討論串回覆會落在討論串內;機器人也會取得前置給代理程式的最後 10 則討論串內容訊息。
  • 富文字(粗體、斜體、程式碼、標題、清單)會轉換為 Tlon 的原生格式。
  • 傳送要求頻道摘要的傳入訊息(例如「summarize this channel」)會觸發內建的歷史摘要,而不是一般回覆流程。

相關