SuperAPI AI 工具集

watchers-run

办公与效率

查看项目

更新于 10-15 11:16

技能介绍

Watchers Agent - Run Skill 是 Watchers Agent 的手动运行方式。Watchers Agent 用于监控目标网站(竞争对手、客户、合作伙伴)的变化,并在检测到重要更新时发送 Telegram 通知。

一、何时使用

在以下情境下可手动运行该 Skill:输入 "run watchers"、"check website changes"、"run website monitoring" 时;或者在配置变更后进行测试时。

二、主要能力

Watchers Agent 监控目标网站(竞争对手、客户、合作伙伴)的变化,当检测到重要更新时发送 Telegram 通知。其运行流程包括:加载配置;按 last_checked 检查到期需检查的目标;下载内容并与保存的快照对比;使用 Claude Haiku 过滤噪声;对重要变化发送 Telegram 通知;更新状态文件。

三、使用方式(执行命令)

  1. 完整运行(生产环境): cd $AGENTS_PATH/watchers python3 watchers_agent.py

  2. 干跑(测试): cd $AGENTS_PATH/watchers python3 watchers_agent.py --dry-run 适用于:配置变更后测试、检查新目标、在不发送通知的情况下调试、预览将被检测到的内容。干跑模式下不会更新状态文件,不会发送 Telegram 通知,只展示本应执行的操作。

  3. 配置检查: cd $AGENTS_PATH/watchers python3 watchers_agent.py --validate-config 检查 YAML 语法并输出启用/禁用的目标列表。适用于添加新目标前、更改选择器或阈值前、首次运行智能体前。

  4. Telegram 测试: cd $AGENTS_PATH/watchers python3 watchers_agent.py --notify-test 发送测试通知以验证 Telegram 集成。

  5. 状态重置:

预览

python3 watchers_agent.py --reset-state --dry-run

实际重置(需确认)

python3 watchers_agent.py --reset-state 适用于重大配置变更后(新增选择器)、状态文件损坏时、为所有目标重新建立基线。注意:重置后的下一次运行会把所有目标视为新目标,可能发送大量告警。

四、配置

配置文件路径:$PROJECT_ROOT/monitoring/watchers/watcher_config.yaml

目标示例(YAML): watchers:

  • name: "Competitor Careers Page" url: "https://competitor.com/careers" type: webpage selector: "div.job-listings" # CSS selector priority: high # low|medium|high check_interval: "1h" # "1h", "4h", "24h" change_threshold: 5 # % change for alert tags: ["competitor", "hiring"] related_crm_id: "comp-competitor-001" enabled: true

添加新目标的步骤:打开 watcher_config.yaml;向 watchers 列表添加新元素;找到正确的 CSS 选择器(DevTools -> Inspect);设置 enabled: true;运行 --validate-config 检查;运行 --dry-run 测试;不带参数运行进入生产。

五、输出

控制台输出示例: [2026-02-12 10:00:00] Loading configuration... [2026-02-12 10:00:00] Found 5 target(s) due for checking [2026-02-12 10:00:01] Processing [1/5]: Competitor Careers Page [2026-02-12 10:00:03] CHANGE DETECTED: 12.3% (modified_content) [2026-02-12 10:00:05] MEANINGFUL: job_posting - New position posted [2026-02-12 10:00:10] Done: 5 checked, 2 changed, 1 alerts, 0 errors

Telegram 告警会包含标题、URL、类别、标签、变化百分比、变化描述、差异预览,以及检测到的外联触发建议、建议操作和相关 CRM 编号。

状态文件路径:$PROJECT_ROOT/monitoring/watchers/state/competitor_com_careers.json,内容包含 last_checked、content_hash、content_text、metadata(word_count、fetch_timestamp、http_status)、failure_count、last_alert_sent 等字段。

六、故障排查

  1. "Selector not found":页面上未找到 CSS 选择器。解决办法:在浏览器中打开 URL;右键 -> Inspect -> 找到正确的元素;更新配置中的选择器。

  2. 误报过多:检测到变化但无意义(如时间戳、浏览量)。解决办法:使用更具体的选择器(排除动态内容);对噪声较大的目标提高 change_threshold;AI 过滤应自动过滤这些内容。

  3. Telegram 不工作:检查运行 --notify-test;检查 tg-tools 会话文件;查看 stderr 日志;检查 pending_alerts.txt 中失败的告警。

  4. 遗漏变化:发生了变化但未发送告警。检查配置中 enabled: true 是否设置;变化是否 >= change_threshold(可降低阈值);AI 过滤器是否将其作为噪声拒绝(检查状态文件差异);检查 watcher_log.json 中的错误。

七、紧急停止

如果智能体在 Telegram 中刷屏:

创建 PAUSE 文件

touch $PROJECT_ROOT/monitoring/watchers/PAUSE

智能体将跳过下一次运行

删除 PAUSE 以恢复

rm $PROJECT_ROOT/monitoring/watchers/PAUSE

八、调度(launchd)

安装: cp $AGENTS_PATH/watchers/com.yourcompany.watchers-agent.plist
~/Library/LaunchAgents/ launchctl load ~/Library/LaunchAgents/com.yourcompany.watchers-agent.plist

检查状态:launchctl list | grep watchers

查看日志:

stdout

tail -f /tmp/watchers-agent.log

stderr(主要日志在此)

tail -f /tmp/watchers-agent-error.log

卸载: launchctl unload ~/Library/LaunchAgents/com.yourcompany.watchers-agent.plist rm ~/Library/LaunchAgents/com.yourcompany.watchers-agent.plist

九、文件

watchers_agent.py:主脚本;watcher_config.yaml:配置;watcher_log.json:运行历史(最近 100 条);pending_alerts.txt:失败告警的备用记录;state/*.json:每个目标的状态文件;PAUSE:紧急停止(创建即暂停)。

十、相关

Email Agent($GOOGLE_TOOLS_PATH/email_agent.py)- 类似模式;Daily Briefing(未来)- 将包含 watcher 告警;CRM Add/Update(未来)- 在触发时自动创建任务;Touch Scheduler(未来)- 安排后续跟进。

Owner:Your Name (your@email.com)