メインコンテンツへスキップ
Tencent Yuanbao は Tencent の AI アシスタントプラットフォームです。コミュニティがメンテナンスする openclaw-plugin-yuanbao Plugin は、Yuanbao ボットを WebSocket 経由で OpenClaw に接続し、ダイレクトメッセージとグループチャットに対応します。 ステータス: ボットの DM とグループチャットで本番利用可能です。WebSocket が唯一サポートされる接続モードです。この Plugin は Tencent Yuanbao チームが外部カタログエントリとしてメンテナンスしており、OpenClaw コアによるメンテナンスではありません。以下の設定/動作の詳細(インストールと汎用 CLI サーフェスを除く)は Plugin 独自のドキュメントに基づくもので、OpenClaw コアソースに対して検証されていません。

クイックスタート

OpenClaw 2026.4.10 以降が必要です。openclaw --version で確認し、openclaw update でアップグレードします。
1

認証情報を使って Yuanbao チャネルを追加する

openclaw channels add --channel yuanbao --token "appKey:appSecret"
--token はコロン区切りの appKey:appSecret を使用します。アプリケーション設定でボットを作成し、Yuanbao アプリからこれらを取得します。
2

変更を適用するために Gateway を再起動する

openclaw gateway restart

対話形式のセットアップ(代替)

openclaw channels login --channel yuanbao
プロンプトに従って App ID と App Secret を入力します。

アクセス制御

ダイレクトメッセージ

channels.yuanbao.dm.policy:
動作
open(デフォルト)すべてのユーザーを許可
pairing不明なユーザーにはペアリングコードを返し、CLI で承認する
allowlistallowFrom に含まれるユーザーだけがチャット可能
disabledすべての DM を無効化
ペアリングリクエストを承認します。
openclaw pairing list yuanbao
openclaw pairing approve yuanbao <CODE>

グループチャット

channels.yuanbao.requireMention(デフォルト true): グループ内でボットが応答する前に @メンションを必須にします。ボット自身のメッセージへの返信は暗黙のメンションとして扱われます。

設定例

基本セットアップ、オープンな DM ポリシー:
{
  channels: {
    yuanbao: {
      appKey: "your_app_key",
      appSecret: "your_app_secret",
      dm: {
        policy: "open",
      },
    },
  },
}
DM を特定のユーザーに制限する:
{
  channels: {
    yuanbao: {
      appKey: "your_app_key",
      appSecret: "your_app_secret",
      dm: {
        policy: "allowlist",
        allowFrom: ["user_id_1", "user_id_2"],
      },
    },
  },
}
グループで @メンション要件を無効化する:
{
  channels: {
    yuanbao: {
      requireMention: false,
    },
  },
}
送信配信のチューニング:
{
  channels: {
    yuanbao: {
      outboundQueueStrategy: "merge-text",
      minChars: 2800, // この文字数になるまでバッファする
      maxChars: 3000, // この上限を超えると強制的に分割する
      idleMs: 5000, // アイドルタイムアウト後に自動フラッシュする(ms)
    },
  },
}
各チャンクをバッファせず送信するには、outboundQueueStrategy: "immediate" を設定します。

よく使うコマンド

コマンド説明
/help利用可能なコマンドを表示
/statusボットのステータスを表示
/new新しいセッションを開始
/stop現在の実行を停止
/restartOpenClaw を再起動
/compactセッションコンテキストを圧縮
Yuanbao はネイティブのスラッシュコマンドメニューをサポートします。Gateway の起動時に、コマンドはプラットフォームへ自動的に同期されます。

トラブルシューティング

ボットがグループチャットで応答しない場合:
  1. ボットがグループに追加されていることを確認します
  2. ボットを @メンションしていることを確認します(デフォルトで必須)
  3. ログを確認します: openclaw logs --follow
ボットがメッセージを受信しない場合:
  1. Yuanbao アプリでボットが作成され、承認されていることを確認します
  2. appKeyappSecret が正しく設定されていることを確認します
  3. Gateway が実行中であることを確認します: openclaw gateway status
  4. ログを確認します: openclaw logs --follow
ボットが空の返信またはフォールバック返信を送信する場合:
  1. AI モデルが有効なコンテンツを返しているか確認します
  2. デフォルトのフォールバック返信: “暂时无法解答,你可以换个问题问问我哦”
  3. channels.yuanbao.fallbackReply でカスタマイズします
App Secret が漏えいした場合:
  1. Yuanbao アプリで App Secret をリセットします
  2. 設定内の値を更新します
  3. Gateway を再起動します: openclaw gateway restart

高度な設定

複数アカウント

{
  channels: {
    yuanbao: {
      defaultAccount: "main",
      accounts: {
        main: {
          appKey: "key_xxx",
          appSecret: "secret_xxx",
          name: "Primary bot",
        },
        backup: {
          appKey: "key_yyy",
          appSecret: "secret_yyy",
          name: "Backup bot",
          enabled: false,
        },
      },
    },
  },
}
defaultAccount は、送信 API が accountId を指定しない場合に使用されるアカウントを制御します。

