Watch any web page for changes — with AI-powered understanding. Instead of rigid keyword matching, describe what you're looking for in natural language and let the agent decide.
普通监控Smart Web Monitor关键词匹配: risk manager自然语言: "是否有风控岗位?排除实习"静态正则: risk.{0,20}managerAgent 理解上下文语义匹配即通知匹配后 Agent 可以总结、分析、过滤一次判断Agent 持续推理,理解页面结构变化
bash
# Simple: keyword match
python3 scripts/monitor.py create \
--name "hk-risk-jobs" \
--url "https://careers.example.com/risk" \
--match-type keyword \
--match-value "risk manager,hong kong,compliance"
# Smart: LLM match (agent evaluates with natural language understanding)
python3 scripts/monitor.py create \
--name "hk-fintech-news" \
--url "https://36kr.com" \
--match-type llm \
--match-value "是否有香港金融科技、虚拟银行相关新闻?排除广告。"
bash
python3 scripts/monitor.py run --event hk-risk-jobs
# → auto-matches, auto-pauses on match
bash
python3 scripts/monitor.py fetch --event hk-fintech-news
# → outputs JSON with page text for LLM agent to evaluate
bash
python3 scripts/monitor.py resume --event xxx # 继续
python3 scripts/monitor.py pause --event xxx # 暂停
python3 scripts/monitor.py disable --event xxx # 停用
python3 scripts/monitor.py enable --event xxx # 启用
TypeHow It WorksSmart?ExamplekeywordComma-separated keywords (case-insensitive)❌risk manager,hong kong``regexRegular expression pattern❌risk.{0,20}manager``cssCSS selector — matches if elements exist❌.job-listing .title``jsonpathJSONPath for API responses❌$.data.jobs[*].title``llm🤖 Agent evaluates with LLM reasoning✅是否有风控岗位?排除实习
This is what makes the monitor "smart". Instead of rigid pattern matching, the agent reads the page and thinks.
How it works:
monitor.py fetch — fetches page, extracts clean text → outputs JSONThis enables natural language conditions that would be impossible with regex:
text
active ──(match found)──→ paused ──(resume)──→ active
│ ↑
└──(disable)──→ disabled ──(enable)──────────┘
json
{
"name": "hk-risk-jobs",
"description": "Hong Kong risk management jobs",
"urls": [{"url": "https://careers.example.com/risk", "label": "Example"}],
"match": {
"type": "llm",
"value": "是否有香港风控或合规岗位?排除实习。"
},
"interval": 7200,
"state": "active",
"enabled": true
}
bash
openclaw cron add \
--name "Monitor: hk-risk-jobs" \
--cron "0 */2 * * *" \
--tz "Asia/Hong_Kong" \
--session isolated \
--message "Run monitor: cd /home/node/.openclaw/workspace/skills/web-monitor && python3 scripts/monitor.py run --event hk-risk-jobs" \
--announce --channel discord --to "user:YOUR_ID" --light-context
bash
openclaw cron add \
--name "Monitor: hk-fintech-news" \
--cron "0 */3 * * *" \
--tz "Asia/Hong_Kong" \
--session isolated \
--message 'You are a web monitor agent. Run: cd /home/node/.openclaw/workspace/skills/web-monitor && python3 scripts/monitor.py fetch --event hk-fintech-news. Read the output JSON. For each URL, evaluate if the page content matches the condition: "是否有香港金融科技相关新闻?排除广告。" If matched: output a brief summary of what matched. If not matched: say "no match". If matched, also run: python3 scripts/monitor.py pause --event hk-fintech-news' \
--announce --channel discord --to "user:YOUR_ID" --light-context
CommandUsagecreateCreate new monitorrun --event XRun with built-in matchingfetch --event XFetch page text (for LLM)listShow all monitorsshow --event XShow configresume/pause/disable/enableState managementdelete --event XDelete monitoradd-urlAdd URL to monitor