Event Watcher 是 OpenClaw 生态中的轻量级事件监听技能,专为需要响应实时数据流的场景设计。它通过监听 Redis Streams 和 Webhook JSONL 数据源,仅在匹配预设条件的事件到达时才唤醒 OpenClaw Agent 进行处理,实现"无事件不唤醒"的精准触发模式,有效避免无效轮询带来的 Token 消耗。
核心用法围绕配置文件展开。用户需编写 YAML 格式的 watcher 配置,定义 Redis Stream 消费者组或 Webhook 端点,通过 JSON 规则(支持 AND/OR 逻辑和正则表达式)设置事件过滤条件。配置中指定 reply_channel 和 reply_to 目标(Slack 频道或用户),无需显式设置 session_key,系统会自动解析最新会话。运行时通过 nohup 或 tmux 后台执行 watcher.py 脚本,持续监听直至收到终止信号。
显著优点包括极致的成本控制和灵活的集成能力。基于事件的触发机制确保没有匹配事件时 Agent 保持休眠,大幅降低 LLM Token 消耗。内置的去重机制(TTL 可配置)防止重复处理,自动重试和死信队列保障消息可靠投递。同时支持会话路由自动解析,简化了多频道部署的复杂度,并提供结构化日志和计数器便于监控。
潜在局限性主要体现在基础设施依赖和来源可信度。该技能强依赖 Redis 服务作为消息队列,需要额外的运维成本。作为 T3 级个人开发者作品,缺乏官方组织背书,在企业级生产环境中可能需要额外的代码审计。此外,Python 环境依赖(redis, pyyaml)和本地文件系统访问增加了部署复杂度,且依赖版本未锁定可能影响可复现性。
适合的目标群体包括:使用 OpenClaw 构建自动化工作流的开发者、需要基于 Redis Streams 实现事件驱动的 DevOps 工程师、以及希望将 Webhook 数据实时接入 Slack 工作区的运营团队。对于需要 7×24 小时监听外部事件并触发 AI 处理的场景尤为适用。
使用风险主要涉及数据隐私和执行安全。技能默认读取本地 ~/.openclaw/sessions/sessions.json 文件(可通过 disable_session_store_lookup 禁用),且使用 subprocess.run 执行 openclaw CLI 命令。事件 payload 会被转发至配置的 Slack 频道,需确保 openclaw.json 中的频道允许列表已正确配置,避免信息泄露。虽然代码本身无注入漏洞,但建议对不可信来源的事件数据保持警惕,保持默认的 add_source_preamble 安全头开启状态以防止 prompt 注入。