@quantumclaw/quantumclaw 2026.3.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4601 -0
- package/LICENSE +21 -0
- package/README.md +559 -0
- package/assets/avatar-placeholder.svg +19 -0
- package/assets/chrome-extension/icons/icon128.png +0 -0
- package/assets/chrome-extension/icons/icon16.png +0 -0
- package/assets/chrome-extension/icons/icon32.png +0 -0
- package/assets/chrome-extension/icons/icon48.png +0 -0
- package/assets/dmg-background-small.png +0 -0
- package/assets/dmg-background.png +0 -0
- package/docs/.i18n/README.md +31 -0
- package/docs/.i18n/glossary.ja-JP.json +14 -0
- package/docs/.i18n/glossary.zh-CN.json +302 -0
- package/docs/.i18n/ja-JP.tm.jsonl +0 -0
- package/docs/assets/install-script.svg +1 -0
- package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
- package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
- package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
- package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
- package/docs/assets/macos-onboarding/05-permissions.png +0 -0
- package/docs/assets/pixel-lobster.svg +60 -0
- package/docs/assets/quantumclaw-logo-text-dark.png +0 -0
- package/docs/assets/quantumclaw-logo-text-dark.svg +418 -0
- package/docs/assets/quantumclaw-logo-text.png +0 -0
- package/docs/assets/quantumclaw-logo-text.svg +418 -0
- package/docs/assets/showcase/agents-ui.jpg +0 -0
- package/docs/assets/showcase/bambu-cli.png +0 -0
- package/docs/assets/showcase/codexmonitor.png +0 -0
- package/docs/assets/showcase/gohome-grafana.png +0 -0
- package/docs/assets/showcase/ios-testflight.jpg +0 -0
- package/docs/assets/showcase/oura-health.png +0 -0
- package/docs/assets/showcase/padel-cli.svg +11 -0
- package/docs/assets/showcase/padel-screenshot.jpg +0 -0
- package/docs/assets/showcase/papla-tts.jpg +0 -0
- package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
- package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
- package/docs/assets/showcase/roborock-status.svg +13 -0
- package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
- package/docs/assets/showcase/snag.png +0 -0
- package/docs/assets/showcase/tesco-shop.jpg +0 -0
- package/docs/assets/showcase/wienerlinien.png +0 -0
- package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
- package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
- package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
- package/docs/assets/sponsors/blacksmith.svg +14 -0
- package/docs/assets/sponsors/convex.svg +16 -0
- package/docs/assets/sponsors/openai.svg +3 -0
- package/docs/assets/sponsors/vercel.svg +5 -0
- package/docs/auth-credential-semantics.md +53 -0
- package/docs/automation/auth-monitoring.md +44 -0
- package/docs/automation/cron-jobs.md +727 -0
- package/docs/automation/cron-vs-heartbeat.md +286 -0
- package/docs/automation/gmail-pubsub.md +256 -0
- package/docs/automation/hooks.md +1056 -0
- package/docs/automation/poll.md +86 -0
- package/docs/automation/standing-orders.md +251 -0
- package/docs/automation/troubleshooting.md +122 -0
- package/docs/automation/webhook.md +217 -0
- package/docs/brave-search.md +93 -0
- package/docs/channels/bluebubbles.md +347 -0
- package/docs/channels/broadcast-groups.md +442 -0
- package/docs/channels/channel-routing.md +139 -0
- package/docs/channels/discord.md +1229 -0
- package/docs/channels/feishu.md +747 -0
- package/docs/channels/googlechat.md +261 -0
- package/docs/channels/group-messages.md +84 -0
- package/docs/channels/groups.md +379 -0
- package/docs/channels/imessage.md +367 -0
- package/docs/channels/index.md +47 -0
- package/docs/channels/irc.md +242 -0
- package/docs/channels/line.md +194 -0
- package/docs/channels/location.md +56 -0
- package/docs/channels/matrix.md +677 -0
- package/docs/channels/mattermost.md +427 -0
- package/docs/channels/msteams.md +780 -0
- package/docs/channels/nextcloud-talk.md +138 -0
- package/docs/channels/nostr.md +249 -0
- package/docs/channels/pairing.md +114 -0
- package/docs/channels/signal.md +329 -0
- package/docs/channels/slack.md +603 -0
- package/docs/channels/synology-chat.md +134 -0
- package/docs/channels/telegram.md +987 -0
- package/docs/channels/tlon.md +276 -0
- package/docs/channels/troubleshooting.md +118 -0
- package/docs/channels/twitch.md +379 -0
- package/docs/channels/whatsapp.md +460 -0
- package/docs/channels/zalo.md +243 -0
- package/docs/channels/zalouser.md +181 -0
- package/docs/ci.md +55 -0
- package/docs/cli/acp.md +288 -0
- package/docs/cli/agent.md +29 -0
- package/docs/cli/agents.md +123 -0
- package/docs/cli/approvals.md +50 -0
- package/docs/cli/backup.md +76 -0
- package/docs/cli/browser.md +106 -0
- package/docs/cli/channels.md +102 -0
- package/docs/cli/clawbot.md +21 -0
- package/docs/cli/completion.md +35 -0
- package/docs/cli/config.md +295 -0
- package/docs/cli/configure.md +36 -0
- package/docs/cli/cron.md +77 -0
- package/docs/cli/daemon.md +53 -0
- package/docs/cli/dashboard.md +22 -0
- package/docs/cli/devices.md +139 -0
- package/docs/cli/directory.md +63 -0
- package/docs/cli/dns.md +23 -0
- package/docs/cli/docs.md +15 -0
- package/docs/cli/doctor.md +48 -0
- package/docs/cli/gateway.md +235 -0
- package/docs/cli/health.md +21 -0
- package/docs/cli/hooks.md +329 -0
- package/docs/cli/index.md +1150 -0
- package/docs/cli/logs.md +28 -0
- package/docs/cli/memory.md +66 -0
- package/docs/cli/message.md +278 -0
- package/docs/cli/models.md +81 -0
- package/docs/cli/node.md +127 -0
- package/docs/cli/nodes.md +75 -0
- package/docs/cli/onboard.md +157 -0
- package/docs/cli/pairing.md +32 -0
- package/docs/cli/plugins.md +210 -0
- package/docs/cli/qr.md +46 -0
- package/docs/cli/reset.md +20 -0
- package/docs/cli/sandbox.md +197 -0
- package/docs/cli/secrets.md +188 -0
- package/docs/cli/security.md +79 -0
- package/docs/cli/sessions.md +110 -0
- package/docs/cli/setup.md +29 -0
- package/docs/cli/skills.md +36 -0
- package/docs/cli/status.md +30 -0
- package/docs/cli/system.md +60 -0
- package/docs/cli/tui.md +30 -0
- package/docs/cli/uninstall.md +20 -0
- package/docs/cli/update.md +103 -0
- package/docs/cli/voicecall.md +34 -0
- package/docs/cli/webhooks.md +25 -0
- package/docs/concepts/agent-loop.md +148 -0
- package/docs/concepts/agent-workspace.md +236 -0
- package/docs/concepts/agent.md +122 -0
- package/docs/concepts/architecture.md +137 -0
- package/docs/concepts/compaction.md +123 -0
- package/docs/concepts/context-engine.md +268 -0
- package/docs/concepts/context.md +172 -0
- package/docs/concepts/delegate-architecture.md +296 -0
- package/docs/concepts/features.md +73 -0
- package/docs/concepts/markdown-formatting.md +130 -0
- package/docs/concepts/memory.md +108 -0
- package/docs/concepts/messages.md +154 -0
- package/docs/concepts/model-failover.md +152 -0
- package/docs/concepts/model-providers.md +607 -0
- package/docs/concepts/models.md +225 -0
- package/docs/concepts/multi-agent.md +552 -0
- package/docs/concepts/oauth.md +158 -0
- package/docs/concepts/presence.md +102 -0
- package/docs/concepts/queue.md +89 -0
- package/docs/concepts/retry.md +69 -0
- package/docs/concepts/session-pruning.md +121 -0
- package/docs/concepts/session-tool.md +242 -0
- package/docs/concepts/session.md +310 -0
- package/docs/concepts/streaming.md +155 -0
- package/docs/concepts/system-prompt.md +132 -0
- package/docs/concepts/timezone.md +91 -0
- package/docs/concepts/typebox.md +291 -0
- package/docs/concepts/typing-indicators.md +68 -0
- package/docs/concepts/usage-tracking.md +35 -0
- package/docs/date-time.md +128 -0
- package/docs/debug/node-issue.md +85 -0
- package/docs/diagnostics/flags.md +91 -0
- package/docs/docs.json +2078 -0
- package/docs/gateway/authentication.md +179 -0
- package/docs/gateway/background-process.md +97 -0
- package/docs/gateway/bonjour.md +177 -0
- package/docs/gateway/bridge-protocol.md +91 -0
- package/docs/gateway/cli-backends.md +225 -0
- package/docs/gateway/configuration-examples.md +651 -0
- package/docs/gateway/configuration-reference.md +3123 -0
- package/docs/gateway/configuration.md +633 -0
- package/docs/gateway/discovery.md +123 -0
- package/docs/gateway/doctor.md +362 -0
- package/docs/gateway/gateway-lock.md +34 -0
- package/docs/gateway/health.md +44 -0
- package/docs/gateway/heartbeat.md +393 -0
- package/docs/gateway/index.md +261 -0
- package/docs/gateway/local-models.md +152 -0
- package/docs/gateway/logging.md +113 -0
- package/docs/gateway/multiple-gateways.md +112 -0
- package/docs/gateway/network-model.md +22 -0
- package/docs/gateway/openai-http-api.md +132 -0
- package/docs/gateway/openresponses-http-api.md +295 -0
- package/docs/gateway/openshell.md +307 -0
- package/docs/gateway/pairing.md +99 -0
- package/docs/gateway/protocol.md +267 -0
- package/docs/gateway/remote-gateway-readme.md +158 -0
- package/docs/gateway/remote.md +153 -0
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +134 -0
- package/docs/gateway/sandboxing.md +469 -0
- package/docs/gateway/secrets-plan-contract.md +116 -0
- package/docs/gateway/secrets.md +503 -0
- package/docs/gateway/security/index.md +1220 -0
- package/docs/gateway/tailscale.md +132 -0
- package/docs/gateway/tools-invoke-http-api.md +118 -0
- package/docs/gateway/troubleshooting.md +378 -0
- package/docs/gateway/trusted-proxy-auth.md +330 -0
- package/docs/help/debugging.md +168 -0
- package/docs/help/environment.md +163 -0
- package/docs/help/faq.md +2997 -0
- package/docs/help/index.md +28 -0
- package/docs/help/scripts.md +28 -0
- package/docs/help/testing.md +526 -0
- package/docs/help/troubleshooting.md +297 -0
- package/docs/images/configure-model-picker-unsearchable.png +0 -0
- package/docs/images/feishu-step2-create-app.png +0 -0
- package/docs/images/feishu-step3-credentials.png +0 -0
- package/docs/images/feishu-step4-permissions.png +0 -0
- package/docs/images/feishu-step5-bot-capability.png +0 -0
- package/docs/images/feishu-step6-event-subscription.png +0 -0
- package/docs/images/feishu-verification-token.png +0 -0
- package/docs/images/groups-flow.svg +52 -0
- package/docs/images/mobile-ui-screenshot.png +0 -0
- package/docs/index.md +196 -0
- package/docs/install/ansible.md +230 -0
- package/docs/install/azure.md +311 -0
- package/docs/install/bun.md +55 -0
- package/docs/install/development-channels.md +120 -0
- package/docs/install/digitalocean.md +129 -0
- package/docs/install/docker-vm-runtime.md +142 -0
- package/docs/install/docker.md +375 -0
- package/docs/install/exe-dev.md +126 -0
- package/docs/install/fly.md +501 -0
- package/docs/install/gcp.md +402 -0
- package/docs/install/hetzner.md +251 -0
- package/docs/install/index.md +183 -0
- package/docs/install/installer.md +415 -0
- package/docs/install/kubernetes.md +191 -0
- package/docs/install/macos-vm.md +281 -0
- package/docs/install/migrating-matrix.md +346 -0
- package/docs/install/migrating.md +110 -0
- package/docs/install/nix.md +89 -0
- package/docs/install/node.md +138 -0
- package/docs/install/northflank.mdx +54 -0
- package/docs/install/oracle.md +156 -0
- package/docs/install/podman.md +133 -0
- package/docs/install/railway.mdx +100 -0
- package/docs/install/raspberry-pi.md +159 -0
- package/docs/install/render.mdx +169 -0
- package/docs/install/uninstall.md +128 -0
- package/docs/install/updating.md +128 -0
- package/docs/ja-JP/index.md +186 -0
- package/docs/ja-JP/start/getting-started.md +125 -0
- package/docs/ja-JP/start/wizard.md +77 -0
- package/docs/logging.md +352 -0
- package/docs/nav-tabs-underline.js +100 -0
- package/docs/network.md +54 -0
- package/docs/nodes/audio.md +187 -0
- package/docs/nodes/camera.md +162 -0
- package/docs/nodes/images.md +72 -0
- package/docs/nodes/index.md +393 -0
- package/docs/nodes/location-command.md +98 -0
- package/docs/nodes/media-understanding.md +394 -0
- package/docs/nodes/talk.md +92 -0
- package/docs/nodes/troubleshooting.md +114 -0
- package/docs/nodes/voicewake.md +66 -0
- package/docs/perplexity.md +174 -0
- package/docs/pi-dev.md +80 -0
- package/docs/pi.md +567 -0
- package/docs/platforms/android.md +168 -0
- package/docs/platforms/digitalocean.md +266 -0
- package/docs/platforms/index.md +54 -0
- package/docs/platforms/ios.md +220 -0
- package/docs/platforms/linux.md +94 -0
- package/docs/platforms/mac/bundled-gateway.md +73 -0
- package/docs/platforms/mac/canvas.md +125 -0
- package/docs/platforms/mac/child-process.md +69 -0
- package/docs/platforms/mac/dev-setup.md +104 -0
- package/docs/platforms/mac/health.md +34 -0
- package/docs/platforms/mac/icon.md +31 -0
- package/docs/platforms/mac/logging.md +57 -0
- package/docs/platforms/mac/menu-bar.md +81 -0
- package/docs/platforms/mac/peekaboo.md +65 -0
- package/docs/platforms/mac/permissions.md +50 -0
- package/docs/platforms/mac/remote.md +84 -0
- package/docs/platforms/mac/signing.md +47 -0
- package/docs/platforms/mac/skills.md +33 -0
- package/docs/platforms/mac/voice-overlay.md +60 -0
- package/docs/platforms/mac/voicewake.md +67 -0
- package/docs/platforms/mac/webchat.md +43 -0
- package/docs/platforms/mac/xpc.md +61 -0
- package/docs/platforms/macos.md +226 -0
- package/docs/platforms/oracle.md +303 -0
- package/docs/platforms/raspberry-pi.md +412 -0
- package/docs/platforms/windows.md +241 -0
- package/docs/plugins/agent-tools.md +10 -0
- package/docs/plugins/architecture.md +1366 -0
- package/docs/plugins/building-extensions.md +10 -0
- package/docs/plugins/building-plugins.md +239 -0
- package/docs/plugins/bundles.md +181 -0
- package/docs/plugins/community.md +145 -0
- package/docs/plugins/manifest.md +241 -0
- package/docs/plugins/sdk-channel-plugins.md +370 -0
- package/docs/plugins/sdk-entrypoints.md +161 -0
- package/docs/plugins/sdk-migration.md +172 -0
- package/docs/plugins/sdk-overview.md +196 -0
- package/docs/plugins/sdk-provider-plugins.md +370 -0
- package/docs/plugins/sdk-runtime.md +345 -0
- package/docs/plugins/sdk-setup.md +331 -0
- package/docs/plugins/sdk-testing.md +263 -0
- package/docs/plugins/voice-call.md +380 -0
- package/docs/plugins/zalouser.md +77 -0
- package/docs/prose.md +134 -0
- package/docs/providers/anthropic.md +259 -0
- package/docs/providers/bedrock.md +176 -0
- package/docs/providers/claude-max-api-proxy.md +154 -0
- package/docs/providers/cloudflare-ai-gateway.md +71 -0
- package/docs/providers/deepgram.md +93 -0
- package/docs/providers/github-copilot.md +72 -0
- package/docs/providers/glm.md +43 -0
- package/docs/providers/google.md +78 -0
- package/docs/providers/groq.md +96 -0
- package/docs/providers/huggingface.md +209 -0
- package/docs/providers/index.md +69 -0
- package/docs/providers/kilocode.md +74 -0
- package/docs/providers/litellm.md +154 -0
- package/docs/providers/minimax.md +224 -0
- package/docs/providers/mistral.md +54 -0
- package/docs/providers/models.md +45 -0
- package/docs/providers/modelstudio.md +66 -0
- package/docs/providers/moonshot.md +175 -0
- package/docs/providers/nvidia.md +55 -0
- package/docs/providers/ollama.md +352 -0
- package/docs/providers/openai.md +303 -0
- package/docs/providers/opencode-go.md +45 -0
- package/docs/providers/opencode.md +64 -0
- package/docs/providers/openrouter.md +37 -0
- package/docs/providers/perplexity-provider.md +62 -0
- package/docs/providers/qianfan.md +38 -0
- package/docs/providers/qwen.md +53 -0
- package/docs/providers/sglang.md +104 -0
- package/docs/providers/synthetic.md +99 -0
- package/docs/providers/together.md +66 -0
- package/docs/providers/venice.md +282 -0
- package/docs/providers/vercel-ai-gateway.md +60 -0
- package/docs/providers/vllm.md +92 -0
- package/docs/providers/volcengine.md +74 -0
- package/docs/providers/xai.md +60 -0
- package/docs/providers/xiaomi.md +86 -0
- package/docs/providers/zai.md +46 -0
- package/docs/reference/AGENTS.default.md +126 -0
- package/docs/reference/RELEASING.md +42 -0
- package/docs/reference/api-usage-costs.md +144 -0
- package/docs/reference/credits.md +30 -0
- package/docs/reference/device-models.md +47 -0
- package/docs/reference/memory-config.md +711 -0
- package/docs/reference/prompt-caching.md +185 -0
- package/docs/reference/rpc.md +43 -0
- package/docs/reference/secretref-credential-surface.md +140 -0
- package/docs/reference/secretref-user-supplied-credentials-matrix.json +563 -0
- package/docs/reference/session-management-compaction.md +324 -0
- package/docs/reference/templates/AGENTS.dev.md +83 -0
- package/docs/reference/templates/AGENTS.md +219 -0
- package/docs/reference/templates/BOOT.md +11 -0
- package/docs/reference/templates/BOOTSTRAP.md +62 -0
- package/docs/reference/templates/HEARTBEAT.md +14 -0
- package/docs/reference/templates/IDENTITY.dev.md +47 -0
- package/docs/reference/templates/IDENTITY.md +29 -0
- package/docs/reference/templates/SOUL.dev.md +76 -0
- package/docs/reference/templates/SOUL.md +43 -0
- package/docs/reference/templates/TOOLS.dev.md +24 -0
- package/docs/reference/templates/TOOLS.md +47 -0
- package/docs/reference/templates/USER.dev.md +18 -0
- package/docs/reference/templates/USER.md +23 -0
- package/docs/reference/test.md +90 -0
- package/docs/reference/token-use.md +175 -0
- package/docs/reference/transcript-hygiene.md +151 -0
- package/docs/reference/wizard.md +235 -0
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +98 -0
- package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
- package/docs/security/formal-verification.md +167 -0
- package/docs/start/bootstrapping.md +41 -0
- package/docs/start/docs-directory.md +66 -0
- package/docs/start/getting-started.md +116 -0
- package/docs/start/hubs.md +198 -0
- package/docs/start/lore.md +219 -0
- package/docs/start/onboarding-overview.md +67 -0
- package/docs/start/onboarding.md +91 -0
- package/docs/start/openclaw.md +221 -0
- package/docs/start/quickstart.md +22 -0
- package/docs/start/setup.md +164 -0
- package/docs/start/showcase.md +418 -0
- package/docs/start/wizard-cli-automation.md +215 -0
- package/docs/start/wizard-cli-reference.md +299 -0
- package/docs/start/wizard.md +125 -0
- package/docs/style.css +37 -0
- package/docs/tools/acp-agents.md +623 -0
- package/docs/tools/agent-send.md +100 -0
- package/docs/tools/apply-patch.md +51 -0
- package/docs/tools/brave-search.md +93 -0
- package/docs/tools/browser-linux-troubleshooting.md +138 -0
- package/docs/tools/browser-login.md +73 -0
- package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +211 -0
- package/docs/tools/browser.md +731 -0
- package/docs/tools/btw.md +142 -0
- package/docs/tools/capability-cookbook.md +119 -0
- package/docs/tools/clawhub.md +298 -0
- package/docs/tools/creating-skills.md +117 -0
- package/docs/tools/diffs.md +386 -0
- package/docs/tools/elevated.md +114 -0
- package/docs/tools/exec-approvals.md +430 -0
- package/docs/tools/exec.md +207 -0
- package/docs/tools/firecrawl.md +140 -0
- package/docs/tools/index.md +137 -0
- package/docs/tools/llm-task.md +119 -0
- package/docs/tools/lobster.md +340 -0
- package/docs/tools/loop-detection.md +100 -0
- package/docs/tools/multi-agent-sandbox-tools.md +364 -0
- package/docs/tools/pdf.md +156 -0
- package/docs/tools/perplexity-search.md +174 -0
- package/docs/tools/plugin.md +255 -0
- package/docs/tools/reactions.md +64 -0
- package/docs/tools/skills-config.md +86 -0
- package/docs/tools/skills.md +309 -0
- package/docs/tools/slash-commands.md +294 -0
- package/docs/tools/subagents.md +295 -0
- package/docs/tools/tavily.md +125 -0
- package/docs/tools/thinking.md +96 -0
- package/docs/tools/tts.md +406 -0
- package/docs/tools/web.md +516 -0
- package/docs/tts.md +406 -0
- package/docs/vps.md +112 -0
- package/docs/web/control-ui.md +275 -0
- package/docs/web/dashboard.md +54 -0
- package/docs/web/index.md +120 -0
- package/docs/web/tui.md +170 -0
- package/docs/web/webchat.md +61 -0
- package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
- package/docs/whatsapp-openclaw.jpg +0 -0
- package/docs/zh-CN/AGENTS.md +61 -0
- package/docs/zh-CN/automation/auth-monitoring.md +47 -0
- package/docs/zh-CN/automation/cron-jobs.md +435 -0
- package/docs/zh-CN/automation/cron-vs-heartbeat.md +286 -0
- package/docs/zh-CN/automation/gmail-pubsub.md +249 -0
- package/docs/zh-CN/automation/hooks.md +1051 -0
- package/docs/zh-CN/automation/poll.md +76 -0
- package/docs/zh-CN/automation/troubleshooting.md +8 -0
- package/docs/zh-CN/automation/webhook.md +163 -0
- package/docs/zh-CN/brave-search.md +60 -0
- package/docs/zh-CN/channels/bluebubbles.md +354 -0
- package/docs/zh-CN/channels/broadcast-groups.md +449 -0
- package/docs/zh-CN/channels/channel-routing.md +117 -0
- package/docs/zh-CN/channels/discord.md +468 -0
- package/docs/zh-CN/channels/feishu.md +728 -0
- package/docs/zh-CN/channels/googlechat.md +257 -0
- package/docs/zh-CN/channels/grammy.md +38 -0
- package/docs/zh-CN/channels/group-messages.md +91 -0
- package/docs/zh-CN/channels/groups.md +379 -0
- package/docs/zh-CN/channels/imessage.md +302 -0
- package/docs/zh-CN/channels/index.md +53 -0
- package/docs/zh-CN/channels/line.md +180 -0
- package/docs/zh-CN/channels/location.md +63 -0
- package/docs/zh-CN/channels/matrix.md +221 -0
- package/docs/zh-CN/channels/mattermost.md +144 -0
- package/docs/zh-CN/channels/msteams.md +775 -0
- package/docs/zh-CN/channels/nextcloud-talk.md +142 -0
- package/docs/zh-CN/channels/nostr.md +249 -0
- package/docs/zh-CN/channels/pairing.md +89 -0
- package/docs/zh-CN/channels/signal.md +209 -0
- package/docs/zh-CN/channels/slack.md +531 -0
- package/docs/zh-CN/channels/synology-chat.md +138 -0
- package/docs/zh-CN/channels/telegram.md +751 -0
- package/docs/zh-CN/channels/tlon.md +136 -0
- package/docs/zh-CN/channels/troubleshooting.md +36 -0
- package/docs/zh-CN/channels/twitch.md +385 -0
- package/docs/zh-CN/channels/whatsapp.md +411 -0
- package/docs/zh-CN/channels/zalo.md +196 -0
- package/docs/zh-CN/channels/zalouser.md +147 -0
- package/docs/zh-CN/cli/acp.md +173 -0
- package/docs/zh-CN/cli/agent.md +30 -0
- package/docs/zh-CN/cli/agents.md +82 -0
- package/docs/zh-CN/cli/approvals.md +57 -0
- package/docs/zh-CN/cli/browser.md +114 -0
- package/docs/zh-CN/cli/channels.md +86 -0
- package/docs/zh-CN/cli/config.md +57 -0
- package/docs/zh-CN/cli/configure.md +38 -0
- package/docs/zh-CN/cli/cron.md +43 -0
- package/docs/zh-CN/cli/dashboard.md +23 -0
- package/docs/zh-CN/cli/devices.md +74 -0
- package/docs/zh-CN/cli/directory.md +70 -0
- package/docs/zh-CN/cli/dns.md +30 -0
- package/docs/zh-CN/cli/docs.md +22 -0
- package/docs/zh-CN/cli/doctor.md +48 -0
- package/docs/zh-CN/cli/gateway.md +206 -0
- package/docs/zh-CN/cli/health.md +28 -0
- package/docs/zh-CN/cli/hooks.md +298 -0
- package/docs/zh-CN/cli/index.md +1143 -0
- package/docs/zh-CN/cli/logs.md +31 -0
- package/docs/zh-CN/cli/memory.md +52 -0
- package/docs/zh-CN/cli/message.md +246 -0
- package/docs/zh-CN/cli/models.md +85 -0
- package/docs/zh-CN/cli/node.md +115 -0
- package/docs/zh-CN/cli/nodes.md +80 -0
- package/docs/zh-CN/cli/onboard.md +164 -0
- package/docs/zh-CN/cli/pairing.md +28 -0
- package/docs/zh-CN/cli/plugins.md +66 -0
- package/docs/zh-CN/cli/reset.md +24 -0
- package/docs/zh-CN/cli/sandbox.md +158 -0
- package/docs/zh-CN/cli/security.md +33 -0
- package/docs/zh-CN/cli/sessions.md +23 -0
- package/docs/zh-CN/cli/setup.md +36 -0
- package/docs/zh-CN/cli/skills.md +33 -0
- package/docs/zh-CN/cli/status.md +33 -0
- package/docs/zh-CN/cli/system.md +63 -0
- package/docs/zh-CN/cli/tui.md +30 -0
- package/docs/zh-CN/cli/uninstall.md +24 -0
- package/docs/zh-CN/cli/update.md +101 -0
- package/docs/zh-CN/cli/voicecall.md +41 -0
- package/docs/zh-CN/cli/webhooks.md +32 -0
- package/docs/zh-CN/concepts/agent-loop.md +146 -0
- package/docs/zh-CN/concepts/agent-workspace.md +219 -0
- package/docs/zh-CN/concepts/agent.md +115 -0
- package/docs/zh-CN/concepts/architecture.md +123 -0
- package/docs/zh-CN/concepts/compaction.md +67 -0
- package/docs/zh-CN/concepts/context.md +168 -0
- package/docs/zh-CN/concepts/features.md +59 -0
- package/docs/zh-CN/concepts/markdown-formatting.md +117 -0
- package/docs/zh-CN/concepts/memory.md +412 -0
- package/docs/zh-CN/concepts/messages.md +141 -0
- package/docs/zh-CN/concepts/model-failover.md +145 -0
- package/docs/zh-CN/concepts/model-providers.md +606 -0
- package/docs/zh-CN/concepts/models.md +225 -0
- package/docs/zh-CN/concepts/multi-agent.md +372 -0
- package/docs/zh-CN/concepts/oauth.md +164 -0
- package/docs/zh-CN/concepts/presence.md +99 -0
- package/docs/zh-CN/concepts/queue.md +94 -0
- package/docs/zh-CN/concepts/retry.md +76 -0
- package/docs/zh-CN/concepts/session-pruning.md +129 -0
- package/docs/zh-CN/concepts/session-tool.md +200 -0
- package/docs/zh-CN/concepts/session.md +166 -0
- package/docs/zh-CN/concepts/streaming.md +133 -0
- package/docs/zh-CN/concepts/system-prompt.md +101 -0
- package/docs/zh-CN/concepts/timezone.md +96 -0
- package/docs/zh-CN/concepts/typebox.md +284 -0
- package/docs/zh-CN/concepts/typing-indicators.md +74 -0
- package/docs/zh-CN/concepts/usage-tracking.md +42 -0
- package/docs/zh-CN/date-time.md +129 -0
- package/docs/zh-CN/debug/node-issue.md +90 -0
- package/docs/zh-CN/diagnostics/flags.md +98 -0
- package/docs/zh-CN/gateway/authentication.md +184 -0
- package/docs/zh-CN/gateway/background-process.md +100 -0
- package/docs/zh-CN/gateway/bonjour.md +174 -0
- package/docs/zh-CN/gateway/bridge-protocol.md +86 -0
- package/docs/zh-CN/gateway/cli-backends.md +213 -0
- package/docs/zh-CN/gateway/configuration-examples.md +587 -0
- package/docs/zh-CN/gateway/configuration-reference.md +3103 -0
- package/docs/zh-CN/gateway/configuration.md +640 -0
- package/docs/zh-CN/gateway/discovery.md +123 -0
- package/docs/zh-CN/gateway/doctor.md +238 -0
- package/docs/zh-CN/gateway/gateway-lock.md +41 -0
- package/docs/zh-CN/gateway/health.md +42 -0
- package/docs/zh-CN/gateway/heartbeat.md +274 -0
- package/docs/zh-CN/gateway/index.md +335 -0
- package/docs/zh-CN/gateway/local-models.md +159 -0
- package/docs/zh-CN/gateway/logging.md +114 -0
- package/docs/zh-CN/gateway/multiple-gateways.md +119 -0
- package/docs/zh-CN/gateway/network-model.md +23 -0
- package/docs/zh-CN/gateway/openai-http-api.md +125 -0
- package/docs/zh-CN/gateway/openresponses-http-api.md +317 -0
- package/docs/zh-CN/gateway/pairing.md +99 -0
- package/docs/zh-CN/gateway/protocol.md +220 -0
- package/docs/zh-CN/gateway/remote-gateway-readme.md +164 -0
- package/docs/zh-CN/gateway/remote.md +133 -0
- package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +135 -0
- package/docs/zh-CN/gateway/sandboxing.md +188 -0
- package/docs/zh-CN/gateway/security/index.md +777 -0
- package/docs/zh-CN/gateway/tailscale.md +124 -0
- package/docs/zh-CN/gateway/tools-invoke-http-api.md +92 -0
- package/docs/zh-CN/gateway/troubleshooting.md +771 -0
- package/docs/zh-CN/help/debugging.md +160 -0
- package/docs/zh-CN/help/environment.md +88 -0
- package/docs/zh-CN/help/faq.md +2640 -0
- package/docs/zh-CN/help/index.md +28 -0
- package/docs/zh-CN/help/scripts.md +35 -0
- package/docs/zh-CN/help/testing.md +375 -0
- package/docs/zh-CN/help/troubleshooting.md +104 -0
- package/docs/zh-CN/index.md +186 -0
- package/docs/zh-CN/install/ansible.md +215 -0
- package/docs/zh-CN/install/bun.md +65 -0
- package/docs/zh-CN/install/development-channels.md +81 -0
- package/docs/zh-CN/install/docker.md +532 -0
- package/docs/zh-CN/install/exe-dev.md +133 -0
- package/docs/zh-CN/install/fly.md +490 -0
- package/docs/zh-CN/install/gcp.md +510 -0
- package/docs/zh-CN/install/hetzner.md +337 -0
- package/docs/zh-CN/install/index.md +235 -0
- package/docs/zh-CN/install/installer.md +422 -0
- package/docs/zh-CN/install/macos-vm.md +288 -0
- package/docs/zh-CN/install/migrating.md +199 -0
- package/docs/zh-CN/install/nix.md +99 -0
- package/docs/zh-CN/install/node.md +8 -0
- package/docs/zh-CN/install/northflank.mdx +60 -0
- package/docs/zh-CN/install/railway.mdx +106 -0
- package/docs/zh-CN/install/render.mdx +169 -0
- package/docs/zh-CN/install/uninstall.md +135 -0
- package/docs/zh-CN/install/updating.md +233 -0
- package/docs/zh-CN/logging.md +329 -0
- package/docs/zh-CN/network.md +59 -0
- package/docs/zh-CN/nodes/audio.md +120 -0
- package/docs/zh-CN/nodes/camera.md +162 -0
- package/docs/zh-CN/nodes/images.md +79 -0
- package/docs/zh-CN/nodes/index.md +348 -0
- package/docs/zh-CN/nodes/location-command.md +120 -0
- package/docs/zh-CN/nodes/media-understanding.md +380 -0
- package/docs/zh-CN/nodes/talk.md +97 -0
- package/docs/zh-CN/nodes/troubleshooting.md +8 -0
- package/docs/zh-CN/nodes/voicewake.md +72 -0
- package/docs/zh-CN/perplexity.md +102 -0
- package/docs/zh-CN/pi-dev.md +77 -0
- package/docs/zh-CN/pi.md +619 -0
- package/docs/zh-CN/platforms/android.md +155 -0
- package/docs/zh-CN/platforms/digitalocean.md +273 -0
- package/docs/zh-CN/platforms/index.md +60 -0
- package/docs/zh-CN/platforms/ios.md +114 -0
- package/docs/zh-CN/platforms/linux.md +100 -0
- package/docs/zh-CN/platforms/mac/bundled-gateway.md +75 -0
- package/docs/zh-CN/platforms/mac/canvas.md +128 -0
- package/docs/zh-CN/platforms/mac/child-process.md +73 -0
- package/docs/zh-CN/platforms/mac/dev-setup.md +109 -0
- package/docs/zh-CN/platforms/mac/health.md +41 -0
- package/docs/zh-CN/platforms/mac/icon.md +38 -0
- package/docs/zh-CN/platforms/mac/logging.md +64 -0
- package/docs/zh-CN/platforms/mac/menu-bar.md +88 -0
- package/docs/zh-CN/platforms/mac/peekaboo.md +62 -0
- package/docs/zh-CN/platforms/mac/permissions.md +46 -0
- package/docs/zh-CN/platforms/mac/remote.md +90 -0
- package/docs/zh-CN/platforms/mac/signing.md +54 -0
- package/docs/zh-CN/platforms/mac/skills.md +40 -0
- package/docs/zh-CN/platforms/mac/voice-overlay.md +67 -0
- package/docs/zh-CN/platforms/mac/voicewake.md +74 -0
- package/docs/zh-CN/platforms/mac/webchat.md +43 -0
- package/docs/zh-CN/platforms/mac/xpc.md +68 -0
- package/docs/zh-CN/platforms/macos.md +193 -0
- package/docs/zh-CN/platforms/oracle.md +310 -0
- package/docs/zh-CN/platforms/raspberry-pi.md +416 -0
- package/docs/zh-CN/platforms/windows.md +247 -0
- package/docs/zh-CN/plugins/agent-tools.md +99 -0
- package/docs/zh-CN/plugins/manifest.md +68 -0
- package/docs/zh-CN/plugins/voice-call.md +250 -0
- package/docs/zh-CN/plugins/zalouser.md +88 -0
- package/docs/zh-CN/prose.md +141 -0
- package/docs/zh-CN/providers/anthropic.md +265 -0
- package/docs/zh-CN/providers/bedrock.md +170 -0
- package/docs/zh-CN/providers/claude-max-api-proxy.md +155 -0
- package/docs/zh-CN/providers/cloudflare-ai-gateway.md +78 -0
- package/docs/zh-CN/providers/deepgram.md +97 -0
- package/docs/zh-CN/providers/github-copilot.md +67 -0
- package/docs/zh-CN/providers/glm.md +50 -0
- package/docs/zh-CN/providers/huggingface.md +216 -0
- package/docs/zh-CN/providers/index.md +69 -0
- package/docs/zh-CN/providers/kilocode.md +80 -0
- package/docs/zh-CN/providers/litellm.md +160 -0
- package/docs/zh-CN/providers/minimax.md +222 -0
- package/docs/zh-CN/providers/mistral.md +61 -0
- package/docs/zh-CN/providers/models.md +51 -0
- package/docs/zh-CN/providers/moonshot.md +182 -0
- package/docs/zh-CN/providers/nvidia.md +62 -0
- package/docs/zh-CN/providers/ollama.md +359 -0
- package/docs/zh-CN/providers/openai.md +308 -0
- package/docs/zh-CN/providers/opencode-go.md +52 -0
- package/docs/zh-CN/providers/opencode.md +71 -0
- package/docs/zh-CN/providers/openrouter.md +44 -0
- package/docs/zh-CN/providers/qianfan.md +45 -0
- package/docs/zh-CN/providers/qwen.md +55 -0
- package/docs/zh-CN/providers/sglang.md +111 -0
- package/docs/zh-CN/providers/synthetic.md +106 -0
- package/docs/zh-CN/providers/together.md +72 -0
- package/docs/zh-CN/providers/venice.md +289 -0
- package/docs/zh-CN/providers/vercel-ai-gateway.md +66 -0
- package/docs/zh-CN/providers/xiaomi.md +93 -0
- package/docs/zh-CN/providers/zai.md +53 -0
- package/docs/zh-CN/reference/AGENTS.default.md +131 -0
- package/docs/zh-CN/reference/RELEASING.md +48 -0
- package/docs/zh-CN/reference/api-usage-costs.md +141 -0
- package/docs/zh-CN/reference/credits.md +34 -0
- package/docs/zh-CN/reference/device-models.md +54 -0
- package/docs/zh-CN/reference/rpc.md +48 -0
- package/docs/zh-CN/reference/session-management-compaction.md +287 -0
- package/docs/zh-CN/reference/templates/AGENTS.dev.md +89 -0
- package/docs/zh-CN/reference/templates/AGENTS.md +225 -0
- package/docs/zh-CN/reference/templates/BOOT.md +17 -0
- package/docs/zh-CN/reference/templates/BOOTSTRAP.md +68 -0
- package/docs/zh-CN/reference/templates/HEARTBEAT.md +18 -0
- package/docs/zh-CN/reference/templates/IDENTITY.dev.md +54 -0
- package/docs/zh-CN/reference/templates/IDENTITY.md +36 -0
- package/docs/zh-CN/reference/templates/SOUL.dev.md +83 -0
- package/docs/zh-CN/reference/templates/SOUL.md +49 -0
- package/docs/zh-CN/reference/templates/TOOLS.dev.md +31 -0
- package/docs/zh-CN/reference/templates/TOOLS.md +53 -0
- package/docs/zh-CN/reference/templates/USER.dev.md +25 -0
- package/docs/zh-CN/reference/templates/USER.md +30 -0
- package/docs/zh-CN/reference/test.md +57 -0
- package/docs/zh-CN/reference/token-use.md +119 -0
- package/docs/zh-CN/reference/transcript-hygiene.md +109 -0
- package/docs/zh-CN/reference/wizard.md +242 -0
- package/docs/zh-CN/security/formal-verification.md +171 -0
- package/docs/zh-CN/start/bootstrapping.md +9 -0
- package/docs/zh-CN/start/docs-directory.md +70 -0
- package/docs/zh-CN/start/getting-started.md +143 -0
- package/docs/zh-CN/start/hubs.md +194 -0
- package/docs/zh-CN/start/lore.md +226 -0
- package/docs/zh-CN/start/onboarding-overview.md +58 -0
- package/docs/zh-CN/start/onboarding.md +105 -0
- package/docs/zh-CN/start/openclaw.md +248 -0
- package/docs/zh-CN/start/quickstart.md +88 -0
- package/docs/zh-CN/start/setup.md +153 -0
- package/docs/zh-CN/start/showcase.md +423 -0
- package/docs/zh-CN/start/wizard-cli-automation.md +222 -0
- package/docs/zh-CN/start/wizard-cli-reference.md +306 -0
- package/docs/zh-CN/start/wizard.md +132 -0
- package/docs/zh-CN/tools/agent-send.md +59 -0
- package/docs/zh-CN/tools/apply-patch.md +57 -0
- package/docs/zh-CN/tools/browser-linux-troubleshooting.md +144 -0
- package/docs/zh-CN/tools/browser-login.md +75 -0
- package/docs/zh-CN/tools/browser.md +553 -0
- package/docs/zh-CN/tools/chrome-extension.md +183 -0
- package/docs/zh-CN/tools/clawhub.md +209 -0
- package/docs/zh-CN/tools/creating-skills.md +61 -0
- package/docs/zh-CN/tools/elevated.md +64 -0
- package/docs/zh-CN/tools/exec-approvals.md +234 -0
- package/docs/zh-CN/tools/exec.md +169 -0
- package/docs/zh-CN/tools/firecrawl.md +68 -0
- package/docs/zh-CN/tools/index.md +515 -0
- package/docs/zh-CN/tools/llm-task.md +117 -0
- package/docs/zh-CN/tools/lobster.md +349 -0
- package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +401 -0
- package/docs/zh-CN/tools/plugin.md +1612 -0
- package/docs/zh-CN/tools/reactions.md +29 -0
- package/docs/zh-CN/tools/skills-config.md +78 -0
- package/docs/zh-CN/tools/skills.md +279 -0
- package/docs/zh-CN/tools/slash-commands.md +205 -0
- package/docs/zh-CN/tools/subagents.md +167 -0
- package/docs/zh-CN/tools/thinking.md +80 -0
- package/docs/zh-CN/tools/web.md +289 -0
- package/docs/zh-CN/tts.md +375 -0
- package/docs/zh-CN/vps.md +47 -0
- package/docs/zh-CN/web/control-ui.md +191 -0
- package/docs/zh-CN/web/dashboard.md +53 -0
- package/docs/zh-CN/web/index.md +118 -0
- package/docs/zh-CN/web/tui.md +166 -0
- package/docs/zh-CN/web/webchat.md +56 -0
- package/package.json +841 -0
- package/quantumclaw.mjs +135 -0
- package/skills/1password/SKILL.md +70 -0
- package/skills/1password/references/cli-examples.md +29 -0
- package/skills/1password/references/get-started.md +17 -0
- package/skills/apple-notes/SKILL.md +77 -0
- package/skills/apple-reminders/SKILL.md +118 -0
- package/skills/bear-notes/SKILL.md +107 -0
- package/skills/blogwatcher/SKILL.md +69 -0
- package/skills/blucli/SKILL.md +47 -0
- package/skills/bluebubbles/SKILL.md +131 -0
- package/skills/camsnap/SKILL.md +45 -0
- package/skills/canvas/SKILL.md +198 -0
- package/skills/clawhub/SKILL.md +77 -0
- package/skills/coding-agent/SKILL.md +295 -0
- package/skills/discord/SKILL.md +197 -0
- package/skills/eightctl/SKILL.md +50 -0
- package/skills/gemini/SKILL.md +43 -0
- package/skills/gh-issues/SKILL.md +865 -0
- package/skills/gifgrep/SKILL.md +79 -0
- package/skills/github/SKILL.md +163 -0
- package/skills/gog/SKILL.md +116 -0
- package/skills/goplaces/SKILL.md +52 -0
- package/skills/healthcheck/SKILL.md +245 -0
- package/skills/himalaya/SKILL.md +257 -0
- package/skills/himalaya/references/configuration.md +184 -0
- package/skills/himalaya/references/message-composition.md +199 -0
- package/skills/imsg/SKILL.md +122 -0
- package/skills/mcporter/SKILL.md +61 -0
- package/skills/model-usage/SKILL.md +69 -0
- package/skills/model-usage/references/codexbar-cli.md +33 -0
- package/skills/model-usage/scripts/model_usage.py +320 -0
- package/skills/model-usage/scripts/test_model_usage.py +40 -0
- package/skills/nano-pdf/SKILL.md +38 -0
- package/skills/node-connect/SKILL.md +142 -0
- package/skills/notion/SKILL.md +174 -0
- package/skills/obsidian/SKILL.md +81 -0
- package/skills/openai-image-gen/SKILL.md +92 -0
- package/skills/openai-image-gen/scripts/gen.py +328 -0
- package/skills/openai-image-gen/scripts/test_gen.py +140 -0
- package/skills/openai-whisper/SKILL.md +38 -0
- package/skills/openai-whisper-api/SKILL.md +52 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
- package/skills/openhue/SKILL.md +112 -0
- package/skills/oracle/SKILL.md +125 -0
- package/skills/ordercli/SKILL.md +78 -0
- package/skills/peekaboo/SKILL.md +190 -0
- package/skills/sag/SKILL.md +87 -0
- package/skills/session-logs/SKILL.md +115 -0
- package/skills/sherpa-onnx-tts/SKILL.md +103 -0
- package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
- package/skills/skill-creator/SKILL.md +372 -0
- package/skills/skill-creator/license.txt +202 -0
- package/skills/skill-creator/scripts/init_skill.py +378 -0
- package/skills/skill-creator/scripts/package_skill.py +139 -0
- package/skills/skill-creator/scripts/quick_validate.py +159 -0
- package/skills/skill-creator/scripts/test_package_skill.py +160 -0
- package/skills/skill-creator/scripts/test_quick_validate.py +72 -0
- package/skills/slack/SKILL.md +144 -0
- package/skills/songsee/SKILL.md +49 -0
- package/skills/sonoscli/SKILL.md +65 -0
- package/skills/spotify-player/SKILL.md +64 -0
- package/skills/summarize/SKILL.md +87 -0
- package/skills/things-mac/SKILL.md +86 -0
- package/skills/tmux/SKILL.md +153 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/trello/SKILL.md +95 -0
- package/skills/video-frames/SKILL.md +46 -0
- package/skills/video-frames/scripts/frame.sh +81 -0
- package/skills/voice-call/SKILL.md +45 -0
- package/skills/wacli/SKILL.md +72 -0
- package/skills/weather/SKILL.md +112 -0
- package/skills/xurl/SKILL.md +461 -0
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
---
|
|
2
|
+
read_when:
|
|
3
|
+
- 处理 WhatsApp/网页渠道行为或收件箱路由时
|
|
4
|
+
summary: WhatsApp(网页渠道)集成:登录、收件箱、回复、媒体和运维
|
|
5
|
+
title: WhatsApp
|
|
6
|
+
x-i18n:
|
|
7
|
+
generated_at: "2026-02-03T07:46:24Z"
|
|
8
|
+
model: claude-opus-4-5
|
|
9
|
+
provider: pi
|
|
10
|
+
source_hash: 44fd88f8e269284999e5a5a52b230edae6e6f978528dd298d6a5603d03c0c38d
|
|
11
|
+
source_path: channels/whatsapp.md
|
|
12
|
+
workflow: 15
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# WhatsApp(网页渠道)
|
|
16
|
+
|
|
17
|
+
状态:仅支持通过 Baileys 的 WhatsApp Web。Gateway 网关拥有会话。
|
|
18
|
+
|
|
19
|
+
## 快速设置(新手)
|
|
20
|
+
|
|
21
|
+
1. 如果可能,使用**单独的手机号码**(推荐)。
|
|
22
|
+
2. 在 `~/.quantumclaw/quantumclaw.json` 中配置 WhatsApp。
|
|
23
|
+
3. 运行 `quantumclaw channels login` 扫描二维码(关联设备)。
|
|
24
|
+
4. 启动 Gateway 网关。
|
|
25
|
+
|
|
26
|
+
最小配置:
|
|
27
|
+
|
|
28
|
+
```json5
|
|
29
|
+
{
|
|
30
|
+
channels: {
|
|
31
|
+
whatsapp: {
|
|
32
|
+
dmPolicy: "allowlist",
|
|
33
|
+
allowFrom: ["+15551234567"],
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 目标
|
|
40
|
+
|
|
41
|
+
- 在一个 Gateway 网关进程中支持多个 WhatsApp 账户(多账户)。
|
|
42
|
+
- 确定性路由:回复返回到 WhatsApp,无模型路由。
|
|
43
|
+
- 模型能看到足够的上下文来理解引用回复。
|
|
44
|
+
|
|
45
|
+
## 配置写入
|
|
46
|
+
|
|
47
|
+
默认情况下,WhatsApp 允许写入由 `/config set|unset` 触发的配置更新(需要 `commands.config: true`)。
|
|
48
|
+
|
|
49
|
+
禁用方式:
|
|
50
|
+
|
|
51
|
+
```json5
|
|
52
|
+
{
|
|
53
|
+
channels: { whatsapp: { configWrites: false } },
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## 架构(谁拥有什么)
|
|
58
|
+
|
|
59
|
+
- **Gateway 网关**拥有 Baileys socket 和收件箱循环。
|
|
60
|
+
- **CLI / macOS 应用**与 Gateway 网关通信;不直接使用 Baileys。
|
|
61
|
+
- 发送出站消息需要**活跃的监听器**;否则发送会快速失败。
|
|
62
|
+
|
|
63
|
+
## 获取手机号码(两种模式)
|
|
64
|
+
|
|
65
|
+
WhatsApp 需要真实手机号码进行验证。VoIP 和虚拟号码通常会被封锁。在 WhatsApp 上运行 QuantumClaw 有两种支持的方式:
|
|
66
|
+
|
|
67
|
+
### 专用号码(推荐)
|
|
68
|
+
|
|
69
|
+
为 QuantumClaw 使用**单独的手机号码**。最佳用户体验,清晰的路由,无自聊天怪异问题。理想设置:**备用/旧 Android 手机 + eSIM**。保持 Wi-Fi 和电源连接,通过二维码关联。
|
|
70
|
+
|
|
71
|
+
**WhatsApp Business:** 你可以在同一设备上使用不同号码的 WhatsApp Business。非常适合将个人 WhatsApp 分开——安装 WhatsApp Business 并在那里注册 QuantumClaw 号码。
|
|
72
|
+
|
|
73
|
+
**示例配置(专用号码,单用户允许列表):**
|
|
74
|
+
|
|
75
|
+
```json5
|
|
76
|
+
{
|
|
77
|
+
channels: {
|
|
78
|
+
whatsapp: {
|
|
79
|
+
dmPolicy: "allowlist",
|
|
80
|
+
allowFrom: ["+15551234567"],
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**配对模式(可选):**
|
|
87
|
+
如果你想使用配对而不是允许列表,请将 `channels.whatsapp.dmPolicy` 设置为 `pairing`。未知发送者会收到配对码;使用以下命令批准:
|
|
88
|
+
`quantumclaw pairing approve whatsapp <code>`
|
|
89
|
+
|
|
90
|
+
### 个人号码(备选方案)
|
|
91
|
+
|
|
92
|
+
快速备选方案:在**你自己的号码**上运行 QuantumClaw。给自己发消息(WhatsApp"给自己发消息")进行测试,这样就不会打扰联系人。在设置和实验期间需要在主手机上阅读验证码。**必须启用自聊天模式。**
|
|
93
|
+
当向导询问你的个人 WhatsApp 号码时,输入你将用于发送消息的手机(所有者/发送者),而不是助手号码。
|
|
94
|
+
|
|
95
|
+
**示例配置(个人号码,自聊天):**
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
{
|
|
99
|
+
"whatsapp": {
|
|
100
|
+
"selfChatMode": true,
|
|
101
|
+
"dmPolicy": "allowlist",
|
|
102
|
+
"allowFrom": ["+15551234567"]
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
当设置了 `identity.name` 时,自聊天回复默认为 `[{identity.name}]`(否则为 `[quantumclaw]`),
|
|
108
|
+
前提是 `messages.responsePrefix` 未设置。明确设置它可以自定义或禁用
|
|
109
|
+
前缀(使用 `""` 来移除)。
|
|
110
|
+
|
|
111
|
+
### 号码获取提示
|
|
112
|
+
|
|
113
|
+
- **本地 eSIM** 来自你所在国家的移动运营商(最可靠)
|
|
114
|
+
- 奥地利:[hot.at](https://www.hot.at)
|
|
115
|
+
- 英国:[giffgaff](https://www.giffgaff.com) — 免费 SIM 卡,无合约
|
|
116
|
+
- **预付费 SIM 卡** — 便宜,只需接收一条验证短信
|
|
117
|
+
|
|
118
|
+
**避免:** TextNow、Google Voice、大多数"免费短信"服务——WhatsApp 会积极封锁这些。
|
|
119
|
+
|
|
120
|
+
**提示:** 该号码只需要接收一条验证短信。之后,WhatsApp Web 会话通过 `creds.json` 持久化。
|
|
121
|
+
|
|
122
|
+
## 为什么不用 Twilio?
|
|
123
|
+
|
|
124
|
+
- 早期 QuantumClaw 版本支持 Twilio 的 WhatsApp Business 集成。
|
|
125
|
+
- WhatsApp Business 号码不适合个人助手。
|
|
126
|
+
- Meta 强制执行 24 小时回复窗口;如果你在过去 24 小时内没有回复,商业号码无法发起新消息。
|
|
127
|
+
- 高频或"频繁"使用会触发激进的封锁,因为商业账户不适合发送大量个人助手消息。
|
|
128
|
+
- 结果:投递不可靠且频繁被封锁,因此该支持已被移除。
|
|
129
|
+
|
|
130
|
+
## 登录 + 凭证
|
|
131
|
+
|
|
132
|
+
- 登录命令:`quantumclaw channels login`(通过关联设备扫描二维码)。
|
|
133
|
+
- 多账户登录:`quantumclaw channels login --account <id>`(`<id>` = `accountId`)。
|
|
134
|
+
- 默认账户(省略 `--account` 时):如果存在则为 `default`,否则为第一个配置的账户 id(排序后)。
|
|
135
|
+
- 凭证存储在 `~/.quantumclaw/credentials/whatsapp/<accountId>/creds.json`。
|
|
136
|
+
- 备份副本在 `creds.json.bak`(损坏时恢复)。
|
|
137
|
+
- 旧版兼容性:较旧的安装将 Baileys 文件直接存储在 `~/.quantumclaw/credentials/` 中。
|
|
138
|
+
- 登出:`quantumclaw channels logout`(或 `--account <id>`)删除 WhatsApp 认证状态(但保留共享的 `oauth.json`)。
|
|
139
|
+
- 已登出的 socket => 错误提示重新关联。
|
|
140
|
+
|
|
141
|
+
## 入站流程(私信 + 群组)
|
|
142
|
+
|
|
143
|
+
- WhatsApp 事件来自 `messages.upsert`(Baileys)。
|
|
144
|
+
- 收件箱监听器在关闭时分离,以避免在测试/重启时累积事件处理器。
|
|
145
|
+
- 状态/广播聊天被忽略。
|
|
146
|
+
- 直接聊天使用 E.164;群组使用群组 JID。
|
|
147
|
+
- **私信策略**:`channels.whatsapp.dmPolicy` 控制直接聊天访问(默认:`pairing`)。
|
|
148
|
+
- 配对:未知发送者会收到配对码(通过 `quantumclaw pairing approve whatsapp <code>` 批准;码在 1 小时后过期)。
|
|
149
|
+
- 开放:需要 `channels.whatsapp.allowFrom` 包含 `"*"`。
|
|
150
|
+
- 你关联的 WhatsApp 号码是隐式信任的,因此自身消息会跳过 `channels.whatsapp.dmPolicy` 和 `channels.whatsapp.allowFrom` 检查。
|
|
151
|
+
|
|
152
|
+
### 个人号码模式(备选方案)
|
|
153
|
+
|
|
154
|
+
如果你在**个人 WhatsApp 号码**上运行 QuantumClaw,请启用 `channels.whatsapp.selfChatMode`(见上面的示例)。
|
|
155
|
+
|
|
156
|
+
行为:
|
|
157
|
+
|
|
158
|
+
- 出站私信永远不会触发配对回复(防止打扰联系人)。
|
|
159
|
+
- 入站未知发送者仍遵循 `channels.whatsapp.dmPolicy`。
|
|
160
|
+
- 自聊天模式(allowFrom 包含你的号码)避免自动已读回执并忽略提及 JID。
|
|
161
|
+
- 非自聊天私信会发送已读回执。
|
|
162
|
+
|
|
163
|
+
## 已读回执
|
|
164
|
+
|
|
165
|
+
默认情况下,Gateway 网关在接受入站 WhatsApp 消息后将其标记为已读(蓝色勾号)。
|
|
166
|
+
|
|
167
|
+
全局禁用:
|
|
168
|
+
|
|
169
|
+
```json5
|
|
170
|
+
{
|
|
171
|
+
channels: { whatsapp: { sendReadReceipts: false } },
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
按账户禁用:
|
|
176
|
+
|
|
177
|
+
```json5
|
|
178
|
+
{
|
|
179
|
+
channels: {
|
|
180
|
+
whatsapp: {
|
|
181
|
+
accounts: {
|
|
182
|
+
personal: { sendReadReceipts: false },
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
注意事项:
|
|
190
|
+
|
|
191
|
+
- 自聊天模式始终跳过已读回执。
|
|
192
|
+
|
|
193
|
+
## WhatsApp 常见问题:发送消息 + 配对
|
|
194
|
+
|
|
195
|
+
**当我关联 WhatsApp 时,QuantumClaw 会给随机联系人发消息吗?**
|
|
196
|
+
不会。默认私信策略是**配对**,因此未知发送者只会收到配对码,他们的消息**不会被处理**。QuantumClaw 只会回复它收到的聊天,或你明确触发的发送(智能体/CLI)。
|
|
197
|
+
|
|
198
|
+
**WhatsApp 上的配对是如何工作的?**
|
|
199
|
+
配对是未知发送者的私信门控:
|
|
200
|
+
|
|
201
|
+
- 来自新发送者的第一条私信返回一个短码(消息不会被处理)。
|
|
202
|
+
- 使用以下命令批准:`quantumclaw pairing approve whatsapp <code>`(使用 `quantumclaw pairing list whatsapp` 列出)。
|
|
203
|
+
- 码在 1 小时后过期;每个渠道的待处理请求上限为 3 个。
|
|
204
|
+
|
|
205
|
+
**多个人可以在一个 WhatsApp 号码上使用不同的 QuantumClaw 实例吗?**
|
|
206
|
+
可以,通过 `bindings` 将每个发送者路由到不同的智能体(peer `kind: "dm"`,发送者 E.164 如 `+15551234567`)。回复仍然来自**同一个 WhatsApp 账户**,直接聊天会折叠到每个智能体的主会话,因此**每人使用一个智能体**。私信访问控制(`dmPolicy`/`allowFrom`)是每个 WhatsApp 账户全局的。参见[多智能体路由](/concepts/multi-agent)。
|
|
207
|
+
|
|
208
|
+
**为什么向导会询问我的手机号码?**
|
|
209
|
+
向导使用它来设置你的**允许列表/所有者**,以便允许你自己的私信。它不会用于自动发送。如果你在个人 WhatsApp 号码上运行,请使用相同的号码并启用 `channels.whatsapp.selfChatMode`。
|
|
210
|
+
|
|
211
|
+
## 消息规范化(模型看到的内容)
|
|
212
|
+
|
|
213
|
+
- `Body` 是带有信封的当前消息正文。
|
|
214
|
+
- 引用回复上下文**始终附加**:
|
|
215
|
+
```
|
|
216
|
+
[Replying to +1555 id:ABC123]
|
|
217
|
+
<quoted text or <media:...>>
|
|
218
|
+
[/Replying]
|
|
219
|
+
```
|
|
220
|
+
- 回复元数据也会设置:
|
|
221
|
+
- `ReplyToId` = stanzaId
|
|
222
|
+
- `ReplyToBody` = 引用正文或媒体占位符
|
|
223
|
+
- `ReplyToSender` = 已知时为 E.164
|
|
224
|
+
- 纯媒体入站消息使用占位符:
|
|
225
|
+
- `<media:image|video|audio|document|sticker>`
|
|
226
|
+
|
|
227
|
+
## 群组
|
|
228
|
+
|
|
229
|
+
- 群组映射到 `agent:<agentId>:whatsapp:group:<jid>` 会话。
|
|
230
|
+
- 群组策略:`channels.whatsapp.groupPolicy = open|disabled|allowlist`(默认 `allowlist`)。
|
|
231
|
+
- 激活模式:
|
|
232
|
+
- `mention`(默认):需要 @提及或正则匹配。
|
|
233
|
+
- `always`:始终触发。
|
|
234
|
+
- `/activation mention|always` 仅限所有者,必须作为独立消息发送。
|
|
235
|
+
- 所有者 = `channels.whatsapp.allowFrom`(如果未设置则为自身 E.164)。
|
|
236
|
+
- **历史注入**(仅待处理):
|
|
237
|
+
- 最近*未处理*的消息(默认 50 条)插入在:
|
|
238
|
+
`[Chat messages since your last reply - for context]`(已在会话中的消息不会重新注入)
|
|
239
|
+
- 当前消息在:
|
|
240
|
+
`[Current message - respond to this]`
|
|
241
|
+
- 附加发送者后缀:`[from: Name (+E164)]`
|
|
242
|
+
- 群组元数据缓存 5 分钟(主题 + 参与者)。
|
|
243
|
+
|
|
244
|
+
## 回复投递(线程)
|
|
245
|
+
|
|
246
|
+
- WhatsApp Web 发送标准消息(当前 Gateway 网关无引用回复线程)。
|
|
247
|
+
- 此渠道忽略回复标签。
|
|
248
|
+
|
|
249
|
+
## 确认表情(收到时自动回应)
|
|
250
|
+
|
|
251
|
+
WhatsApp 可以在收到传入消息时立即自动发送表情回应,在机器人生成回复之前。这为用户提供即时反馈,表明他们的消息已收到。
|
|
252
|
+
|
|
253
|
+
**配置:**
|
|
254
|
+
|
|
255
|
+
```json
|
|
256
|
+
{
|
|
257
|
+
"whatsapp": {
|
|
258
|
+
"ackReaction": {
|
|
259
|
+
"emoji": "👀",
|
|
260
|
+
"direct": true,
|
|
261
|
+
"group": "mentions"
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
**选项:**
|
|
268
|
+
|
|
269
|
+
- `emoji`(字符串):用于确认的表情(例如"👀"、"✅"、"📨")。为空或省略 = 功能禁用。
|
|
270
|
+
- `direct`(布尔值,默认:`true`):在直接/私信聊天中发送表情回应。
|
|
271
|
+
- `group`(字符串,默认:`"mentions"`):群聊行为:
|
|
272
|
+
- `"always"`:对所有群消息做出回应(即使没有 @提及)
|
|
273
|
+
- `"mentions"`:仅在机器人被 @提及时做出回应
|
|
274
|
+
- `"never"`:从不在群组中做出回应
|
|
275
|
+
|
|
276
|
+
**按账户覆盖:**
|
|
277
|
+
|
|
278
|
+
```json
|
|
279
|
+
{
|
|
280
|
+
"whatsapp": {
|
|
281
|
+
"accounts": {
|
|
282
|
+
"work": {
|
|
283
|
+
"ackReaction": {
|
|
284
|
+
"emoji": "✅",
|
|
285
|
+
"direct": false,
|
|
286
|
+
"group": "always"
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
**行为说明:**
|
|
295
|
+
|
|
296
|
+
- 表情回应在消息收到时**立即**发送,在输入指示器或机器人回复之前。
|
|
297
|
+
- 在 `requireMention: false`(激活:always)的群组中,`group: "mentions"` 会对所有消息做出回应(不仅仅是 @提及)。
|
|
298
|
+
- 即发即忘:表情回应失败会被记录但不会阻止机器人回复。
|
|
299
|
+
- 群组表情回应会自动包含参与者 JID。
|
|
300
|
+
- WhatsApp 忽略 `messages.ackReaction`;请改用 `channels.whatsapp.ackReaction`。
|
|
301
|
+
|
|
302
|
+
## 智能体工具(表情回应)
|
|
303
|
+
|
|
304
|
+
- 工具:`whatsapp`,带有 `react` 动作(`chatJid`、`messageId`、`emoji`,可选 `remove`)。
|
|
305
|
+
- 可选:`participant`(群组发送者)、`fromMe`(对自己的消息做出回应)、`accountId`(多账户)。
|
|
306
|
+
- 表情移除语义:参见 [/tools/reactions](/tools/reactions)。
|
|
307
|
+
- 工具门控:`channels.whatsapp.actions.reactions`(默认:启用)。
|
|
308
|
+
|
|
309
|
+
## 限制
|
|
310
|
+
|
|
311
|
+
- 出站文本按 `channels.whatsapp.textChunkLimit` 分块(默认 4000)。
|
|
312
|
+
- 可选换行分块:设置 `channels.whatsapp.chunkMode="newline"` 在长度分块之前按空行(段落边界)分割。
|
|
313
|
+
- 入站媒体保存受 `channels.whatsapp.mediaMaxMb` 限制(默认 50 MB)。
|
|
314
|
+
- 出站媒体项受 `agents.defaults.mediaMaxMb` 限制(默认 5 MB)。
|
|
315
|
+
|
|
316
|
+
## 出站发送(文本 + 媒体)
|
|
317
|
+
|
|
318
|
+
- 使用活跃的网页监听器;如果 Gateway 网关未运行则报错。
|
|
319
|
+
- 文本分块:每条消息最大 4k(可通过 `channels.whatsapp.textChunkLimit` 配置,可选 `channels.whatsapp.chunkMode`)。
|
|
320
|
+
- 媒体:
|
|
321
|
+
- 支持图片/视频/音频/文档。
|
|
322
|
+
- 音频作为 PTT 发送;`audio/ogg` => `audio/ogg; codecs=opus`。
|
|
323
|
+
- 仅在第一个媒体项上添加标题。
|
|
324
|
+
- 媒体获取支持 HTTP(S) 和本地路径。
|
|
325
|
+
- 动画 GIF:WhatsApp 期望带有 `gifPlayback: true` 的 MP4 以实现内联循环。
|
|
326
|
+
- CLI:`quantumclaw message send --media <mp4> --gif-playback`
|
|
327
|
+
- Gateway 网关:`send` 参数包含 `gifPlayback: true`
|
|
328
|
+
|
|
329
|
+
## 语音消息(PTT 音频)
|
|
330
|
+
|
|
331
|
+
WhatsApp 将音频作为**语音消息**(PTT 气泡)发送。
|
|
332
|
+
|
|
333
|
+
- 最佳效果:OGG/Opus。QuantumClaw 将 `audio/ogg` 重写为 `audio/ogg; codecs=opus`。
|
|
334
|
+
- WhatsApp 忽略 `[[audio_as_voice]]`(音频已作为语音消息发送)。
|
|
335
|
+
|
|
336
|
+
## 媒体限制 + 优化
|
|
337
|
+
|
|
338
|
+
- 默认出站上限:5 MB(每个媒体项)。
|
|
339
|
+
- 覆盖:`agents.defaults.mediaMaxMb`。
|
|
340
|
+
- 图片自动优化为上限以下的 JPEG(调整大小 + 质量扫描)。
|
|
341
|
+
- 超大媒体 => 错误;媒体回复降级为文本警告。
|
|
342
|
+
|
|
343
|
+
## 心跳
|
|
344
|
+
|
|
345
|
+
- **Gateway 网关心跳**记录连接健康状态(`web.heartbeatSeconds`,默认 60 秒)。
|
|
346
|
+
- **智能体心跳**可以按智能体配置(`agents.list[].heartbeat`)或通过
|
|
347
|
+
`agents.defaults.heartbeat` 全局配置(当没有设置按智能体条目时的降级)。
|
|
348
|
+
- 使用配置的心跳提示词(默认:`Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.`)+ `HEARTBEAT_OK` 跳过行为。
|
|
349
|
+
- 投递默认为最后使用的渠道(或配置的目标)。
|
|
350
|
+
|
|
351
|
+
## 重连行为
|
|
352
|
+
|
|
353
|
+
- 退避策略:`web.reconnect`:
|
|
354
|
+
- `initialMs`、`maxMs`、`factor`、`jitter`、`maxAttempts`。
|
|
355
|
+
- 如果达到 maxAttempts,网页监控停止(降级)。
|
|
356
|
+
- 已登出 => 停止并要求重新关联。
|
|
357
|
+
|
|
358
|
+
## 配置快速映射
|
|
359
|
+
|
|
360
|
+
- `channels.whatsapp.dmPolicy`(私信策略:pairing/allowlist/open/disabled)。
|
|
361
|
+
- `channels.whatsapp.selfChatMode`(同手机设置;机器人使用你的个人 WhatsApp 号码)。
|
|
362
|
+
- `channels.whatsapp.allowFrom`(私信允许列表)。WhatsApp 使用 E.164 手机号码(无用户名)。
|
|
363
|
+
- `channels.whatsapp.mediaMaxMb`(入站媒体保存上限)。
|
|
364
|
+
- `channels.whatsapp.ackReaction`(消息收到时的自动回应:`{emoji, direct, group}`)。
|
|
365
|
+
- `channels.whatsapp.accounts.<accountId>.*`(按账户设置 + 可选 `authDir`)。
|
|
366
|
+
- `channels.whatsapp.accounts.<accountId>.mediaMaxMb`(按账户入站媒体上限)。
|
|
367
|
+
- `channels.whatsapp.accounts.<accountId>.ackReaction`(按账户确认回应覆盖)。
|
|
368
|
+
- `channels.whatsapp.groupAllowFrom`(群组发送者允许列表)。
|
|
369
|
+
- `channels.whatsapp.groupPolicy`(群组策略)。
|
|
370
|
+
- `channels.whatsapp.historyLimit` / `channels.whatsapp.accounts.<accountId>.historyLimit`(群组历史上下文;`0` 禁用)。
|
|
371
|
+
- `channels.whatsapp.dmHistoryLimit`(私信历史限制,按用户轮次)。按用户覆盖:`channels.whatsapp.dms["<phone>"].historyLimit`。
|
|
372
|
+
- `channels.whatsapp.groups`(群组允许列表 + 提及门控默认值;使用 `"*"` 允许全部)
|
|
373
|
+
- `channels.whatsapp.actions.reactions`(门控 WhatsApp 工具表情回应)。
|
|
374
|
+
- `agents.list[].groupChat.mentionPatterns`(或 `messages.groupChat.mentionPatterns`)
|
|
375
|
+
- `messages.groupChat.historyLimit`
|
|
376
|
+
- `channels.whatsapp.messagePrefix`(入站前缀;按账户:`channels.whatsapp.accounts.<accountId>.messagePrefix`;已弃用:`messages.messagePrefix`)
|
|
377
|
+
- `messages.responsePrefix`(出站前缀)
|
|
378
|
+
- `agents.defaults.mediaMaxMb`
|
|
379
|
+
- `agents.defaults.heartbeat.every`
|
|
380
|
+
- `agents.defaults.heartbeat.model`(可选覆盖)
|
|
381
|
+
- `agents.defaults.heartbeat.target`
|
|
382
|
+
- `agents.defaults.heartbeat.to`
|
|
383
|
+
- `agents.defaults.heartbeat.session`
|
|
384
|
+
- `agents.list[].heartbeat.*`(按智能体覆盖)
|
|
385
|
+
- `session.*`(scope、idle、store、mainKey)
|
|
386
|
+
- `web.enabled`(为 false 时禁用渠道启动)
|
|
387
|
+
- `web.heartbeatSeconds`
|
|
388
|
+
- `web.reconnect.*`
|
|
389
|
+
|
|
390
|
+
## 日志 + 故障排除
|
|
391
|
+
|
|
392
|
+
- 子系统:`whatsapp/inbound`、`whatsapp/outbound`、`web-heartbeat`、`web-reconnect`。
|
|
393
|
+
- 日志文件:`/tmp/quantumclaw/quantumclaw-YYYY-MM-DD.log`(可配置)。
|
|
394
|
+
- 故障排除指南:[Gateway 网关故障排除](/gateway/troubleshooting)。
|
|
395
|
+
|
|
396
|
+
## 故障排除(快速)
|
|
397
|
+
|
|
398
|
+
**未关联 / 需要二维码登录**
|
|
399
|
+
|
|
400
|
+
- 症状:`channels status` 显示 `linked: false` 或警告"Not linked"。
|
|
401
|
+
- 修复:在 Gateway 网关主机上运行 `quantumclaw channels login` 并扫描二维码(WhatsApp → 设置 → 关联设备)。
|
|
402
|
+
|
|
403
|
+
**已关联但断开连接 / 重连循环**
|
|
404
|
+
|
|
405
|
+
- 症状:`channels status` 显示 `running, disconnected` 或警告"Linked but disconnected"。
|
|
406
|
+
- 修复:`quantumclaw doctor`(或重启 Gateway 网关)。如果问题持续,通过 `channels login` 重新关联并检查 `quantumclaw logs --follow`。
|
|
407
|
+
|
|
408
|
+
**Bun 运行时**
|
|
409
|
+
|
|
410
|
+
- **不推荐** Bun。WhatsApp(Baileys)和 Telegram 在 Bun 上不可靠。
|
|
411
|
+
请使用 **Node** 运行 Gateway 网关。(参见入门指南运行时说明。)
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
---
|
|
2
|
+
read_when:
|
|
3
|
+
- 开发 Zalo 功能或 webhooks
|
|
4
|
+
summary: Zalo bot 支持状态、功能和配置
|
|
5
|
+
title: Zalo
|
|
6
|
+
x-i18n:
|
|
7
|
+
generated_at: "2026-02-03T07:44:44Z"
|
|
8
|
+
model: claude-opus-4-5
|
|
9
|
+
provider: pi
|
|
10
|
+
source_hash: 0311d932349f96412b712970b5d37329b91929bf3020536edf3ca0ff464373c0
|
|
11
|
+
source_path: channels/zalo.md
|
|
12
|
+
workflow: 15
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Zalo (Bot API)
|
|
16
|
+
|
|
17
|
+
状态:实验性。仅支持私信;根据 Zalo 文档,群组即将推出。
|
|
18
|
+
|
|
19
|
+
## 需要插件
|
|
20
|
+
|
|
21
|
+
Zalo 以插件形式提供,不包含在核心安装中。
|
|
22
|
+
|
|
23
|
+
- 通过 CLI 安装:`quantumclaw plugins install @quantumclaw/zalo`
|
|
24
|
+
- 或在新手引导期间选择 **Zalo** 并确认安装提示
|
|
25
|
+
- 详情:[插件](/tools/plugin)
|
|
26
|
+
|
|
27
|
+
## 快速设置(初学者)
|
|
28
|
+
|
|
29
|
+
1. 安装 Zalo 插件:
|
|
30
|
+
- 从源代码检出:`quantumclaw plugins install ./extensions/zalo`
|
|
31
|
+
- 从 npm(如果已发布):`quantumclaw plugins install @quantumclaw/zalo`
|
|
32
|
+
- 或在新手引导中选择 **Zalo** 并确认安装提示
|
|
33
|
+
2. 设置 token:
|
|
34
|
+
- 环境变量:`ZALO_BOT_TOKEN=...`
|
|
35
|
+
- 或配置:`channels.zalo.botToken: "..."`。
|
|
36
|
+
3. 重启 Gateway 网关(或完成新手引导)。
|
|
37
|
+
4. 私信访问默认为配对模式;首次联系时批准配对码。
|
|
38
|
+
|
|
39
|
+
最小配置:
|
|
40
|
+
|
|
41
|
+
```json5
|
|
42
|
+
{
|
|
43
|
+
channels: {
|
|
44
|
+
zalo: {
|
|
45
|
+
enabled: true,
|
|
46
|
+
botToken: "12345689:abc-xyz",
|
|
47
|
+
dmPolicy: "pairing",
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 它是什么
|
|
54
|
+
|
|
55
|
+
Zalo 是一款专注于越南市场的即时通讯应用;其 Bot API 让 Gateway 网关可以运行一个用于一对一对话的 bot。
|
|
56
|
+
它非常适合需要确定性路由回 Zalo 的支持或通知场景。
|
|
57
|
+
|
|
58
|
+
- 由 Gateway 网关拥有的 Zalo Bot API 渠道。
|
|
59
|
+
- 确定性路由:回复返回到 Zalo;模型不会选择渠道。
|
|
60
|
+
- 私信共享智能体的主会话。
|
|
61
|
+
- 群组尚不支持(Zalo 文档标注"即将推出")。
|
|
62
|
+
|
|
63
|
+
## 设置(快速路径)
|
|
64
|
+
|
|
65
|
+
### 1)创建 bot token(Zalo Bot 平台)
|
|
66
|
+
|
|
67
|
+
1. 前往 **https://bot.zaloplatforms.com** 并登录。
|
|
68
|
+
2. 创建新 bot 并配置其设置。
|
|
69
|
+
3. 复制 bot token(格式:`12345689:abc-xyz`)。
|
|
70
|
+
|
|
71
|
+
### 2)配置 token(环境变量或配置)
|
|
72
|
+
|
|
73
|
+
示例:
|
|
74
|
+
|
|
75
|
+
```json5
|
|
76
|
+
{
|
|
77
|
+
channels: {
|
|
78
|
+
zalo: {
|
|
79
|
+
enabled: true,
|
|
80
|
+
botToken: "12345689:abc-xyz",
|
|
81
|
+
dmPolicy: "pairing",
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
环境变量选项:`ZALO_BOT_TOKEN=...`(仅适用于默认账户)。
|
|
88
|
+
|
|
89
|
+
多账户支持:使用 `channels.zalo.accounts` 配置每账户 token 和可选的 `name`。
|
|
90
|
+
|
|
91
|
+
3. 重启 Gateway 网关。当 token 被解析(环境变量或配置)时,Zalo 启动。
|
|
92
|
+
4. 私信访问默认为配对模式。当 bot 首次被联系时批准配对码。
|
|
93
|
+
|
|
94
|
+
## 工作原理(行为)
|
|
95
|
+
|
|
96
|
+
- 入站消息被规范化为带有媒体占位符的共享渠道信封。
|
|
97
|
+
- 回复始终路由回同一 Zalo 聊天。
|
|
98
|
+
- 默认使用长轮询;可通过 `channels.zalo.webhookUrl` 启用 webhook 模式。
|
|
99
|
+
|
|
100
|
+
## 限制
|
|
101
|
+
|
|
102
|
+
- 出站文本按 2000 字符分块(Zalo API 限制)。
|
|
103
|
+
- 媒体下载/上传受 `channels.zalo.mediaMaxMb` 限制(默认 5)。
|
|
104
|
+
- 由于 2000 字符限制使流式传输效果不佳,默认阻止流式传输。
|
|
105
|
+
|
|
106
|
+
## 访问控制(私信)
|
|
107
|
+
|
|
108
|
+
### 私信访问
|
|
109
|
+
|
|
110
|
+
- 默认:`channels.zalo.dmPolicy = "pairing"`。未知发送者会收到配对码;消息在批准前会被忽略(配对码 1 小时后过期)。
|
|
111
|
+
- 通过以下方式批准:
|
|
112
|
+
- `quantumclaw pairing list zalo`
|
|
113
|
+
- `quantumclaw pairing approve zalo <CODE>`
|
|
114
|
+
- 配对是默认的令牌交换方式。详情:[配对](/channels/pairing)
|
|
115
|
+
- `channels.zalo.allowFrom` 接受数字用户 ID(无用户名查找功能)。
|
|
116
|
+
|
|
117
|
+
## 长轮询与 webhook
|
|
118
|
+
|
|
119
|
+
- 默认:长轮询(不需要公共 URL)。
|
|
120
|
+
- Webhook 模式:设置 `channels.zalo.webhookUrl` 和 `channels.zalo.webhookSecret`。
|
|
121
|
+
- Webhook secret 必须为 8-256 个字符。
|
|
122
|
+
- Webhook URL 必须使用 HTTPS。
|
|
123
|
+
- Zalo 发送事件时带有 `X-Bot-Api-Secret-Token` 头用于验证。
|
|
124
|
+
- Gateway 网关 HTTP 在 `channels.zalo.webhookPath` 处理 webhook 请求(默认为 webhook URL 路径)。
|
|
125
|
+
|
|
126
|
+
**注意:** 根据 Zalo API 文档,getUpdates(轮询)和 webhook 是互斥的。
|
|
127
|
+
|
|
128
|
+
## 支持的消息类型
|
|
129
|
+
|
|
130
|
+
- **文本消息**:完全支持,2000 字符分块。
|
|
131
|
+
- **图片消息**:下载和处理入站图片;通过 `sendPhoto` 发送图片。
|
|
132
|
+
- **贴纸**:已记录但未完全处理(无智能体响应)。
|
|
133
|
+
- **不支持的类型**:已记录(例如来自受保护用户的消息)。
|
|
134
|
+
|
|
135
|
+
## 功能
|
|
136
|
+
|
|
137
|
+
| 功能 | 状态 |
|
|
138
|
+
| ------------ | ----------------------------- |
|
|
139
|
+
| 私信 | ✅ 支持 |
|
|
140
|
+
| 群组 | ❌ 即将推出(根据 Zalo 文档) |
|
|
141
|
+
| 媒体(图片) | ✅ 支持 |
|
|
142
|
+
| 表情回应 | ❌ 不支持 |
|
|
143
|
+
| 主题 | ❌ 不支持 |
|
|
144
|
+
| 投票 | ❌ 不支持 |
|
|
145
|
+
| 原生命令 | ❌ 不支持 |
|
|
146
|
+
| 流式传输 | ⚠️ 已阻止(2000 字符限制) |
|
|
147
|
+
|
|
148
|
+
## 投递目标(CLI/cron)
|
|
149
|
+
|
|
150
|
+
- 使用聊天 id 作为目标。
|
|
151
|
+
- 示例:`quantumclaw message send --channel zalo --target 123456789 --message "hi"`。
|
|
152
|
+
|
|
153
|
+
## 故障排除
|
|
154
|
+
|
|
155
|
+
**Bot 不响应:**
|
|
156
|
+
|
|
157
|
+
- 检查 token 是否有效:`quantumclaw channels status --probe`
|
|
158
|
+
- 验证发送者已被批准(配对或 allowFrom)
|
|
159
|
+
- 检查 Gateway 网关日志:`quantumclaw logs --follow`
|
|
160
|
+
|
|
161
|
+
**Webhook 未收到事件:**
|
|
162
|
+
|
|
163
|
+
- 确保 webhook URL 使用 HTTPS
|
|
164
|
+
- 验证 secret token 为 8-256 个字符
|
|
165
|
+
- 确认 Gateway 网关 HTTP 端点在配置的路径上可访问
|
|
166
|
+
- 检查 getUpdates 轮询未在运行(它们是互斥的)
|
|
167
|
+
|
|
168
|
+
## 配置参考(Zalo)
|
|
169
|
+
|
|
170
|
+
完整配置:[配置](/gateway/configuration)
|
|
171
|
+
|
|
172
|
+
提供商选项:
|
|
173
|
+
|
|
174
|
+
- `channels.zalo.enabled`:启用/禁用渠道启动。
|
|
175
|
+
- `channels.zalo.botToken`:来自 Zalo Bot 平台的 bot token。
|
|
176
|
+
- `channels.zalo.tokenFile`:从文件路径读取 token。
|
|
177
|
+
- `channels.zalo.dmPolicy`:`pairing | allowlist | open | disabled`(默认:pairing)。
|
|
178
|
+
- `channels.zalo.allowFrom`:私信允许列表(用户 ID)。`open` 需要 `"*"`。向导会询问数字 ID。
|
|
179
|
+
- `channels.zalo.mediaMaxMb`:入站/出站媒体上限(MB,默认 5)。
|
|
180
|
+
- `channels.zalo.webhookUrl`:启用 webhook 模式(需要 HTTPS)。
|
|
181
|
+
- `channels.zalo.webhookSecret`:webhook secret(8-256 字符)。
|
|
182
|
+
- `channels.zalo.webhookPath`:Gateway 网关 HTTP 服务器上的 webhook 路径。
|
|
183
|
+
- `channels.zalo.proxy`:API 请求的代理 URL。
|
|
184
|
+
|
|
185
|
+
多账户选项:
|
|
186
|
+
|
|
187
|
+
- `channels.zalo.accounts.<id>.botToken`:每账户 token。
|
|
188
|
+
- `channels.zalo.accounts.<id>.tokenFile`:每账户 token 文件。
|
|
189
|
+
- `channels.zalo.accounts.<id>.name`:显示名称。
|
|
190
|
+
- `channels.zalo.accounts.<id>.enabled`:启用/禁用账户。
|
|
191
|
+
- `channels.zalo.accounts.<id>.dmPolicy`:每账户私信策略。
|
|
192
|
+
- `channels.zalo.accounts.<id>.allowFrom`:每账户允许列表。
|
|
193
|
+
- `channels.zalo.accounts.<id>.webhookUrl`:每账户 webhook URL。
|
|
194
|
+
- `channels.zalo.accounts.<id>.webhookSecret`:每账户 webhook secret。
|
|
195
|
+
- `channels.zalo.accounts.<id>.webhookPath`:每账户 webhook 路径。
|
|
196
|
+
- `channels.zalo.accounts.<id>.proxy`:每账户代理 URL。
|