Tlon は Urbit 上に構築された分散型メッセンジャーです。OpenClaw は Urbit ship に接続し、
DM とグループチャットのメッセージに応答します。グループでの返信にはデフォルトで @ メンションが必要で、
さらに認可ルールとオーナー承認フローが適用されます。
ステータス: バンドル済み Plugin。DM、グループメンション、スレッド、リッチテキスト、画像のアップロード/ダウンロード、
およびオーナー承認システムに対応しています。リアクションと投票には対応していません。
バンドル済み Plugin
Tlon は現在の OpenClaw リリースにバンドルされており、パッケージビルドでは個別にインストールする必要はありません。
Tlon を含まない古いビルドまたはカスタムインストールでは、npm からインストールします。
現在のリリースタグを追跡するには、バージョンを付けないパッケージ名を使用します。再現可能なインストールが必要な場合にのみ、バージョン(@openclaw/tlon@x.y.z)
を固定してください。
ローカルチェックアウトからインストールする場合:
詳細: Plugin
セットアップ
または、設定を直接編集します。
設定を直接編集した後は Gateway を再起動します。その後、ボットに DM を送信するか、グループ
チャンネルで @ メンションします。
受信イベントの永続性
OpenClaw は、受理した Tlon の DM およびグループチャットイベントをエージェントへのディスパッチ前に永続化します。保留中または再試行可能なターンは Gateway の再起動後も維持され、処理はグループチャンネルまたは直接通信する相手ごとに直列化されたままです。安定した Urbit メッセージ ID により、キューレコードまたは保持された完了レコードが存在する間は、再配信されたイベントも抑制されます。
キューからエージェントへの境界をまたぐ配信は少なくとも 1 回行われます。引き渡し中にクラッシュすると、ターンが再実行される可能性があります。そのため、外部に副作用を生じさせるエージェントアクションは、実用上可能な限り冪等性を維持する必要があります。
プライベート/LAN 上の ship
OpenClaw は、SSRF 防止のため、デフォルトでプライベート/内部ホスト名と IP 範囲をブロックします。
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 は起動時に参加済みグループを scry し、
グループ招待の承認に伴って新しいチャンネルを監視し、2 分ごとに再確認します。
アクセス制御
DM 許可リスト(空の場合、送信者が ownerShip でない限り DM は許可されません):
グループ認可は、チャンネルごとにデフォルトで restricted になります。ベースラインとして
defaultAuthorizedShips を設定し、チャンネル nest ごとに上書きします。
ボットがスレッド内で一度返信すると、そのスレッド内の以降のメッセージには、
再度メンションしなくても応答し続けます。
これらの後続メッセージにも新しい明示的なメンションを必須にするには、channels.tlon.implicitMentions.threadParticipation: false を設定します。
アカウント単位の上書きには channels.tlon.accounts.<id>.implicitMentions を使用します。Tlon は現在、
replyToBot または quotedBot のファクトを生成しないため、これらのフラグはここでは効果がありません。
オーナーと承認システム
オーナー ship はすべての場所で認可されます。DM 招待は常に自動承認され、グループ招待も
常に自動承認され、チャンネルメッセージは常に認可を通過します。オーナーを
dmAllowlist、defaultAuthorizedShips、または groupInviteAllowlist に含める必要はありません。
ownerShip が設定されている場合、未認可のリクエストは単に破棄されるのではなく、承認待ちとして
キューに追加され、オーナーに DM で通知されます。
dmAllowlist に含まれていない ship からの DM リクエスト
- 送信者が認可に失敗したチャンネルでのメンション
groupInviteAllowlist に含まれていない ship からのグループ招待(自動承認が無効な場合、または有効でも
招待者が許可リストに含まれていない場合)
オーナーはリクエストを処理するため、DM で返信します。
ownerShip が設定されていない場合、未認可の DM とチャンネルメンションは単に破棄され、ログに記録されます。
承認プロンプトは表示されません。
自動承認設定
すでに dmAllowlist に含まれている ship からの DM 招待を自動承認します(このフラグに関係なく、
オーナーは常に自動承認されます)。
許可リストに基づいてグループ招待を自動承認します(フェイルクローズ: autoAcceptGroupInvites: true で
groupInviteAllowlist が空の場合、オーナー以外からの招待は一切承認されません)。
Urbit 設定ストアによるホットリロード
上記の設定の大半(dmAllowlist、groupInviteAllowlist、groupChannels、
defaultAuthorizedShips、autoDiscoverChannels、autoAcceptDmInvites、
autoAcceptGroupInvites、ownerShip、showModelSignature)は、初回実行時に ship の
%settings エージェント(desk moltbot、bucket tlon)へミラーリングされ、その後はそこからリアルタイムに読み込まれます。
そのため、Landscape クライアントまたはバンドル済み Skill の設定コマンドで行った変更は、
Gateway を再起動せずに適用されます。channelRules と承認待ちも JSON としてそこに永続化されます。
設定ストアに一度も書き込まれていない値については、ファイル設定が引き続き信頼できる情報源となります。
配信先(CLI/Cron)
openclaw message send または Cron 配信で使用します。
- DM:
~sampel-palnet または dm/~sampel-palnet
- グループ:
chat/~host-ship/channel または group:~host-ship/channel
バンドル済み Skill
この Plugin には、Urbit を直接操作するための CLI である
@tloncorp/tlon-skill がバンドルされており、Plugin のインストール後に自動的に使用できます。
- アクティビティ: メンション、返信、未読
- チャンネル: 一覧表示、作成、名前変更
- 連絡先: プロフィールの一覧表示/取得/更新
- グループ: 作成、参加、招待/リクエストフロー、ロール
- フック: チャンネルフックの管理
- メッセージ: 履歴、検索
- DM: 送信、リアクション、承認/拒否
- 投稿: リアクション、削除
- ノートブック: 日記チャンネルへの投稿
- 設定: 上記の設定ストアを介した Plugin 設定のホットリロード
トラブルシューティング
よくある問題:
- DM が無視される: 送信者が
dmAllowlist に含まれておらず、承認フロー用の ownerShip も設定されていません。
- グループメッセージが無視される: チャンネルが検出/固定されていないか、送信者が認可に失敗し、承認を
キューに追加するための
ownerShip がありません。
- 接続エラー: ship URL に到達できることを確認してください。ローカルの ship には
network.dangerouslyAllowPrivateNetwork を設定します。
- 認証エラー: ログインコードはローテーションされます。ship から現在のコードをコピーしてください。
設定リファレンス
完全な設定: 設定
- グループへの返信には、ボットがすでにそのスレッドに参加している場合を除き、@メンション(例:
~your-bot-ship)が必要です。
- スレッドへの返信はスレッド内に投稿されます。また、エージェント向けに、スレッドの直近10件のメッセージがコンテキストとして先頭に追加されます。
- リッチテキスト(太字、斜体、コード、見出し、リスト)はTlonのネイティブ形式に変換されます。
- チャンネルの要約を求める受信メッセージ(例: 「このチャンネルを要約して」)を送信すると、通常の返信フローではなく、組み込みの履歴要約が実行されます。
関連項目