Sessions and memory

チャネルのドッキング

チャネルドッキングは、1つのOpenClawセッションに対する転送です。

同じ会話コンテキストを維持しつつ、そのセッションの今後の返信が 配信される場所を変更します。

AliceはTelegramとDiscordでOpenClawにメッセージを送れます。

{
  session: {
    identityLinks: {
      alice: ["telegram:123", "discord:456"],
    },
  },
}

AliceがTelegramからこれを送信すると:

/dock_discord

OpenClawは現在のセッションコンテキストを維持し、返信ルートを変更します。

ドッキング前 /dock_discord
返信はTelegram 123へ行く 返信はDiscord 456へ行く

セッションは再作成されません。トランスクリプト履歴は同じセッションに 紐付いたままです。

使用する理由

タスクが1つのチャットアプリで始まり、その後の返信を別の場所に届けたい場合に ドッキングを使用します。

一般的な流れ:

  1. Telegramからエージェントタスクを開始します。
  2. 作業調整をしているDiscordへ移動します。
  3. Telegramセッションから/dock_discordを送信します。
  4. 同じOpenClawセッションを維持しつつ、今後の返信をDiscordで受け取ります。

必須設定

ドッキングにはsession.identityLinksが必要です。送信元の送信者とターゲットピアは 同じIDグループに含まれている必要があります。

{
  session: {
    identityLinks: {
      alice: ["telegram:123", "discord:456", "slack:U123"],
    },
  },
}

値はチャネル接頭辞付きのピアIDです。

意味
telegram:123 Telegram送信者ID 123
discord:456 Discord直接ピアID 456
slack:U123 SlackユーザーID U123

正規キー(上のalice)は共有IDグループ名にすぎません。Dock コマンドは、チャネル接頭辞付きの値を使用して、送信元の送信者と ターゲットピアが同一人物であることを証明します。

コマンド

Dockコマンドは、ネイティブコマンドをサポートする読み込み済みチャネルPluginから生成されます。 現在バンドルされているコマンド:

ターゲットチャネル コマンド エイリアス
Discord /dock-discord /dock_discord
Mattermost /dock-mattermost /dock_mattermost
Slack /dock-slack /dock_slack
Telegram /dock-telegram /dock_telegram

アンダースコア付きエイリアスは、Telegramのようなネイティブコマンドサーフェスで便利です。

変更されるもの

ドッキングはアクティブなセッション配信フィールドを更新します。

セッションフィールド /dock_discord後の例
lastChannel discord
lastTo 456
lastAccountId ターゲットチャネルアカウント、またはdefault

これらのフィールドはセッションストアに永続化され、そのセッションの後続の返信 配信で使用されます。

変更されないもの

ドッキングは次のことを行いません。

  • チャネルアカウントを作成する
  • 新しいDiscord、Telegram、Slack、Mattermostボットを接続する
  • ユーザーにアクセス権を付与する
  • チャネルの許可リストやDMポリシーを迂回する
  • トランスクリプト履歴を別のセッションへ移動する
  • 関係のないユーザーにセッションを共有させる

現在のセッションの配信ルートだけを変更します。

トラブルシューティング

コマンドが、送信者はリンクされていないと表示する。

現在の送信者とターゲットピアの両方を同じ session.identityLinksグループに追加します。たとえば、Telegram送信者123を Discordピア456にドッキングする必要がある場合は、telegram:123discord:456の両方を含めます。

コマンドが、アクティブなセッションが存在しないと表示する。

既存の直接チャットセッションからドッキングしてください。このコマンドには、新しいルートを 永続化できるようにアクティブなセッションエントリが必要です。

返信がまだ古いチャネルへ行く。

コマンドが成功メッセージを返したことを確認し、ターゲットピアIDがそのチャネルで使用されるIDと 一致していることを確認します。ドッキングはアクティブなセッションルートだけを変更します。 別のセッションは、まだ別の場所へルーティングしている可能性があります。

元に戻す必要がある。

リンク済み送信者から、/dock_telegram/dock-telegramなど、 元のチャネルに対応するコマンドを送信します。