Aller au contenu

Yuanbao

Tencent Yuanbao est la plateforme d’assistant IA de Tencent. Le plugin de channel OpenClaw connecte les bots Yuanbao à OpenClaw via WebSocket afin qu’ils puissent interagir avec les utilisateurs par messages directs et discussions de groupe.

Statut : prêt pour la production pour les DMs de bot + discussions de groupe. WebSocket est le seul mode de connexion pris en charge.


Nécessite OpenClaw 2026.4.10 ou supérieur. Exécutez openclaw --version pour vérifier. Effectuez une mise à niveau avec openclaw update.

  1. Ajoutez le channel Yuanbao avec vos identifiants

    Fenêtre de terminal
    openclaw channels add --channel yuanbao --token "appKey:appSecret"

    La valeur --token utilise le format appKey:appSecret séparé par des deux-points. Vous pouvez les obtenir depuis l’application Yuanbao en créant un robot dans vos paramètres d’application.

  2. Une fois la configuration terminée, redémarrez la passerelle pour appliquer les modifications

    Fenêtre de terminal
    openclaw gateway restart

Vous pouvez également utiliser l’assistant interactif :

Fenêtre de terminal
openclaw channels login --channel yuanbao

Suivez les invites pour entrer votre ID d’application et votre secret d’application.


Configurez dmPolicy pour contrôler qui peut envoyer un DM au bot :

  • "pairing" - les utilisateurs inconnus reçoivent un code d’appariement ; approuver via le CLI
  • "allowlist" - seuls les utilisateurs listés dans allowFrom peuvent chatter
  • "open" - autoriser tous les utilisateurs (par défaut)
  • "disabled" - désactiver tous les DMs

Approuver une demande d’appariement :

Fenêtre de terminal
openclaw pairing list yuanbao
openclaw pairing approve yuanbao <CODE>

Exigence de mention (channels.yuanbao.requireMention) :

  • true - exiger @mention (par défaut)
  • false - répondre sans @mention

Répondre au message du bot dans une discussion de groupe est considéré comme une mention implicite.


Configuration de base avec une stratégie de DM ouverte

Section intitulée « Configuration de base avec une stratégie de DM ouverte »
{
channels: {
yuanbao: {
appKey: "your_app_key",
appSecret: "your_app_secret",
dm: {
policy: "open",
},
},
},
}

Restreindre les DMs à des utilisateurs spécifiques

Section intitulée « Restreindre les DMs à des utilisateurs spécifiques »
{
channels: {
yuanbao: {
appKey: "your_app_key",
appSecret: "your_app_secret",
dm: {
policy: "allowlist",
allowFrom: ["user_id_1", "user_id_2"],
},
},
},
}

Désactiver l’exigence de @mention dans les groupes

Section intitulée « Désactiver l’exigence de @mention dans les groupes »
{
channels: {
yuanbao: {
requireMention: false,
},
},
}
{
channels: {
yuanbao: {
// Send each chunk immediately without buffering
outboundQueueStrategy: "immediate",
},
},
}
{
channels: {
yuanbao: {
outboundQueueStrategy: "merge-text",
minChars: 2800, // buffer until this many chars
maxChars: 3000, // force split above this limit
idleMs: 5000, // auto-flush after idle timeout (ms)
},
},
}

CommandeDescription
/helpAfficher les commandes disponibles
/statusAfficher l’état du bot
/newDémarrer une nouvelle session
/stopArrêter l’exécution en cours
/restartRedémarrer OpenClaw
/compactCompacter le contexte de la session

Yuanbao prend en charge les menus de commandes natives (slash). Les commandes sont synchronisées automatiquement avec la plateforme au démarrage de la passerelle.


Le bot ne répond pas dans les discussions de groupe

Section intitulée « Le bot ne répond pas dans les discussions de groupe »
  1. Vérifiez que le bot est ajouté au groupe
  2. Assurez-vous de @mentionner le bot (requis par défaut)
  3. Vérifiez les journaux : openclaw logs --follow
  1. Assurez-vous que le bot est créé et approuvé dans l’application Yuanbao
  2. Assurez-vous que appKey et appSecret sont correctement configurés
  3. Assurez-vous que la passerelle est en cours d’exécution : openclaw gateway status
  4. Vérifiez les journaux : openclaw logs --follow
  1. Vérifiez si le modèle d’IA renvoie du contenu valide
  2. La réponse de repli par défaut est : “暂时无法解答,你可以换个问题问问我哦”
  3. Personnalisez-la via channels.yuanbao.fallbackReply

Fuite de la clé secrète de l’application (App Secret)

Section intitulée « Fuite de la clé secrète de l’application (App Secret) »
  1. Réinitialisez la clé secrète de l’application dans l’application YuanBao
  2. Mettez à jour la valeur dans votre configuration
  3. Redémarrez la passerelle : 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 contrôle le compte utilisé lorsque les API sortantes ne spécifient pas de accountId.

  • maxChars - nombre maximum de caractères par message (par défaut : 3000 caractères)
  • mediaMaxMb - limite de téléchargement/téléchargement de médias (par défaut : 20 Mo)
  • overflowPolicy - comportement lorsque le message dépasse la limite : "split" (par défaut) ou "stop"

