Tlon(插件)
Tlon 是一个建立在 Urbit 之上的去中心化即时通讯工具。OpenClaw 连接到你的 Urbit 飞船,可以回复私信和群聊消息。群组回复默认需要 @ 提及,并可通过白名单进一步限制。
状态:通过插件支持。支持私信、群组提及、线程回复、富文本格式和图片上传。暂不支持表情回应和投票。
需要安装插件
Tlon 以插件形式提供,不包含在核心安装中。
通过 CLI(npm 仓库)安装:
openclaw plugins install @openclaw/tlon
本地代码安装(从 Git 仓库运行时):
openclaw plugins install ./extensions/tlon
详情:插件
设置
- 安装 Tlon 插件。
- 获取你的飞船 URL 和登录码。
- 配置
channels.tlon。 - 重启 Gateway。
- 给机器人发私信或在群组频道中提及它。
最小配置(单账户):
{
channels: {
tlon: {
enabled: true,
ship: "~sampel-palnet",
url: "https://your-ship-host",
code: "lidlut-tabwed-pillex-ridrup",
ownerShip: "~your-main-ship", // 推荐:你的飞船,始终允许
},
},
}
私有/局域网飞船
默认情况下,OpenClaw 出于 SSRF 保护会阻止私有/内部主机名和 IP 范围。如果你的飞船运行在私有网络上(localhost、局域网 IP 或内部主机名),必须显式启用:
{
channels: {
tlon: {
url: "http://localhost:8080",
allowPrivateNetwork: true,
},
},
}
适用于以下 URL:
http://localhost:8080http://192.168.x.x:8080http://my-ship.local:8080
注意: 仅在你信任本地网络时才启用此选项。此设置会禁用对飞船 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",
},
},
},
},
},
}
所有者与审批系统
设置所有者飞船,当未授权用户尝试交互时接收审批请求:
{
channels: {
tlon: {
ownerShip: "~your-main-ship",
},
},
}
所有者飞船自动获得全部授权——私信邀请会被自动接受,频道消息始终允许。你无需将所有者添加到 dmAllowlist 或 defaultAuthorizedShips。
设置后,所有者会收到以下私信通知:
- 来自不在白名单中的飞船的私信请求
- 在没有授权的频道中被提及
- 群组邀请请求
自动接受设置
自动接受私信邀请(来自 dmAllowlist 中的飞船):
{
channels: {
tlon: {
autoAcceptDmInvites: true,
},
},
}
自动接受群组邀请:
{
channels: {
tlon: {
autoAcceptGroupInvites: true,
},
},
}
投递目标(CLI/定时任务)
与 openclaw message send 或定时投递配合使用:
- 私信:
~sampel-palnet或dm/~sampel-palnet - 群组:
chat/~host-ship/channel或group:~host-ship/channel
内置技能
Tlon 插件包含一个内置技能(@tloncorp/tlon-skill),提供 Tlon 操作的 CLI 访问:
- 联系人:获取/更新资料、列出联系人
- 频道:列出、创建、发布消息、获取历史记录
- 群组:列出、创建、管理成员
- 私信:发送消息、给消息添加表情
- 表情回应:给帖子和私信添加/移除 emoji 表情
- 设置:通过斜杠命令管理插件权限
安装插件后技能自动可用。
功能支持
| 功能 | 状态 |
|---|---|
| 私信 | ✅ 已支持 |
| 群组/频道 | ✅ 已支持(默认需提及) |
| 线程 | ✅ 已支持(自动在线程中回复) |
| 富文本 | ✅ Markdown 转换为 Tlon 格式 |
| 图片 | ✅ 上传到 Tlon 存储 |
| 表情回应 | ✅ 通过内置技能 |
| 投票 | 暂不支持 |
| 原生命令 | ✅ 已支持(默认仅所有者) |
故障排查
首先运行以下诊断命令:
openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor
常见故障:
- 私信被忽略:发送者不在
dmAllowlist中,且未配置ownerShip来处理审批流程。 - 群组消息被忽略:频道未被发现或发送者未获得授权。
- 连接错误:检查飞船 URL 是否可达;本地飞船需启用
allowPrivateNetwork。 - 认证错误:确认登录码是最新的(登录码会轮换)。
配置参考
完整配置:配置
频道选项:
channels.tlon.enabled:启用/禁用频道启动。channels.tlon.ship:机器人的 Urbit 飞船名称(如~sampel-palnet)。channels.tlon.url:飞船 URL(如https://sampel-palnet.tlon.network)。channels.tlon.code:飞船登录码。channels.tlon.allowPrivateNetwork:允许 localhost/局域网 URL(SSRF 绕过)。channels.tlon.ownerShip:审批系统的所有者飞船(始终获得授权)。channels.tlon.dmAllowlist:允许私信的飞船(空 = 不允许)。channels.tlon.autoAcceptDmInvites:自动接受白名单飞船的私信。channels.tlon.autoAcceptGroupInvites:自动接受所有群组邀请。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 存储并作为图片块嵌入。