wechat-channel
WeChat と OpenClaw を双方向に連携させるチャンネルスキルです。Wechaty + PadLocal をベースに、プライベートチャット・グループチャット・@メンション検知・画像/ファイル転送など、WeChat メッセージの送受信を幅広くサポートします。WeChat 経由で AI アシスタントと対話したい場合、WeChat のメッセージを受信して AI レスポンスをトリガーしたい場合、または OpenClaw から WeChat へメッセージを送信したい場合に活用してください。
description の原文を見る
微信 (WeChat) 与 OpenClaw 的双向集成通道。基于 Wechaty + PadLocal 实现微信消息的接收和发送,支持私聊、群聊、@提及检测、图片/文件传输。当需要通过微信与 AI 助手交互、接收微信消息触发 AI 响应、或从 OpenClaw 发送消息到微信时使用此技能。
SKILL.md 本文
WeChat チャネル統合
- Author: Daniel Li
- Copyright © Daniel Li. All rights reserved.
WeChat を OpenClaw に統合し、双方向メッセージチャネルを実現します。
アーキテクチャ概要
┌─────────────┐ ┌──────────────────┐ ┌─────────────┐
│ WeChat ユーザー │ ←→ │ Wechaty Bridge │ ←→ │ OpenClaw │
│ (個人/グループ) │ │ (PadLocal プロトコル) │ │ Gateway │
└─────────────┘ └──────────────────┘ └─────────────┘
↓
┌──────────────────┐
│ メッセージフォーマット変換 │
│ - テキスト/画像/ファイル │
│ - @メンション検出 │
│ - グループ/個人チャットルーティング │
└──────────────────┘
コアコンポーネント
1. Wechaty Bridge (メッセージブリッジサービス)
独立して動作する Node.js サービス、責務:
- WeChat ログイン(QR コードスキャン)
- メッセージ送受信
- 連絡先/グループ管理
- OpenClaw Gateway との通信
2. OpenClaw Webhook リシーバー
Wechaty Bridge からのメッセージを受信し、AI Agent に転送します。
3. メッセージ送信 API
OpenClaw Agent が HTTP API 経由で WeChat にメッセージを送信します。
クイックスタート
前提条件
- Node.js >= 18
- PadLocal Token(有料サービス、約 ¥200/月)
- OpenClaw Gateway が稼働中
1. 依存関係のインストール
cd /home/aa/clawd/skills/wechat-channel
npm init -y
npm install wechaty wechaty-puppet-padlocal axios dotenv
2. 環境変数の設定
cp .env.example .env
# .env を編集して設定を入力
3. サービスの起動
node scripts/wechat-bridge.js
# ターミナルに表示される QR コードをスキャンしてログイン
設定ガイド
環境変数 (.env)
# PadLocal Token (必須)
# 取得方法: https://pad-local.com
PADLOCAL_TOKEN=YOUR_PADLOCAL_TOKEN
# OpenClaw Gateway 設定
OPENCLAW_GATEWAY_URL=http://127.0.0.1:18789
OPENCLAW_WEBHOOK_SECRET=your_webhook_secret
# WeChat Bot 設定
WECHAT_BOT_NAME=OpenClaw助手
# セキュリティ設定
# 許可するユーザーの WeChat ID (カンマ区切り、空白で全ユーザー許可)
ALLOWED_USERS=wxid_xxx,wxid_yyy
# 許可するグループ ID (カンマ区切り、空白で全グループ許可)
ALLOWED_GROUPS=xxx@chatroom,yyy@chatroom
# グループチャット動作
# グループメッセージに応答するために@が必要かどうか
REQUIRE_MENTION_IN_GROUP=true
# ログレベル
LOG_LEVEL=info
OpenClaw 設定 (openclaw.json)
{
"channels": {
"wechat": {
"enabled": true,
"webhookUrl": "http://localhost:3001/webhook",
"webhookSecret": "your_webhook_secret",
"dmPolicy": "allowlist",
"allowFrom": ["wxid_xxx", "wxid_yyy"],
"groups": {
"xxx@chatroom": {
"name": "工作群",
"requireMention": true
}
}
}
}
}
メッセージフォーマット
受信メッセージ (Webhook ペイロード)
{
"type": "message",
"channel": "wechat",
"messageId": "msg_123456",
"from": {
"id": "wxid_sender",
"name": "太郎",
"alias": "taro"
},
"chat": {
"id": "wxid_sender",
"type": "private"
},
"text": "明日の天気を調べてくれないか",
"timestamp": 1706745600000,
"mentions": [],
"replyTo": null
}
グループチャットメッセージ
{
"type": "message",
"channel": "wechat",
"messageId": "msg_789012",
"from": {
"id": "wxid_sender",
"name": "太郎"
},
"chat": {
"id": "xxx@chatroom",
"type": "group",
"name": "仕事グループ"
},
"text": "@OpenClaw助手 今日の会議の内容をまとめてください",
"mentions": ["bot_wxid"],
"isMentioned": true
}
メッセージ送信 (API)
# テキスト送信
curl -X POST http://localhost:3001/api/send \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_SECRET" \
-d '{
"to": "wxid_receiver",
"type": "text",
"content": "承知しました、処理中です..."
}'
# 画像送信
curl -X POST http://localhost:3001/api/send \
-H "Content-Type: application/json" \
-d '{
"to": "wxid_receiver",
"type": "image",
"url": "https://example.com/image.png"
}'
# ファイル送信
curl -X POST http://localhost:3001/api/send \
-d '{
"to": "wxid_receiver",
"type": "file",
"path": "/path/to/file.pdf",
"filename": "report.pdf"
}'
セキュリティポリシー
プライベートチャットポリシー (dmPolicy)
| ポリシー | 説明 |
|---|---|
open | 全員がプライベートチャットできる(危険) |
allowlist | allowFrom リストのユーザーのみ |
pairing | ペアリング承認が必要 |
グループチャットポリシー
| 設定 | 説明 |
|---|---|
requireMention: true | Bot への@が必須 |
allowFrom | グループ内でトリガーを許可するユーザーリスト |
ユースケース
1. 個人アシスタント
ユーザー: 明日の東京の天気を調べてくれ
Bot: 明日の東京の天気:晴れ、気温 -5°C ~ 5°C、ダウンジャケットをお勧めします。
2. グループチャットアシスタント
ユーザー: @OpenClaw助手 さっきの議論をまとめて
Bot: さっきの議論の要点:
1. プロジェクトの進捗を加速する必要がある
2. 来週水曜までにデザイン案を完成させる
3. 金曜にコードレビューを実施
3. 自動化通知
// OpenClaw Agent から通知を送信
await sendWechatMessage({
to: 'xxx@chatroom',
text: '⚠️ サーバーの CPU 使用率が 90% を超えています。確認してください!'
});
トラブルシューティング
ログイン問題
問題: QR コードスキャン後にログインできない 解決:
- PadLocal Token が有効か確認
- WeChat アカウントが制限されていないか確認
- Token の取得をやり直す
メッセージ送受信問題
問題: メッセージ送信に失敗 解決:
- ネットワーク接続を確認
- 対象ユーザー/グループ ID が正しいか確認
- ログのエラーメッセージを確認
接続切断
問題: サービスしばらく実行後に切断される 解決:
- PM2 でプロセスを管理し、自動再起動を設定
- PadLocal サービスのステータスを確認
- ハートビート検出と再接続メカニズムを実装
制限事項
PadLocal の制限
- 有料 Token が必要(約 ¥200/月)
- 単一 Token で複数の WeChat アカウントにログインできない
- WeChat のセキュリティ制限の影響を受ける可能性
WeChat プラットフォームの制限
- メッセージ送信頻度制限(1~2 秒の間隔を推奨)
- グループチャットの人数制限
- ファイルサイズ制限(約 100MB)
- ミニプログラムメッセージに非対応
機能の制限
- 音声メッセージの自動テキスト化に非対応(別途統合が必要)
- ビデオアカウントのコンテンツに非対応
- 紅包、送金などの機密機能は使用不可
関連ファイル
scripts/wechat-bridge.js- メインサービスコードscripts/message-handler.js- メッセージ処理ロジック.env.example- 環境変数テンプレートreferences/wechaty-api.md- Wechaty API リファレンス
TODO
- PadLocal Token を取得
- OpenClaw Webhook 受信を設定
- プライベートチャットのメッセージ送受信をテスト
- グループチャットの @メンションをテスト
- セキュリティポリシーを設定
- システムサービスとして展開
- 断線時の自動再接続を実装
- メッセージキューを追加(高並行処理)
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- aaaaqwq
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/aaaaqwq/claude-code-skills / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。