Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
6.4 KiB
Retour au README
WeCom
PicoClaw expose WeCom en tant que canal unique channels.wecom, basé sur l'API WebSocket officielle WeCom AI Bot.
Ce canal remplace l'ancienne séparation wecom, wecom_app et wecom_aibot par un modèle de configuration unifié.
Aucune URL de callback webhook publique n'est requise. PicoClaw établit une connexion WebSocket sortante vers WeCom.
Fonctionnalités prises en charge
- Chat privé et chat de groupe
- Réponses en streaming côté canal via le protocole WeCom AI Bot
- Messages entrants : texte, voix, image, fichier, vidéo et messages mixtes
- Réponses sortantes : texte et médias (
image,file,voice,video) - Onboarding par QR code via l'interface Web ou le CLI
- Liste blanche partagée et routage
reasoning_channel_id
Démarrage rapide
Option 1 : Liaison QR via l'interface Web (recommandé)
Ouvrez l'interface Web, accédez à Channels → WeCom et cliquez sur le bouton de liaison QR. Scannez le QR code avec WeCom et confirmez dans l'application — les identifiants sont enregistrés automatiquement.
Option 2 : Connexion QR via le CLI
Exécutez :
picoclaw auth wecom
La commande :
- Demande un QR code à WeCom et l'affiche dans le terminal
- Affiche également un lien QR code que vous pouvez ouvrir dans un navigateur si le QR du terminal est difficile à scanner
- Attend la confirmation — après le scan, vous devez également confirmer la connexion dans l'application WeCom
- En cas de succès, écrit
bot_idetsecretdanschannels.wecomet sauvegarde la configuration
Le délai d'expiration par défaut est de 5 minutes. Utilisez --timeout pour l'étendre :
picoclaw auth wecom --timeout 10m
⚠️ Scanner le QR code ne suffit pas — vous devez également appuyer sur Confirmer dans l'application WeCom, sinon la commande expirera.
Option 3 : Configuration manuelle
Si vous disposez déjà d'un bot_id et d'un secret depuis la plateforme WeCom AI Bot, configurez directement :
{
"channels": {
"wecom": {
"enabled": true,
"bot_id": "YOUR_BOT_ID",
"secret": "YOUR_SECRET",
"websocket_url": "wss://openws.work.weixin.qq.com",
"send_thinking_message": true,
"allow_from": [],
"reasoning_channel_id": ""
}
}
}
Configuration
| Champ | Type | Défaut | Description |
|---|---|---|---|
enabled |
bool | false |
Activer le canal WeCom. |
bot_id |
string | — | Identifiant WeCom AI Bot. Requis lorsque le canal est activé. |
secret |
string | — | Secret WeCom AI Bot. Stocké chiffré dans .security.yml. Requis lorsque le canal est activé. |
websocket_url |
string | wss://openws.work.weixin.qq.com |
Point de terminaison WebSocket WeCom. |
send_thinking_message |
bool | true |
Envoyer un message Processing... avant le début de la réponse en streaming. |
allow_from |
array | [] |
Liste blanche des expéditeurs. Vide signifie autoriser tous les expéditeurs. |
reasoning_channel_id |
string | "" |
ID de chat optionnel pour router la sortie de raisonnement vers une conversation séparée. |
Variables d'environnement
Tous les champs peuvent être remplacés par des variables d'environnement avec le préfixe PICOCLAW_CHANNELS_WECOM_ :
| Variable d'environnement | Champ correspondant |
|---|---|
PICOCLAW_CHANNELS_WECOM_ENABLED |
enabled |
PICOCLAW_CHANNELS_WECOM_BOT_ID |
bot_id |
PICOCLAW_CHANNELS_WECOM_SECRET |
secret |
PICOCLAW_CHANNELS_WECOM_WEBSOCKET_URL |
websocket_url |
PICOCLAW_CHANNELS_WECOM_SEND_THINKING_MESSAGE |
send_thinking_message |
PICOCLAW_CHANNELS_WECOM_ALLOW_FROM |
allow_from |
PICOCLAW_CHANNELS_WECOM_REASONING_CHANNEL_ID |
reasoning_channel_id |
Comportement à l'exécution
- PicoClaw maintient un tour WeCom actif pour que les réponses en streaming puissent continuer sur le même flux lorsque c'est possible.
- Les réponses en streaming ont une durée maximale de 5,5 minutes et un intervalle d'envoi minimum de 500 ms.
- Si le streaming n'est plus disponible, les réponses basculent vers la livraison par push actif.
- Les associations de routes de chat expirent après 30 minutes d'inactivité.
- Les médias entrants sont téléchargés dans le stockage média local avant d'être transmis à l'agent.
- Les médias sortants sont uploadés vers WeCom en tant que fichier temporaire, puis envoyés comme message média.
- Les messages en double sont détectés et supprimés (tampon circulaire des 1000 derniers identifiants de messages).
Migration depuis l'ancienne configuration WeCom
| Configuration précédente | Migration |
|---|---|
channels.wecom (bot webhook) |
Remplacer par channels.wecom avec bot_id + secret. |
channels.wecom_app |
Supprimer. Utiliser channels.wecom à la place. |
channels.wecom_aibot |
Déplacer bot_id et secret vers channels.wecom. |
token, encoding_aes_key, webhook_url, webhook_path |
Plus utilisés. Supprimer de la configuration. |
corp_id, corp_secret, agent_id |
Plus utilisés. Supprimer de la configuration. |
welcome_message, processing_message, max_steps |
Ne font plus partie de la configuration du canal WeCom. |
Dépannage
La liaison QR expire
- Après avoir scanné le QR code, vous devez également confirmer la connexion dans l'application WeCom. Le scan seul ne suffit pas.
- Relancez avec un
--timeoutplus long :picoclaw auth wecom --timeout 10m - Si le QR code dans le terminal est difficile à scanner, utilisez le lien QR code affiché en dessous pour l'ouvrir dans un navigateur.
QR code expiré
- Le QR code a une durée de validité limitée. Relancez
picoclaw auth wecompour en obtenir un nouveau.
Échec de la connexion WebSocket
- Vérifiez que
bot_idetsecretsont corrects. - Confirmez que l'hôte peut atteindre
wss://openws.work.weixin.qq.com(WebSocket sortant, aucun port entrant nécessaire).
Les réponses n'arrivent pas
- Vérifiez si
allow_frombloque l'expéditeur. - Vérifiez que
channels.wecom.bot_idetchannels.wecom.secretsont définis et non vides.
