- Valor central de la integración con WeChat Work
La versión localizada de Clawdbot para WeChat Work resuelve tres problemas clave para empresas chinas que utilizan asistentes de IA:
- Cumplimiento normativo: Cumple completamente con las regulaciones de comunicación empresarial en China, sin depender de plataformas extranjeras
- Seguridad: Todos los mensajes se transmiten cifrados con AES-256-CBC de grado estatal
- Integración: Se conecta perfectamente con la estructura organizativa de WeChat Work, funcionando como empleado digital empresarial
- Preparación del entorno y configuración básica
2.1 Obtención de credenciales de WeChat Work
- Inicie sesión en la consola administrativa de WeChat Work
- Acceda a «Gestión de aplicaciones» → «Aplicaciones propias» → «Crear aplicación»
- Complete la información de la aplicación:
- Nombre: Se recomienda "Asistente IA Clawdbot"
- Alcance visible: Seleccione departamentos o miembros que usarán la aplicación
- Configure la información del servidor:
- URL del servidor:
https://su-dominio:18789/wechatwork/callback - Token: Cadana personalizada de 32 caracteres (ej:
clawdbot2024token) - EncodingAESKey: Genere una cadena Base64 de 43 caracteres
- URL del servidor:
2.2 Configuración del adaptador de Clawdbot
Edite el archivo de configuración de Clawdbot:
nano /root/.clawdbot/clawdbot.json
Añada o modifique el bloque de configuración adapters:
{
"adapters": {
"wechatwork": {
"habilitado": true,
"puerto": 18789,
"token": "clawdbot2024token",
"clave_aes_codificacion": "EncodingAESKey_generado",
"id_corporativo": "ID_Corporativo_WeChat",
"id_agente": 1000002,
"secreto": "Secreto_Aplicacion"
}
}
}
2.3 Verificación de la configuración
Ejecute el comando de verificación:
cd /root/clawdbot
node dist/index.js wechatwork verificar
La salida exitosa mostrará todas las verificaciones aprobadas.
- Implementación práctica de webhook
3.1 Manejo de solicitud de verificación inicial
Cuando se guarda la configuarción en WeChat Work, el servidor envía una solicitud GET de verificación. Para prueba manual:
# Generar parámetros de prueba
MARCA_TIEMPO=$(date +%s)
NONCE=$(openssl rand -hex 6)
ECO_STR="ZmRjYzQ1NjdhYmMxMjM0NTY3ODkwMTIzNDU2Nzg5MA=="
# Calcular firma
FIRMA=$(echo -n "clawdbot2024token${MARCA_TIEMPO}${NONCE}${ECO_STR}" | sha1sum | cut -d' ' -f1)
# Enviar solicitud de prueba
curl "https://su-dominio:18789/wechatwork/callback?msg_signature=${FIRMA}×tamp=${MARCA_TIEMPO}&nonce=${NONCE}&echostr=${ECO_STR}"
3.2 Flujo de recepción y procesamiento de mensajes
El proceso estándar de Clawdbot para mensajes de WeChat Work:
- Recibir cuerpo XML cifrado
- Verificar firma
msg_signature - Descifrar mensaje usando AES-256-CBC
- Extraer
FromUserNameyContent - Pasar contenido al procesamiento de IA
- Cifrar respuesta y retornar
Habilite modo depuración para ver logs detallados:
cd /root/clawdbot
node dist/index.js gateway --depurar-wechatwork
- Medidas de fortalecimiento para producción
4.1 Configuración HTTPS (obligatoria)
WeChat Work requiere webhooks con HTTPS. Configuración recomendada de Nginx:
server {
listen 443 ssl;
server_name su-dominio.com;
ssl_certificate /ruta/al/cert.pem;
ssl_certificate_key /ruta/al/key.pem;
location /wechatwork/callback {
proxy_pass http://127.0.0.1:18789;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
4.2 Configuración de supervisión de procesos
Cree servicio systemd para alta disponibilidad:
sudo tee /etc/systemd/system/clawdbot-gateway.service << 'EOF'
[Unit]
Description=Servicio Gateway de Clawdbot
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/root/clawdbot
ExecStart=/usr/bin/node dist/index.js gateway
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now clawdbot-gateway
4.3 Verificación de sincronización horaria
WeChat Work requiere error de tiempo menor a 5 minutos:
sudo timedatectl set-ntp true
sudo systemctl restart systemd-timesyncd
timedatectl status
Confirme que la salida incluya System clock synchronized: yes.
- Solución de probleams comunes
5.1 Lista de verificación para fallos de recepción
- Revise logs de acceso de Nginx:
tail -f /var/log/nginx/access.log - Verifique estado del servicio Clawdbot:
systemctl status clawdbot-gateway - Vea logs en tiempo real:
journalctl -u clawdbot-gateway -f - Pruebe interfaz local:
curl -v http://127.0.0.1:18789/wechatwork/callback
5.2 Manejo de problemas de cifrado/descifrado
Verificación manual del proceso:
# 1. Generar XML de prueba
cat > prueba.xml << 'EOF'
<xml>
<ToUserName><![CDATA[wwxxxxxxxxxxxxxxxxxx]]></ToUserName>
<FromUserName><![CDATA[USERID123]]></FromUserName>
<Content><![CDATA[Mensaje prueba]]></Content>
</xml>
EOF
# 2. Prueba de cifrado
node dist/index.js wechatwork cifrar --archivo prueba.xml
# 3. Prueba de descifrado (usando salida del paso anterior)
node dist/index.js wechatwork descifrar --cifrado "contenido_cifrado" --firma "firma" --marca_tiempo timestamp --nonce nonce
- Configuración avanzada y optimización
6.1 Balanceo de carga multi-instancia IA
Para escenarios de alta concurrencia:
upstream clawdbot {
server 127.0.0.1:18789;
server 127.0.0.1:18790;
server 127.0.0.1:18791;
}
server {
location /wechatwork/callback {
proxy_pass http://clawdbot;
}
}
6.2 Configuración de aislamiento de sesión
Por defecto, diferentes usuarios tienen sesiones independientes. Para sesión compartida:
{
"agentes": {
"principal": {
"sesion": {
"wechatwork_compartida": true
}
}
}
}
- Lista de verificación para implementación
- [ ] Configuración de servidor en WeChat Work guardada
- [ ] Configuración
clawdbot.jsoncorrecta y verificada - [ ] Certificado HTTPS válido y Nginx configurado
- [ ] Hora del sistema sincronizada
- [ ] Servicio Clawdbot configurado para inicio automático
- [ ] Prueba de envío/recepción de mensajes exitosa