mirror of
https://github.com/agent0ai/agent-zero.git
synced 2026-05-17 04:01:13 +00:00
Align integration config UX/saving behavior and project binding. - Telegram integration: keep Save available when appropriate in the wizard footer so config changes (including deleting bots) can be persisted reliably. - WhatsApp integration: fix project dropdown binding by using normalized key/value helpers (supports both `key/label` and `name/title` payloads) and showing project labels correctly. - Mirror both fixes into the runtime plugin copy under agentdocker so the running container gets the update immediately. This resolves user-reported integration setup issues and restores expected save/delete behavior. |
||
|---|---|---|
| .. | ||
| api | ||
| extensions/python | ||
| helpers | ||
| prompts | ||
| webui | ||
| whatsapp-bridge | ||
| default_config.yaml | ||
| plugin.yaml | ||
| README.md | ||
WhatsApp Integration Plugin
Communicate with Agent Zero via WhatsApp using a Baileys-based Node.js bridge.
Requirements
- Node.js (v18+) and npm installed on the system
- A WhatsApp account on a phone (for QR code pairing)
Setup
Install bridge dependencies
cd plugins/_whatsapp_integration/whatsapp-bridge
npm install --production
Dependencies are auto-installed on first bridge start if missing.
Configure and pair
- Enable the plugin in Settings > External > WhatsApp Integration
- Configure allowed phone numbers
- Click Show QR Code and scan with WhatsApp on your phone
- Send a message from an allowed number to start a chat
- Use
/project <name>,/config <preset>, or/sendin WhatsApp to control the active chat directly
The WhatsApp session persists across restarts in tmp/whatsapp/session/. No re-pairing needed unless you disconnect via settings.
Be careful: if you use your personal number and leave allowed_numbers open, other people could misuse your Agent Zero.
Configuration
| Setting | Description | Default |
|---|---|---|
enabled |
Enable bridge and polling | false |
mode |
self-chat (personal number) or dedicated (separate number) |
self-chat |
allow_group |
Respond in group chats when mentioned or replied to | false |
bridge_port |
Local HTTP port for bridge | 3100 |
poll_interval_seconds |
Poll frequency (min 2) | 3 |
allowed_numbers |
Phone numbers without + prefix | [] (all) |
project |
Activate project for WA chats | "" |
agent_instructions |
Extra agent instructions | "" |
How It Works
- The bridge connects to WhatsApp via Baileys and exposes HTTP endpoints on localhost
- In personal-number mode, you can message your own WhatsApp number to talk to the agent, and the agent can also handle messages that other people send to that number
- The plugin polls the bridge for new messages every few seconds
- Incoming messages are routed to existing chats by WhatsApp chat ID or new chats are created
- Agent responses are sent back via the bridge as WhatsApp messages
- Media (images, documents) is supported in both directions
Architecture
WhatsApp Phone
↕ (WhatsApp protocol via Baileys)
whatsapp-bridge/bridge.js (Node.js subprocess)
↕ (HTTP API on localhost)
Python helpers (wa_client, handler, bridge_manager)
↕ (Framework extensions)
Agent Zero