OpenClaw

OpenClaw Tlon チャンネル

分散型
上級

OpenClaw を Tlon に接続します。Tlon は Urbit 上に構築された分散型メッセンジャーです。この統合により、AI アシスタントが Tlon のピアツーピアネットワーク上でダイレクトメッセージやグループメンションを受信・応答できるようになります。中央集権サーバーも企業アカウントも不要で、Urbit シップの ID と認証コードだけで利用できます。ソブリンコンピューティング愛好者やデータ所有権を重視する組織に最適です。

基本情報
難易度上級
カテゴリ分散型
対応機能数1 / 6

Tlon 対応機能

テキストメッセージ

対応

メディア・ファイル

非対応

リアクション

非対応

スレッド

非対応

音声メッセージ

非対応

グループチャット

非対応

Tlon 前提条件

  • OpenClaw Gateway がインストールされ稼働中であること
  • HTTP 経由でアクセス可能な Urbit シップ(プラネット、スター、またはコメット)が稼働中であること
  • シップの認証コード(シップの Web インターフェースから取得可能)
  • サーバーに Node.js 18+ がインストールされていること

Tlon クイックセットアップ

1

Tlon プラグインをインストール

'openclaw plugins install @openclaw/tlon' を実行して Tlon チャネルを追加します。または 'openclaw onboard' や 'openclaw channels add' を使用し、プラグインリストから Tlon を選択します。インストール後に Gateway を再起動してください。

2

Urbit シップの認証情報を設定