Yuanbao prend en charge la diffusion en continu au niveau des blocs. Lorsqu’elle est activée, le bot envoie le texte par morceaux au fur et à mesure de sa génération.

{
channels: {
yuanbao: {
disableBlockStreaming: false, // block streaming enabled (default)
},
},
}

Définissez disableBlockStreaming: true pour envoyer la réponse complète en un seul message.

Contexte de l’historique des discussions de groupe

Section intitulée « Contexte de l’historique des discussions de groupe »

Contrôlez le nombre de messages historiques inclus dans le contexte de l’IA pour les discussions de groupe :

{
channels: {
yuanbao: {
historyLimit: 100, // default: 100, set 0 to disable
},
},
}

Contrôlez la façon dont le bot cite les messages lorsqu’il répond dans les conversations de groupe :

{
channels: {
yuanbao: {
replyToMode: "first", // "off" | "first" | "all" (default: "first")
},
},
}
ValeurComportement
"off"Pas de réponse citée
"first"Citer uniquement la première réponse par message entrant (par défaut)
"all"Citer chaque réponse

Par défaut, le bot injecte des instructions dans le prompt système pour empêcher le modèle IA d’envelopper la réponse entière dans des blocs de code markdown.

{
channels: {
yuanbao: {
markdownHintEnabled: true, // default: true
},
},
}

Activer la sortie de journal non nettoyée pour des ID de bot spécifiques :

{
channels: {
yuanbao: {
debugBotIds: ["bot_user_id_1", "bot_user_id_2"],
},
},
}

Utilisez bindings pour router les DM ou groupes Yuanbao vers différents agents.

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

Champs de routage :

  • match.channel : "yuanbao"
  • match.peer.kind : "direct" (DM) ou "group" (conversation de groupe)
  • match.peer.id : ID d’utilisateur ou code de groupe

Configuration complète : configuration Gateway

ParamètreDescriptionPar défaut
channels.yuanbao.enabledActiver/désactiver le channeltrue
channels.yuanbao.defaultAccountCompte par défaut pour le routage sortantdefault
channels.yuanbao.accounts.<id>.appKeyClé d’application (utilisée pour la signature et la génération de tickets)-
channels.yuanbao.accounts.<id>.appSecretSecret d’application (utilisé pour la signature)-
channels.yuanbao.accounts.<id>.tokenJeton pré-signé (ignore la signature automatique des tickets)-
channels.yuanbao.accounts.<id>.nameNom d’affichage du compte-
channels.yuanbao.accounts.<id>.enabledActiver/désactiver un compte spécifiquetrue
channels.yuanbao.dm.policyStratégie de DMopen
channels.yuanbao.dm.allowFromListe d’autorisation de DM (liste des ID utilisateur)-
channels.yuanbao.requireMentionExiger @mention dans les groupestrue
channels.yuanbao.overflowPolicyGestion des messages longs (split ou stop)split
channels.yuanbao.replyToModeStratégie de réponse de groupe (off, first, all)first
channels.yuanbao.outboundQueueStrategyStratégie de sortie (merge-text ou immediate)merge-text
channels.yuanbao.minCharsFusion de texte : nombre min. de caractères pour déclencher l’envoi2800
channels.yuanbao.maxCharsFusion de texte : nombre max. de caractères par message3000
channels.yuanbao.idleMsFusion de texte : délai d’inactivité avant le vidage automatique (ms)5000
channels.yuanbao.mediaMaxMbLimite de taille des médias (Mo)20
channels.yuanbao.historyLimitEntrées de contexte d’historique de groupe100
channels.yuanbao.disableBlockStreamingDésactiver la sortie en continu au niveau du blocfalse
channels.yuanbao.fallbackReplyRéponse de repli lorsque l’IA ne renvoie aucun contenu暂时无法解答,你可以换个问题问问我哦
channels.yuanbao.markdownHintEnabledInjecter les instructions anti-retour à la ligne Markdowntrue
channels.yuanbao.debugBotIdsListe blanche des IDs de bot de débogage (journaux non nettoyés)[]

  • ✅ Texte
  • ✅ Images
  • ✅ Fichiers
  • ✅ Audio / Voix
  • ✅ Vidéo
  • ✅ Autocollants / Émojis personnalisés
  • ✅ Éléments personnalisés (cartes de lien, etc.)
  • ✅ Texte (avec support du markdown)
  • ✅ Images
  • ✅ Fichiers
  • ✅ Audio
  • ✅ Vidéo
  • ✅ Autocollants
  • ✅ Réponses citées (configurable via replyToMode)
  • ❌ Réponses en fil (non prises en charge par la plateforme)