## Config field fixes (cross-verified against Go source) - MaixCam: server_address → host + port - IRC: use_tls → tls, channels_to_join → channels (all 6 languages) - WeCom AI Bot: callback port 18791 → 18790 - credential_encryption: base_url → api_base, add required model field, remove incorrect passphrase-only mode docs - providers.md: agents.defaults.model → model_name (×4), remove non-existent session.backlog_limit - migration guide, troubleshooting: agents.defaults.model → model_name - ANTIGRAVITY_AUTH: fix file path, Go 1.21 → 1.25, model → model_name - spawn-tasks: fix truncated file, add Heartbeat introduction - tools_configuration: add Tavily/SearXNG/GLMSearch, exec allow_remote/ timeout_seconds/custom_allow_patterns, cron allow_command, skills github/search_cache, clawhub timeout/max_zip_size/max_response_size - configuration: fix builtin skills path (build-time embedded, not cwd), HEARTBEAT.md marked auto-generated ## Broken link fixes (15 total) - chat-apps.md: WeCom/Matrix links with wrong relative paths - providers.md: migration link with extra docs/ prefix - hardware-compatibility.md: README links with wrong depth (all 5 langs) - chat-apps.md: WhatsApp dead links → anchor links (zh/ja) ## Getting-started accuracy - README (all 6 langs): add picoclaw.io as recommended download, add missing picoclaw model CLI command - docker.md: clarify first-run trigger condition (all 6 langs) - configuration.md: fix builtin skills path description (all 6 langs) ## QQ channel - Add quick setup via q.qq.com/qqbot/openclaw (one-click bot creation) - Add manual setup as fallback (all 6 languages) ## Feishu channel - Update setup flow: WebSocket/SDK mode, no webhook URL needed - Preserve Lark international domain note (all 6 languages) ## chat-apps.md - Add Feishu, Slack, IRC, OneBot detail sections (all 6 languages) - Add MaixCam section to ja/fr/pt-br/vi - Fix all channel doc links to point to correct language version ## New translations (25 files, 5 docs × 5 languages) debug.md, credential_encryption.md, hardware-compatibility.md, ANTIGRAVITY_AUTH.md, ANTIGRAVITY_USAGE.md → zh/ja/fr/pt-br/vi ## Channel docs (6 languages each, 60 new files) telegram, discord, qq, feishu, maixcam, dingtalk, line, slack, onebot, wecom/wecom_aibot, wecom/wecom_app, wecom/wecom_bot Co-authored-by: BeaconCat <BeaconCat@users.noreply.github.com>
4.9 KiB
Back to README
WeCom AI Bot
The WeCom AI Bot is an official AI conversation integration provided by WeCom. It supports both private and group chats, has a built-in streaming response protocol, and supports proactively pushing the final reply via response_url after a timeout.
Comparison with Other WeCom Channels
| Feature | WeCom Bot | WeCom App | WeCom AI Bot |
|---|---|---|---|
| Private Chat | ✅ | ✅ | ✅ |
| Group Chat | ✅ | ❌ | ✅ |
| Streaming Output | ❌ | ❌ | ✅ |
| Proactive Push on Timeout | ❌ | ✅ | ✅ |
| Configuration Complexity | Low | High | Medium |
Configuration
{
"channels": {
"wecom_aibot": {
"enabled": true,
"token": "YOUR_TOKEN",
"encoding_aes_key": "YOUR_43_CHAR_ENCODING_AES_KEY",
"webhook_path": "/webhook/wecom-aibot",
"allow_from": [],
"welcome_message": "你好!有什么可以帮助你的吗?",
"max_steps": 10
}
}
}
| Field | Type | Required | Description |
|---|---|---|---|
| token | string | Yes | Callback verification token, configured on the AI Bot management page |
| encoding_aes_key | string | Yes | 43-character AES key, randomly generated on the AI Bot management page |
| webhook_path | string | No | Webhook path (default: /webhook/wecom-aibot) |
| allow_from | array | No | User ID allowlist; empty array allows all users |
| welcome_message | string | No | Welcome message sent when a user opens the chat; leave empty to disable |
| reply_timeout | int | No | Reply timeout in seconds (default: 5) |
| max_steps | int | No | Maximum agent execution steps (default: 10) |
Setup
- Log in to the WeCom Admin Console
- Go to "App Management" → "AI Bot", then create or select an AI Bot
- On the AI Bot configuration page, fill in the "Message Reception" details:
- URL:
http://<your-server-ip>:18790/webhook/wecom-aibot - Token: Randomly generated or custom
- EncodingAESKey: Click "Random Generate" to get a 43-character key
- URL:
- Enter the Token and EncodingAESKey into the PicoClaw config file, start the service, then return to the admin console to save (WeCom will send a verification request)
Tip
The server must be accessible by WeCom's servers. If you are on an intranet or developing locally, use ngrok or frp for tunneling.
Streaming Response Protocol
WeCom AI Bot uses a "streaming pull" protocol, which differs from the one-shot reply of a standard webhook:
User sends a message
│
▼
PicoClaw immediately returns {finish: false} (Agent starts processing)
│
▼
WeCom pulls approximately every 1 second with {msgtype: "stream", stream: {id: "..."}}
│
├─ Agent not done → returns {finish: false} (keep waiting)
│
└─ Agent done → returns {finish: true, content: "reply content"}
Timeout Handling (task exceeds 30 seconds):
If the Agent takes longer than approximately 30 seconds (WeCom's maximum polling window is 6 minutes), PicoClaw will:
- Immediately close the stream and show the user: "⏳ 正在处理中,请稍候,结果将稍后发送。"
- The Agent continues running in the background
- Once the Agent finishes, the final reply is proactively pushed to the user via the
response_urlincluded in the message
response_urlis issued by WeCom, valid for 1 hour, can only be used once, requires no encryption — just POST the markdown message body directly.
Welcome Message
When welcome_message is configured, PicoClaw will automatically reply with it when a user opens the chat window with the AI Bot (enter_chat event). Leave it empty to silently ignore the event.
"welcome_message": "你好!我是 PicoClaw AI 助手,有什么可以帮你?"
FAQ
Callback URL Verification Failed
- Confirm the server firewall has the relevant port open (default 18790)
- Confirm
tokenandencoding_aes_keyare entered correctly - Check PicoClaw logs to see if a GET request from WeCom was received
Messages Not Getting a Reply
- Check whether
allow_fromis accidentally restricting the sender - Look for
context canceledor Agent errors in the logs - Confirm the Agent configuration (e.g.,
model_name) is correct
No Final Push Received for Long-Running Tasks
- Confirm the message callback includes
response_url(only supported by the newer WeCom AI Bot) - Confirm the server can make outbound requests (needs to POST to
response_url) - Check logs for keywords
response_url modeandSending reply via response_url