event-watcher

📡 事件驱动的智能代理唤醒器

🥥34总安装量 17评分人数 25
100% 的用户推荐

OpenClaw 生态的事件监听技能,通过 Redis Streams 和 Webhook 实现条件触发,无事件时零 token 消耗,精准唤醒 Agent 处理实时数据流。

A

基本安全,请在特定环境下使用

  • 来自社区或个人来源,建议先隔离验证
  • ✅ 代码安全规范,无 `eval()`/`exec()` 等危险函数,无 SQL 注入或命令注入漏洞
  • ✅ 依赖库(redis、pyyaml)来源可靠,无动态代码加载或远程脚本执行风险
  • ⚠️ 默认读取本地 OpenClaw session store 文件,可通过配置 `wake.disable_session_store_lookup: true` 禁用
  • ⚠️ 使用 `subprocess.run` 执行 `openclaw` CLI 命令,属功能预期行为,但需注意参数安全
  • ⚠️ 事件 payload 会发送至外部 Slack 频道,需确保目标频道已在允许列表中并验证事件来源

使用说明

Event Watcher 是 OpenClaw 生态中的轻量级事件监听技能,专为需要响应实时数据流的场景设计。它通过监听 Redis Streams 和 Webhook JSONL 数据源,仅在匹配预设条件的事件到达时才唤醒 OpenClaw Agent 进行处理,实现"无事件不唤醒"的精准触发模式,有效避免无效轮询带来的 Token 消耗。

核心用法围绕配置文件展开。用户需编写 YAML 格式的 watcher 配置,定义 Redis Stream 消费者组或 Webhook 端点,通过 JSON 规则(支持 AND/OR 逻辑和正则表达式)设置事件过滤条件。配置中指定 reply_channelreply_to 目标(Slack 频道或用户),无需显式设置 session_key,系统会自动解析最新会话。运行时通过 nohuptmux 后台执行 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 注入。

event-watcher 内容

文件夹图标examples文件夹
文件夹图标references文件夹
文件夹图标scripts文件夹
文件夹图标sources文件夹
手动下载zip · 14.4 kB
event_watcher.yamltext/plain
请选择文件