Перейти до основного вмісту

Yuanbao

Tencent Yuanbao — це платформа AI-асистента від Tencent. Плагін каналу OpenClaw підключає ботів Yuanbao до OpenClaw через WebSocket, щоб вони могли взаємодіяти з користувачами через особисті повідомлення та групові чати. Статус: готово до використання у production для особистих повідомлень ботів і групових чатів. WebSocket — єдиний підтримуваний режим підключення.

Швидкий старт

Потрібен 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.

Керування доступом

Особисті повідомлення

Налаштуйте dmPolicy, щоб керувати тим, хто може надсилати боту особисті повідомлення:
  • "pairing" — невідомі користувачі отримують код прив’язки; підтвердження через CLI
  • "allowlist" — спілкуватися можуть лише користувачі, перелічені в allowFrom
  • "open" — дозволити всіх користувачів (типово)
  • "disabled" — вимкнути всі особисті повідомлення
Підтвердження запиту на прив’язку:
openclaw pairing list yuanbao
openclaw pairing approve yuanbao <CODE>

Групові чати

Вимога згадки (channels.yuanbao.requireMention):
  • true — вимагати @згадку (типово)
  • false — відповідати без @згадки
Відповідь на повідомлення бота в груповому чаті вважається неявною згадкою.

Приклади конфігурації

Базове налаштування з відкритою політикою особистих повідомлень

{
  channels: {
    yuanbao: {
      appKey: "your_app_key",
      appSecret: "your_app_secret",
      dm: {
        policy: "open",
      },
    },
  },
}

Обмеження особистих повідомлень для конкретних користувачів

{
  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: "immediate",
    },
  },
}

Налаштування стратегії merge-text

{
  channels: {
    yuanbao: {
      outboundQueueStrategy: "merge-text",
      minChars: 2800, // буферизувати, доки не буде стільки символів
      maxChars: 3000, // примусовий поділ понад цей ліміт
      idleMs: 5000, // автоматичне скидання після простою (мс)
    },
  },
}

Поширені команди

КомандаОпис
/helpПоказати доступні команди
/statusПоказати статус бота
/newПочати нову сесію
/stopЗупинити поточний запуск
/restartПерезапустити OpenClaw
/compactВиконати Compaction контексту сесії
Yuanbao підтримує вбудовані меню slash-команд. Команди автоматично синхронізуються з платформою під час запуску Gateway.

Усунення проблем

Бот не відповідає в групових чатах

  1. Переконайтеся, що бота додано до групи
  2. Переконайтеся, що ви згадуєте бота через @ (типово це обов’язково)
  3. Перевірте журнали: openclaw logs --follow

Бот не отримує повідомлення

  1. Переконайтеся, що бот створений і підтверджений у застосунку Yuanbao
  2. Переконайтеся, що appKey і appSecret налаштовані правильно
  3. Переконайтеся, що Gateway запущено: openclaw gateway status
  4. Перевірте журнали: openclaw logs --follow

Бот надсилає порожні або резервні відповіді

  1. Перевірте, чи AI-модель повертає коректний вміст
  2. Типова резервна відповідь: “暂时无法解答,你可以换个问题问问我哦”
  3. Налаштуйте її через channels.yuanbao.fallbackReply

App Secret скомпрометовано

  1. Скиньте App Secret у YuanBao APP
  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 МБ)
  • overflowPolicy — поведінка, коли повідомлення перевищує ліміт: "split" (типово) або "stop"

Потокове передавання

Yuanbao підтримує потокове виведення на рівні блоків. Якщо ввімкнено, бот надсилає текст частинами в міру генерації.
{
  channels: {
    yuanbao: {
      disableBlockStreaming: false, // потокове передавання блоками ввімкнено (типово)
    },
  },
}
Установіть disableBlockStreaming: true, щоб надсилати повну відповідь одним повідомленням.

Контекст історії групового чату

Керуйте тим, скільки історичних повідомлень включається в AI-контекст для групових чатів:
{
  channels: {
    yuanbao: {
      historyLimit: 100, // типово: 100, установіть 0, щоб вимкнути
    },
  },
}

Режим reply-to

Керуйте тим, як бот цитує повідомлення під час відповіді в групових чатах:
{
  channels: {
    yuanbao: {
      replyToMode: "first", // "off" | "first" | "all" (типово: "first")
    },
  },
}
ЗначенняПоведінка
"off"Без цитованої відповіді
"first"Цитувати лише першу відповідь на кожне вхідне повідомлення (типово)
"all"Цитувати кожну відповідь

Вставка підказки для Markdown

Типово бот додає інструкції в system prompt, щоб AI-модель не обгортала всю відповідь у markdown-блоки коду.
{
  channels: {
    yuanbao: {
      markdownHintEnabled: true, // типово: true
    },
  },
}

Режим налагодження

Увімкніть несанітизований вивід журналів для конкретних ID ботів:
{
  channels: {
    yuanbao: {
      debugBotIds: ["bot_user_id_1", "bot_user_id_2"],
    },
  },
}

Маршрутизація між агентами

Використовуйте bindings, щоб маршрутизувати особисті повідомлення або групи Yuanbao до різних агентів.
{
  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" (особисті повідомлення) або "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.policyПолітика особистих повідомленьopen
channels.yuanbao.dm.allowFromAllowlist особистих повідомлень (список ID користувачів)
channels.yuanbao.requireMentionВимагати @згадку в групахtrue
channels.yuanbao.overflowPolicyОбробка довгих повідомлень (split або stop)split
channels.yuanbao.replyToModeСтратегія group reply-to (off, first, all)first
channels.yuanbao.outboundQueueStrategyВихідна стратегія (merge-text або immediate)merge-text
channels.yuanbao.minCharsMerge-text: мінімум символів для запуску надсилання2800
channels.yuanbao.maxCharsMerge-text: максимум символів на повідомлення3000
channels.yuanbao.idleMsMerge-text: тайм-аут простою перед автоскиданням (мс)5000
channels.yuanbao.mediaMaxMbЛіміт розміру медіа (МБ)20
channels.yuanbao.historyLimitКількість записів історії в контексті групового чату100
channels.yuanbao.disableBlockStreamingВимкнути потокове виведення на рівні блоківfalse
channels.yuanbao.fallbackReplyРезервна відповідь, коли AI не повертає вміст暂时无法解答,你可以换个问题问问我哦
channels.yuanbao.markdownHintEnabledДодавати інструкції проти обгортання в Markdowntrue
channels.yuanbao.debugBotIdsDebug whitelist ID ботів (несанітизовані журнали)[]

Підтримувані типи повідомлень

Отримання

  • ✅ Текст
  • ✅ Зображення
  • ✅ Файли
  • ✅ Аудіо / голос
  • ✅ Відео
  • ✅ Стікери / користувацькі емодзі
  • ✅ Користувацькі елементи (картки посилань тощо)

Надсилання

  • ✅ Текст (з підтримкою markdown)
  • ✅ Зображення
  • ✅ Файли
  • ✅ Аудіо
  • ✅ Відео
  • ✅ Стікери

Гілки та відповіді

  • ✅ Цитовані відповіді (налаштовується через replyToMode)
  • ❌ Відповіді в гілках (платформа не підтримує)

Пов’язане