Tlon
Tlon 是一个构建在 Urbit 上的去中心化消息传递应用。OpenClaw 连接到您的 Urbit ship 并可以 响应私信和群组聊天消息。默认情况下,群组回复需要 @ 提及,并且可以通过允许列表进一步进行限制。
状态:捆绑插件。支持私信、群组提及、线程回复、富文本格式和 图片上传。尚不支持反应和投票。
在当前的 OpenClaw 版本中,Tlon 作为捆绑插件提供,因此普通的打包 构建无需单独安装。
如果您使用的是旧版本构建或排除了 Tlon 的自定义安装,请安装当前的 npm 软件包:
通过 CLI (npm registry) 安装:
openclaw plugins install @openclaw/tlon使用基础软件包以遵循当前官方发布标签。仅在需要可重现的安装时才固定确切版本。
本地检出(当从 git 仓库运行时):
openclaw plugins install ./path/to/local/tlon-plugin详情:插件
- 确保 Tlon 插件可用。
- 当前打包的 OpenClaw 版本已将其捆绑在内。
- 旧版本/自定义安装可以使用上述命令手动添加它。
- 准备好您的 ship URL 和登录代码。
- 配置
channels.tlon。 - 重启网关。
- 向机器人发送私信或在群组渠道中提及它。
最小配置(单个账户):
{ 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 allowed }, },}私有/LAN ship
Section titled “私有/LAN ship”默认情况下,为了防止 SSRF,OpenClaw 会阻止私有/内部主机名和 IP 范围。 如果您的 ship 运行在私有网络(localhost、LAN IP 或内部主机名)上, 您必须明确选择加入:
{ channels: { tlon: { url: "http://localhost:8080", allowPrivateNetwork: true, }, },}这适用于以下 URL:
http://localhost:8080http://192.168.x.x:8080http://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", }, }, }, }, },}所有者和审批系统
Section titled “所有者和审批系统”设置一个所有者 ship,以便在未授权用户尝试交互时接收审批请求:
{ channels: { tlon: { ownerShip: "~your-main-ship", }, },}所有者 ship 在任何地方都会自动获得授权 —— 私信邀请会自动接受,
渠道消息也始终被允许。您无需将所有者添加到 dmAllowlist 或
defaultAuthorizedShips 中。
设置后,所有者将收到以下情况的私信通知:
- 来自不在允许列表中的 ship 的私信请求
- 在未授权渠道中的提及
- 群组邀请请求
自动接受设置
Section titled “自动接受设置”自动接受私信邀请(针对 dmAllowlist 中的 ship):
{ channels: { tlon: { autoAcceptDmInvites: true, }, },}自动接受来自受信任 ship 的群组邀请:
{ channels: { tlon: { autoAcceptGroupInvites: true, groupInviteAllowlist: ["~zod"], }, },}当 groupInviteAllowlist 为空时,autoAcceptGroupInvites 默认为拒绝。将允许列表设置为应自动接受其群组邀请的 ship。
传递目标 (CLI/cron)
Section titled “传递目标 (CLI/cron)”将这些与 openclaw message send 或 cron 传递一起使用:
- 私信:
~sampel-palnet或dm/~sampel-palnet - 群组:
chat/~host-ship/channel或group:~host-ship/channel
Tlon 插件包含一个内置技能 (@tloncorp/tlon-skill),提供对 CLI 操作的 Tlon 访问:
- 联系人:获取/更新资料,列出联系人
- 渠道:列出、创建、发布消息、获取历史记录
- 群组:列出、创建、管理成员
- 私信:发送消息,对消息做出反应
- 反应:对帖子和私信添加/移除表情符号反应
- 设置:通过斜杠命令管理插件权限
安装插件后,该技能自动可用。
| 功能 | 状态 |
|---|---|
| 私信 | ✅ 已支持 |
| 群组/渠道 | ✅ 已支持(默认需要提及) |
| 线程 | ✅ 已支持(在线程中自动回复) |
| 富文本 | ✅ Markdown 转换为 Tlon 格式 |
| 图片 | ✅ 已上传到 Tlon 存储 |
| 反应 | ✅ 通过内置技能 |
| 投票 | ❌ 尚不支持 |
| 原生命令 | ✅ 已支持(默认仅限所有者) |
首先运行此 ladder:
openclaw statusopenclaw gateway statusopenclaw logs --followopenclaw doctor常见故障:
- 私信被忽略:发送者不在
dmAllowlist中且未配置ownerShip用于审批流程。 - 群组消息被忽略:渠道未发现或发送者未获授权。
- 连接错误:检查 ship URL 是否可达;为本地 ship 启用
allowPrivateNetwork。 - 认证错误:验证登录码是否为当前有效(代码会轮换)。
完整配置:Configuration
提供商选项:
channels.tlon.enabled:启用/禁用渠道启动。channels.tlon.ship:机器人的 Urbit 船名(例如~sampel-palnet)。channels.tlon.url:船的 URL(例如https://sampel-palnet.tlon.network)。channels.tlon.code:船的登录码。channels.tlon.allowPrivateNetwork:允许本地主机/LAN URL(SSRF 绕过)。channels.tlon.ownerShip:用于审批系统的所有者船(始终已授权)。channels.tlon.dmAllowlist:允许发送私信的船(空 = 无)。channels.tlon.autoAcceptDmInvites:自动接受来自白名单船的私信。channels.tlon.autoAcceptGroupInvites:自动接受来自白名单船的群组邀请。channels.tlon.groupInviteAllowlist:其群组邀请可能会被自动接受的船。channels.tlon.autoDiscoverChannels:自动发现群组渠道(默认:true)。channels.tlon.groupChannels:手动固定的频道巢。channels.tlon.defaultAuthorizedShips:针对所有频道已授权的船。channels.tlon.authorization.channelRules:每个频道的授权规则。channels.tlon.showModelSignature:将模型名称追加到消息中。
- 群组回复需要提及(例如
~your-bot-ship)才能响应。 - 线程回复:如果入站消息在线程中,OpenClaw 将在线程内回复。
- 富文本:Markdown 格式(粗体、斜体、代码、标题、列表)会被转换为 Tlon 的原生格式。
- 图片:URL 会上传到 Tlon 存储并作为图片块嵌入。