捆绑插件
Tlon 已捆绑在当前的 OpenClaw 发布版中;打包构建不需要单独安装。 在较旧的构建或不包含它的自定义安装中,请从 npm 安装:@openclaw/[email protected])。
从本地检出安装:
设置
入站持久性
OpenClaw 在代理分发之前会持久化已接受的 Tlon DM 和群聊事件。待处理或可重试的轮次在 Gateway 重启后仍会保留,并且工作会继续按每个群组频道或直接对等方串行执行。稳定的 Urbit 消息 ID 也会在其队列记录或保留的完成记录存在时抑制重复投递的事件。 在队列到代理的边界上,投递至少发生一次:在移交过程中发生崩溃可能会重放一个轮次。因此,产生外部副作用的代理操作在可行时应保持幂等。私有/LAN ship
OpenClaw 默认会阻止私有/内部主机名和 IP 段,以防止 SSRF 攻击。如果你的 ship 运行在私有网络上(localhost、LAN IP、内部主机名),请显式启用:http://localhost:8080、http://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 目前不会生成 replyToBot 或 quotedBot 事实,因此这些标志在这里没有作用。
所有者和审批系统
dmAllowlist、defaultAuthorizedShips 或 groupInviteAllowlist 中。
当设置了 ownerShip 时,未授权的请求不会直接被丢弃——它们会排队等待审批,并向所有者发送 DM:
- 来自不在
dmAllowlist上的船只的 DM 请求 - 频道中发送者未通过授权的提及
- 来自不在
groupInviteAllowlist上的船只的群组邀请(当自动接受关闭时,或虽然开启但邀请者未被列入允许名单时)
如果未配置
ownerShip,未授权的 DM 和频道提及会直接被丢弃并记录日志;不会出现审批提示。
自动接受设置
自动接受来自已在dmAllowlist 中的飞船的 DM 邀请(无论此标志如何,所有者始终会被自动接受):
autoAcceptGroupInvites: true 且
groupInviteAllowlist 为空时,不会接受任何非所有者邀请):
通过 Urbit 设置存储实现热重载
上面的多数设置(dmAllowlist、groupInviteAllowlist、groupChannels、
defaultAuthorizedShips、autoDiscoverChannels、autoAcceptDmInvites、
autoAcceptGroupInvites、ownerShip、showModelSignature)会在首次运行时镜像到飞船的
%settings agent(desk moltbot,bucket tlon)中,之后从那里实时读取,
因此通过 Landscape 客户端或捆绑 skill 的设置命令所做的更改无需重启网关即可生效。channelRules 和待批准项也会以 JSON 形式持久化在那里。对于从未写入设置存储的值,文件配置仍然是唯一的真实来源。
投递目标(CLI/cron)
Use withopenclaw message send or cron delivery:
- DM:
~sampel-palnet或dm/~sampel-palnet - Group:
chat/~host-ship/channel或group:~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 的原生格式。
- 发送一条请求频道摘要的入站消息(例如“总结这个频道”)会触发内置的历史摘要功能,而不是正常的回复流程。