Skip to main content
Tlon 是一个构建于 Urbit 之上的去中心化通讯工具。OpenClaw 连接到你的 Urbit ship,并 响应私信和群聊消息。默认情况下,群组回复需要 @ 提及,此外还叠加了授权规则和所有者审批流程。 状态:捆绑插件。支持私信、群组提及、线程、富文本、图片上传/下载,以及 所有者审批系统。不支持表情反应和投票。

捆绑插件

Tlon 已捆绑在当前的 OpenClaw 发布版中;打包构建不需要单独安装。 在较旧的构建或不包含它的自定义安装中,请从 npm 安装:
使用不带版本的包名以跟踪当前发布标签。仅在需要可复现安装时才固定版本(@openclaw/[email protected])。 从本地检出安装:
详情:插件

设置

或者直接编辑配置:
直接编辑配置后请重启网关。然后向机器人发送私信,或在群聊中 @ 它。

入站持久性

OpenClaw 在代理分发之前会持久化已接受的 Tlon DM 和群聊事件。待处理或可重试的轮次在 Gateway 重启后仍会保留,并且工作会继续按每个群组频道或直接对等方串行执行。稳定的 Urbit 消息 ID 也会在其队列记录或保留的完成记录存在时抑制重复投递的事件。 在队列到代理的边界上,投递至少发生一次:在移交过程中发生崩溃可能会重放一个轮次。因此,产生外部副作用的代理操作在可行时应保持幂等。

私有/LAN ship

OpenClaw 默认会阻止私有/内部主机名和 IP 段,以防止 SSRF 攻击。如果你的 ship 运行在私有网络上(localhost、LAN IP、内部主机名),请显式启用:
适用于类似 http://localhost:8080http://192.168.x.x:8080,以及 http://my-ship.local:8080 的目标。仅对你信任的 ship URL 启用此项;这会为该账户的 HTTP 请求禁用 SSRF 保护。
channels.tlon.allowPrivateNetwork(扁平键)已弃用。openclaw doctor --fix 会自动将其移动到 channels.tlon.network.dangerouslyAllowPrivateNetwork

群组频道

手动固定频道,或开启自动发现:
在配置中未设置时,autoDiscoverChannels 的默认值为 false;安装向导会将该提示默认设为“是”,并明确写入 true。开启后,OpenClaw 会在启动时抓取已加入的群组,在接受群组邀请时监视新频道,并每 2 分钟重新检查一次。

访问控制

DM 白名单(为空 = 不允许任何 DM,除非发送者是 ownerShip):
群组授权默认按每个频道设为 restricted。设置 defaultAuthorizedShips 作为 基础配置,并按频道 nest 覆盖:
一旦机器人在某个线程中回复过,它就会继续响应该线程后续的消息,而无需再次提及。 channels.tlon.implicitMentions.threadParticipation 设置为 false,可要求对这些后续消息重新进行显式提及。账户覆盖使用 channels.tlon.accounts.<id>.implicitMentions。Tlon 目前不会生成 replyToBotquotedBot 事实,因此这些标志在这里没有作用。

所有者和审批系统

所有者船具有全局授权:DM 邀请始终会自动接受,群组邀请始终会自动接受,频道消息也始终会通过授权。所有者无需出现在 dmAllowlistdefaultAuthorizedShipsgroupInviteAllowlist 中。 当设置了 ownerShip 时,未授权的请求不会直接被丢弃——它们会排队等待审批,并向所有者发送 DM:
  • 来自不在 dmAllowlist 上的船只的 DM 请求
  • 频道中发送者未通过授权的提及
  • 来自不在 groupInviteAllowlist 上的船只的群组邀请(当自动接受关闭时,或虽然开启但邀请者未被列入允许名单时)
所有者在 DM 中回复以处理请求: 如果未配置 ownerShip,未授权的 DM 和频道提及会直接被丢弃并记录日志;不会出现审批提示。

自动接受设置

自动接受来自已在 dmAllowlist 中的飞船的 DM 邀请(无论此标志如何,所有者始终会被自动接受):
从允许列表中自动接受群组邀请(失败关闭:当 autoAcceptGroupInvites: truegroupInviteAllowlist 为空时,不会接受任何非所有者邀请):

通过 Urbit 设置存储实现热重载

上面的多数设置(dmAllowlistgroupInviteAllowlistgroupChannelsdefaultAuthorizedShipsautoDiscoverChannelsautoAcceptDmInvitesautoAcceptGroupInvitesownerShipshowModelSignature)会在首次运行时镜像到飞船的 %settings agent(desk moltbot,bucket tlon)中,之后从那里实时读取, 因此通过 Landscape 客户端或捆绑 skill 的设置命令所做的更改无需重启网关即可生效。channelRules 和待批准项也会以 JSON 形式持久化在那里。对于从未写入设置存储的值,文件配置仍然是唯一的真实来源。

投递目标(CLI/cron)

Use with openclaw message send or cron delivery:
  • DM: ~sampel-palnetdm/~sampel-palnet
  • Group: chat/~host-ship/channelgroup:~host-ship/channel

Bundled Skills

This plugin bundles @tloncorp/tlon-skill, which is a CLI for directly performing Urbit operations and can be used automatically after the plugin is installed:
  • Activity: mentions, replies, unread
  • Channels: list, create, rename
  • Contacts: list/get/update profile
  • Groups: create, join, invite/request flow, roles
  • Hooks: manage channel hooks
  • Messages: history, search
  • Direct Messages: send, react, accept/reject
  • Posts: react, delete
  • Notebook: publish to journal channels
  • Settings: hot-reload plugin configuration via the settings above

功能

故障排除

常见失败:
  • 忽略私信:发送者不在 dmAllowlist 中,并且批准流程未配置 ownerShip
  • 忽略群组消息:频道未被发现/固定,或者发送者授权失败且没有 ownerShip 可用于排队审批。
  • 连接错误:检查 ship URL 是否可访问;对于本地 ship,设置 network.dangerouslyAllowPrivateNetwork
  • 认证错误:登录代码会轮换——请从你的 ship 中复制当前代码。

配置参考

完整配置:配置

说明

  • 群组回复需要带有 @ 提及(例如 ~your-bot-ship),除非机器人已经加入该线程。
  • 线程回复会直接发送到线程中;机器人还会接收到该线程上下文的最后 10 条消息,作为 agent 的前置内容。
  • 富文本(粗体、斜体、代码、标题、列表)会转换为 Tlon 的原生格式。
  • 发送一条请求频道摘要的入站消息(例如“总结这个频道”)会触发内置的历史摘要功能,而不是正常的回复流程。

相关内容