Urbit シップ識別子(例: ~sampel-palnet)、シップのホスト URL(例: http://localhost:8080)、認証コードを環境変数として設定します。openclaw.json 設定で ${URBIT_SHIP}、${URBIT_URL}、${URBIT_CODE} を使用して参照します。

3

起動してテストメッセージを送信

'openclaw start' で Gateway を再起動します。Urbit シップで Tlon アプリを開き、ボットのシップにダイレクトメッセージを送信します。ボットは自動的に復号、処理、応答します。

Tlon 設定例

config.json
{
  "channels": {
    "tlon": {
      "ship": "${URBIT_SHIP}",
      "url": "${URBIT_URL}",
      "code": "${URBIT_CODE}",
      "enabled": true
    }
  }
}

Tlon 詳細ドキュメント

アーキテクチャ概要

Tlon は Urbit 上に構築されたメッセージングアプリケーションです。Urbit は各ユーザーが独自のサーバー(「シップ」と呼ばれる)を運用するピアツーピアコンピューティングプラットフォームです。中央集権プラットフォームとは異なり、データは自分のシップに保存され、完全に自分で管理します。 メッセージフローは以下の通りです: 1. ユーザーが Tlon グループチャットで DM を送信するか、ボットを @ メンションする 2. メッセージが Urbit の Ames ネットワークプロトコルを通じてボットのシップに配信される 3. OpenClaw がシップの HTTP API を通じてメッセージを受信する 4. Gateway が AI エージェントを通じてメッセージを処理し、同じ API を通じて応答を送信する Urbit はピアツーピアネットワークであるため、停止や検閲の対象となる中央サーバーは存在しません。各シップは独自の状態を維持し、メッセージは Ames プロトコルを通じてシップ間で直接配信されます。
ボットは Urbit シップのコンパニオンプロセスとして動作します。外部サービスではなく、シップのローカル HTTP API を通じて接続します。
Urbit シップには永続的なアイデンティティがあります:~sampel-palnet のようなプラネットはネットワーク上の永久アドレスです。

プラグインインストール

Tlon チャネルはコア Gateway に組み込まれるのではなく、オプションの OpenClaw プラグインとして配布されます。これにより基本インストールを軽量に保ちながら、必要に応じて Tlon/Urbit サポートを追加できます。 インストール方法: • **npm(推奨):** 'openclaw plugins install @openclaw/tlon' を実行して安定版をインストール。 • **ローカル開発:** プラグインリポジトリをクローンし、'openclaw plugins install ./extensions/tlon' でローカルディレクトリからインストール。 • **インタラクティブセットアップ:** 'openclaw onboard' または 'openclaw channels add' を実行し、リストから Tlon を選択。 インストール後、プラグインを有効にするために Gateway を再起動してください。
'openclaw plugins list' を実行して Tlon プラグインがインストールされアクティブであることを確認してください。

Urbit シップのセットアップと認証

OpenClaw を Tlon に接続するには、Urbit シップから 3 つの情報が必要です: 1. **シップ識別子** — Urbit ID(例: ~sampel-palnet)。ボットとして機能するシップです。 2. **ホスト URL** — シップにアクセスできる HTTP エンドポイント。Urbit はデフォルトでポート 80 を使用し、ポート 80 が使用中の場合は 8080 にフォールバックします(例: http://localhost:8080)。実際のポートはシップの起動ログで確認してください。 3. **認証コード** — API リクエストの認証に使用されるシークレットコード。シップの Web インターフェースの設定、または Dojo(Urbit のコマンドライン)で '+code' を実行して取得できます。 OpenClaw はこれらの認証情報を使用してシップの HTTP API で認証し、受信メッセージを購読します。
openclaw.json
{
  "channels": {
    "tlon": {
      "ship": "${URBIT_SHIP}",
      "url": "${URBIT_URL}",
      "code": "${URBIT_CODE}"
    }
  }
}
認証コードを openclaw.json に直接ハードコードしないでください。常に環境変数(例: ${URBIT_CODE})を使用し、シェルまたは .env ファイルで 'export URBIT_CODE="sampel-ticlyt-migfun-falmel"' のように設定してください。

自動検出とチャネル固定

デフォルトでは、OpenClaw は Urbit シップ上のグループチャネルを自動検出し、ボットが参加しているすべてのグループでメンションに応答できるようにします。自動検出を無効にして、特定のチャネルを手動で固定することもできます。 Tlon のチャネルパスは chat/~host-ship/channel-name の形式です。例えば、'chat/~host-ship/general' は ~host-ship がホストする 'general' チャットチャネルを指します。 自動検出を無効にすると、固定されたチャネルのみが監視されます。ボットをすべてのグループではなく特定の会話にのみ参加させたい場合に便利です。
openclaw.json
{
  "channels": {
    "tlon": {
      "autoDiscovery": false,
      "channels": [
        "chat/~host-ship/general",
        "chat/~host-ship/support"
      ]
    }
  }
}
自動検出はデフォルトで有効です。autoDiscovery: false に設定すると、ボットは固定チャネルのみに制限されます。
チャネルパスは chat/~host-ship/channel-name 形式を使用します。各チャネルの正確なパスは Tlon アプリで確認してください。

DM ポリシー

DM(ダイレクトメッセージ)ポリシーは、Tlon 経由で AI アシスタントと対話できる人を制御します。Urbit シップには永続的なアイデンティティがあるため、アクセス制御はシップアドレスに基づきます。 OpenClaw は Tlon チャネルに対して以下の DM ポリシーをサポートしています: • **open(デフォルト)** — 任意のシップがボットに DM を送信できます。Tlon の DM は双方が Urbit ネットワーク上にいることを要求するため、比較的安全です。 • **allowlist** — allowFrom にリストされたシップのみがボットにメッセージを送信できます。それ以外は無視されます。 allowFrom を空の配列に設定すると、すべてのシップが許可されます(open モードと同等)。特定のシップアドレスを追加してアクセスを制限します。
openclaw.json
{
  "channels": {
    "tlon": {
      "allowFrom": [
        "~sampel-palnet",
        "~timluc-miptev"
      ]
    }
  }
}

グループアクセス制御

Tlon のグループチャネルには独自のアクセス制御レイヤーがあります。デフォルトではグループは制限されており、ボットは承認されたシップが明示的にリストされたグループでのみ応答します。 各グループチャネルは以下を設定できます: • **authorized** — このグループでボットをトリガーできるシップアドレスのリスト • **mode** — 'restricted'(承認されたシップのみ)または 'open'(任意のグループメンバー) グループでは、ボットは @ メンションされた場合にのみ応答します。これにより、忙しいグループチャットでボットがすべてのメッセージに返信するのを防ぎます。
openclaw.json
{
  "channels": {
    "tlon": {
      "groups": {
        "chat/~host-ship/general": {
          "mode": "restricted",
          "authorized": ["~sampel-palnet"]
        },
        "chat/~host-ship/public": {
          "mode": "open"
        }
      }
    }
  }
}
制限モードでは、'authorized' にリストされたシップのみがボットの応答をトリガーできます。
グループ応答には @ メンションが必要です。オープンモードでもボットは通常のメッセージには応答しません。

配信ターゲット(CLI とスケジュールタスク)

OpenClaw は CLI やスケジュールされた cron ジョブを通じたプロアクティブなメッセージ送信をサポートしています。Tlon チャネルでは、DM とグループチャネルの両方をターゲットにできます。 DM 配信ターゲット: • ~sampel-palnet — このシップに DM を送信 • dm/~sampel-palnet — 明示的な DM 形式 グループ配信ターゲット: • chat/~host-ship/channel — 特定のグループチャネルに投稿 • group:~host-ship/channel — 代替グループ形式 これは特定のシップやグループチャネルにスケジュール通知、アラート、定期レポートを送信するのに便利です。
CLI examples
# Send a DM to a specific ship
openclaw send tlon ~sampel-palnet "Your daily report is ready."

# Post to a group channel
openclaw send tlon chat/~host-ship/general "System status: all clear."

メディア処理の制限

現在の Tlon 統合はテキストメッセージのみをサポートしています。プラグインの Urbit API 統合の制限により、リアクション、投票、ネイティブメディアアップロードはサポートされていません。 AI エージェントがメディア(画像、ファイルなど)を含む応答を生成した場合、プラグインはテキストのみの配信にフォールバックします: • 画像 — URL がインラインで表示される代わりにメッセージテキストに追加される • ファイル — テキスト応答にダウンロードリンクが含まれる • リアクション — 未サポート。ボットはメッセージにリアクションできない • スレッド — 未サポート。すべての返信はメインの会話に送信される Tlon プラットフォームの進化に伴い、将来のプラグインアップデートでネイティブメディアサポートが追加される可能性があります。
AI エージェントが頻繁に画像応答を生成する場合、Tlon チャネルがテキストのみであることをシステムプロンプトに含めることを検討してください。
メッセージ内の URL は Tlon アプリでクリック可能です。ユーザーはタップしてブラウザでメディアコンテンツを表示できます。

Tlon 設定リファレンス

ship
Type: stringDefault: (required)

Urbit シップ識別子(例: ~sampel-palnet)。ボットとして機能するシップです。

url
Type: stringDefault: "http://localhost:8080"

Urbit シップにアクセス可能な HTTP エンドポイント

code
Type: stringDefault: (required)

Urbit シップの HTTP API 認証コード。環境変数参照を使用してください。

enabled
Type: booleanDefault: true

Tlon チャネルを有効または無効にする

name
Type: stringDefault: ""

このチャネルインスタンスの表示名

autoDiscovery
Type: booleanDefault: true

シップ上のすべてのグループチャネルを自動検出して監視する

channels
Type: string[]Default: []

autoDiscovery が無効な場合に監視するグループチャネルパスのリスト(例: chat/~host-ship/general)

allowFrom
Type: string[]Default: []

ボットに DM を送信できるシップアドレスのリスト。空の配列はすべてのシップを許可します。

groups
Type: objectDefault: {}

グループごとのアクセス制御設定(モードと承認されたシップリスト)

groups.<path>.mode
Type: stringDefault: "restricted"

グループアクセスモード:'restricted'(承認されたシップのみ)または 'open'(任意のグループメンバー)

groups.<path>.authorized
Type: string[]Default: []

このグループでボットをトリガーする権限のあるシップアドレスのリスト(モードが 'restricted' の場合)

Tlon よくある質問

Tlon トラブルシューティング

ボットが起動するがメッセージを受信しない

シップ URL または認証コードが正しくない、またはシップが稼働していない可能性があります。

ブラウザで URL を開いてシップにアクセスできることを確認してください。認証コードが正しいことを確認してください(Dojo で '+code' を実行)。環境変数が正しくエクスポートされていることを確認:'echo $URBIT_URL' および 'echo $URBIT_CODE'。
エラー:認証失敗

認証コードが期限切れまたは不正です。Urbit シップは認証コードをローテーションすることがあります。

シップの Web インターフェース(設定)または Dojo で '+code' を実行して新しい認証コードを取得してください。URBIT_CODE 環境変数を更新し、Gateway を再起動してください。
ボットが DM には応答するがグループチャネルには応答しない

自動検出が無効でグループチャネルが固定されていないか、グループアクセス制御が送信者をブロックしている可能性があります。

autoDiscovery が false に設定されていないか確認してください。設定されている場合は、グループチャネルを channels 配列に追加します。送信者のシップがグループの authorized リスト(制限モードの場合)に含まれていることを確認してください。グループ応答には @ メンションが必要であることを忘れないでください。
インストール後にプラグインが見つからない

プラグインインストール後に Gateway が再起動されていないか、インストールがサイレントに失敗しました。

'openclaw plugins list' を実行して Tlon プラグインがインストールされていることを確認してください。リストにない場合は 'openclaw plugins install @openclaw/tlon' を再実行してください。インストール後 'openclaw start' で Gateway を再起動してください。
接続が頻繁に切断される

ネットワークの問題やシップの高負荷により、Urbit シップの HTTP API にアクセスできない可能性があります。

シップへのネットワーク接続を確認してください。リモートで実行している場合は、HTTP ポートがファイアウォールでブロックされていないことを確認してください。レイテンシを最小限にするため、シップと同じマシンでボットを実行することを検討してください。シップの Dojo でエラーメッセージを確認してください。