メッセージ制限

  • maxChars: 単一メッセージの最大文字数(デフォルト 3000
  • mediaMaxMb: メディアのアップロード/ダウンロード制限(デフォルト 20 MB)
  • overflowPolicy: メッセージが制限を超えた場合の動作、"split"(デフォルト)または "stop"

ストリーミング

Yuanbao はブロックレベルのストリーミング出力をサポートします。ボットは生成中にテキストをチャンク単位で送信します。
{
  channels: {
    yuanbao: {
      disableBlockStreaming: false, // ブロックストリーミングが有効(デフォルト)
    },
  },
}
完全な返信を 1 件のメッセージで送信するには、disableBlockStreaming: true を設定します。

グループチャット履歴コンテキスト

{
  channels: {
    yuanbao: {
      historyLimit: 100, // デフォルト: 100、無効化するには 0 を設定
    },
  },
}
グループチャットの AI コンテキストに含める過去メッセージ数を制御します。

Reply-to モード

{
  channels: {
    yuanbao: {
      replyToMode: "first", // "off" | "first" | "all"(デフォルト: "first")
    },
  },
}
動作
off引用返信しない
first受信メッセージごとに最初の返信だけを引用する(デフォルト)
allすべての返信を引用する

Markdown ヒント注入

デフォルトでは、ボットはモデルが返信全体を Markdown コードブロックで囲まないようにする system-prompt 指示を注入します。
{
  channels: {
    yuanbao: {
      markdownHintEnabled: true, // デフォルト: true
    },
  },
}

デバッグモード

{
  channels: {
    yuanbao: {
      debugBotIds: ["bot_user_id_1", "bot_user_id_2"],
    },
  },
}
一覧に含まれるボット ID に対して、サニタイズされていないログ出力を有効にします。

マルチエージェントルーティング

Yuanbao の DM またはグループを別々のエージェントにルーティングするには、bindings を使用します。
{
  agents: {
    list: [
      { id: "main" },
      { id: "agent-a", workspace: "/home/user/agent-a" },
      { id: "agent-b", workspace: "/home/user/agent-b" },
    ],
  },
  bindings: [
    {
      agentId: "agent-a",
      match: {
        channel: "yuanbao",
        peer: { kind: "direct", id: "user_xxx" },
      },
    },
    {
      agentId: "agent-b",
      match: {
        channel: "yuanbao",
        peer: { kind: "group", id: "group_zzz" },
      },
    },
  ],
}
  • match.channel: "yuanbao"
  • match.peer.kind: "direct"(DM)または "group"(グループチャット)
  • match.peer.id: ユーザー ID またはグループコード

設定リファレンス

完全な設定: Gateway 設定
設定説明デフォルト
channels.yuanbao.enabledチャネルを有効化/無効化true
channels.yuanbao.defaultAccount送信ルーティング用のデフォルトアカウントdefault
channels.yuanbao.accounts.<id>.appKeyApp Key(署名 + チケット生成)-
channels.yuanbao.accounts.<id>.appSecretApp Secret(署名)-
channels.yuanbao.accounts.<id>.token事前署名済みトークン(自動チケット署名をスキップ)-
channels.yuanbao.accounts.<id>.nameアカウント表示名-
channels.yuanbao.accounts.<id>.enabled特定のアカウントを有効化/無効化true
channels.yuanbao.dm.policyDM ポリシーopen
channels.yuanbao.dm.allowFromDM 許可リスト(ユーザー ID リスト)-
channels.yuanbao.requireMentionグループで @メンションを必須にするtrue
channels.yuanbao.overflowPolicy長いメッセージの処理(split または stopsplit
channels.yuanbao.replyToModeグループの reply-to 戦略(offfirstallfirst
channels.yuanbao.outboundQueueStrategy送信戦略(merge-text または immediatemerge-text
channels.yuanbao.minCharsMerge-text: 送信をトリガーする最小文字数2800
channels.yuanbao.maxCharsMerge-text: メッセージあたりの最大文字数3000
channels.yuanbao.idleMsMerge-text: 自動フラッシュ前のアイドルタイムアウト(ms)5000
channels.yuanbao.mediaMaxMbメディアサイズ制限(MB)20
channels.yuanbao.historyLimitグループチャット履歴コンテキストのエントリ数100
channels.yuanbao.disableBlockStreamingブロックレベルのストリーミング出力を無効化false
channels.yuanbao.fallbackReplyモデルがコンテンツを返さない場合のフォールバック返信暂时无法解答,你可以换个问题问问我哦
channels.yuanbao.markdownHintEnabledMarkdown の折り返し防止指示を注入true
channels.yuanbao.debugBotIdsデバッグ許可リストのボット ID(サニタイズなしログ)[]

サポートされるメッセージ種別

受信: テキスト、画像、ファイル、音声/ボイス、動画、スタンプ/カスタム絵文字、カスタム要素(リンクカード)。 送信: テキスト(Markdown)、画像、ファイル、音声、動画、スタンプ。 スレッドと返信: 引用返信(replyToMode で設定可能)。スレッド返信はプラットフォームでサポートされていません。

関連