用途
WhatsApp Outreach Agent - Run Skill 是 agi-super-team 技能库中的一个运行类技能,用于批量发送 WhatsApp 消息,即“自动 WhatsApp 外联代理运行”。它面向需要执行 WhatsApp 外联活动(campaign)的场景,通过代理脚本按活动配置筛选联系人并发送个性化消息。
主要能力
该技能支持以下操作能力:
- 创建或选择活动:通过 YAML 配置文件定义活动名称、过滤条件(company_id、product_id、stage、preferred_channel 等,均为可选)、消息模板和变量。
- 干跑预演(dry-run):在不实际发送的情况下检查收件人数量、消息个性化和过滤条件是否正确。
- 单收件人测试:向指定联系人发送一条消息,验证发送、活动日志记录和 git 分支创建。
- 小批量测试:限制为 3 人,验证 60 秒发送间隔、活动日志记录和 git 分支。
- 完整运行:代理先显示前 3 条消息预览,然后请求人工确认([y/N]),确认后开始发送并显示进度。
- 运行后审查与合并:通过 git diff 检查变更,合并或删除 whatsapp-outreach-YYYY-MM-DD-HHMM 分支。
支持的运行参数:
| Flag | Description |
|---|---|
| --campaign FILE | Path to campaign config (YAML) |
| --dry-run | Test run (no sending) |
| --auto-approve | Skip human approval (use with caution!) |
| --test-recipient p-XXX | Send to one person only |
| --limit N | Limit to N recipients |
环境变量:
- WHATSAPP_DELAY_SECONDS:消息之间的延迟秒数,默认示例为 60。
- WHATSAPP_DAILY_LIMIT:每日消息上限,默认示例为 20。
- IDEMPOTENCY_LOOKBACK_DAYS:幂等性回看天数,默认示例为 7。
使用方式
运行前需检查 WhatsApp 会话与设置:
检查 WhatsApp 会话:
ls $SALES_PATH/whatsapp/baileys_session/
若为空,先认证:
cd $SALES_PATH/whatsapp node index.js
Scan QR code
检查设置:
cd $AGENTS_PATH/whatsapp-outreach python3 test_setup.py
运行流程:
Step 1:创建或选择活动。若无活动,创建配置,例如:
$AGENTS_PATH/campaigns/my-campaign.yaml
campaign_name: "Campaign Name"
filters: company_id: ["comp-XXX"] # Optional product_id: ["prod-XXX"] # Optional stage: ["new", "qualified"] # Optional preferred_channel: "whatsapp" # Optional
message_template: | Hi, {first_name}!
This is Ivan from WeLabelData.
Your message here...
variables: custom_var: "value"
Step 2:强制干跑:
cd $AGENTS_PATH/whatsapp-outreach
python3 whatsapp_outreach_agent.py
--dry-run
--campaign campaigns/my-campaign.yaml
检查收件人数量、消息个性化和过滤条件。
Step 3:单收件人测试:
python3 whatsapp_outreach_agent.py
--test-recipient p-XXX
检查消息已发送、活动已记录、git 分支已创建。
Step 4:小批量(3 人):
python3 whatsapp_outreach_agent.py
--limit 3
--campaign campaigns/my-campaign.yaml
检查 60 秒延迟是否生效、所有活动是否记录、git 分支是否正确。
Step 5:完整运行:
python3 whatsapp_outreach_agent.py
--campaign campaigns/my-campaign.yaml
代理显示预览(前 3 条消息)并请求确认 [y/N];确认后开始发送,进度显示为 [X/Y] Name → +phone... OK/FAIL。
Step 6:审查与合并:
cd $PROJECT_ROOT
Check changes
git diff main
If OK -> merge
git checkout main git merge whatsapp-outreach-YYYY-MM-DD-HHMM
If NOT OK -> delete branch
git branch -D whatsapp-outreach-YYYY-MM-DD-HHMM
输出结果包括:
- 日志:$AGENTS_PATH/logs/whatsapp_outreach_YYYY-MM-DD_HH-MM.md
- Git 分支:whatsapp-outreach-YYYY-MM-DD-HHMM
- CRM 变更:sales/crm/activities.csv 新增活动;sales/crm/relationships/leads.csv 更新 last_contact_date;sales/crm/contacts/people.csv 在失败时新增备注。
适用场景
- 需要向一批联系人批量发送 WhatsApp 消息的外联活动。
- 基于 CRM 数据与过滤条件进行活动配置和联系人筛选。
- 例如客户培训提醒:
python3 whatsapp_outreach_agent.py
--campaign campaigns/clientd-training-reminder.yaml
- 快速测试:
python3 whatsapp_outreach_agent.py
--dry-run
--limit 1
--campaign campaigns/example-whatsapp.yaml
限制与注意
- 始终先执行 --dry-run。
- 未经测试不要使用 --auto-approve。
- 每天最多 20 条消息(WhatsApp 可能封禁)。
- 需要人工批准(根据所有者决定)。
- 合并前审查 git 分支。
常见故障排查:
- “WhatsApp session expired”:重新运行 cd $SALES_PATH/whatsapp && node index.js 并扫描二维码。
- “FloodWait error”:增加 WHATSAPP_DELAY_SECONDS、降低 WHATSAPP_DAILY_LIMIT 或等待 24 小时。
- “No recipients found”:检查活动配置中的过滤条件、CRM 数据(people.csv、leads.csv)以及 people.csv 中的电话号码。
- Git 分支未创建:检查是否有成功发送、检查 $PROJECT_ROOT 的 git 状态;可能所有发送都失败了。
相关文件:规格 $AGENTS_PATH/specs/whatsapp-outreach.spec.md;README $AGENTS_PATH/whatsapp-outreach/README.md;实现说明 $AGENTS_PATH/whatsapp-outreach/IMPLEMENTATION.md。