Files
picoclaw/docs/channels/wecom/wecom_aibot/README.md
T
BeaconCat 403ceb39be docs: fix inaccuracies, add translations, and expand channel docs (#1837)
## 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>
2026-03-20 22:37:05 +08:00

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

  1. Log in to the WeCom Admin Console
  2. Go to "App Management" → "AI Bot", then create or select an AI Bot
  3. 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
  4. 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:

  1. Immediately close the stream and show the user: " 正在处理中,请稍候,结果将稍后发送。"
  2. The Agent continues running in the background
  3. Once the Agent finishes, the final reply is proactively pushed to the user via the response_url included in the message

response_url is 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 token and encoding_aes_key are entered correctly
  • Check PicoClaw logs to see if a GET request from WeCom was received

Messages Not Getting a Reply

  • Check whether allow_from is accidentally restricting the sender
  • Look for context canceled or 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 mode and Sending reply via response_url

Reference