- name
- eyes
- description
- 全球热点事件监控与影响分析。当用户说"大眼"、说"eyes"、说"查看热点"、"追踪事件"、"有什么大事"、"最近发生了什么"、"XX事件影响"、"帮我监控热点"、或用任何语言说类似含义时使用。也用于 Cron 定时推送热点摘要(早8点/晚8点)。覆盖战争冲突、地缘摩擦、重大政策、疫情、自然灾害、创新技术等所有可能影响经济、市场和投资的事件,并按行业、汇率、大宗商品、个股链路分析影响。
Hot Event Monitor(热点事件监控)
核心能力
- 发现热点:实时抓取全球各类突发事件
- 分级评估:判断事件重要性(P0/P1/P2)
- 影响分析:按「事件类型 → 影响市场 → 代表标的」链路展开
- 主动提醒:根据等级推送摘要,用户追问再展开详细分析
- 偏好记忆:记住用户关注方向,下次加权推送
- 去重机制:避免同一条事件被重复推送
⚠️ 推送格式统一要求
所有推送消息(无论 Cron 触发还是用户主动触发)必须在开头包含品牌标记:
👁️ Eyes · 大眼看世界
━━━━━━━━━━━━━━━━━━
[正文内容]
━━━━━━━━━━━━━━━━━━工作流程
Step 0:定时器安装检测(每次触发时执行)
目的:检测用户是否已完成 cron 定时器安装。未安装时在推送内容最前方插入提醒(仅提醒一次)。
标记文件:memory/eyes-installed(install.sh 成功跑完后创建,内容为安装时间)
操作:
- 读取
memory/eyes-installed - 若文件不存在:
- 在本次推送内容最前方(品牌标记之后、正文之前)插入以下提醒:
⚠️ Eyes 定时器未完成配置,当前仅支持手动触发。
直接回复「帮我安装」,AI 将自动完成配置。
配置完成后将自动开启每日早 8 点 / 晚 8 点热点汇总,以及每小时整点扫描。
━━━━━━━━━━━━━━━━━━安装指令处理
当用户回复「帮我安装」(或不包含热点关键词的主动安装请求)时,由 agent 动态完成注册:
第一步:获取当前用户的 open_id 调用 feishu_get_user(不传参数,获取当前用户自己),从返回结果中取得用户的 open_id(格式:ou_xxx)。
第二步:注册 3 个 cron job(通用版)
参考 references/cron-install-shell.sh 中的命令模板,将 <USER_OPEN_ID> 替换为第一步获取的真实 open_id 后依次执行。具体推送指令内容请查看 references/cron-templates.json。
**第三步:创建安装标记文件**memory/eyes-installed 内容:
Eyes skill 安装确认
安装时间:<当前ISO时间>
**第四步:回复用户**
- **成功**:「✅ Eyes 定时器配置完成!🌅 早 8 点 / 🌙 晚 8 点 / ⏰ 每小时扫描已就绪。从明早起会自动收到每日热点汇总。」
- **失败**:告知错误信息,建议用户手动检查定时器:运行 `openclaw cron list` 查看状态。
---
### Step 1:读取状态(推送前必做)
读取 `memory/eyes-sent-events.md`,获取**最近24小时内已推送事件列表**。
格式:`EVENT_ID | 推送时间 | 级别 | 摘要`
目的:后续筛除已在列表中的事件,避免重复推送。
---
### Step 2:发现热点
使用 `tools.web_search` 搜索多维度关键词,获取最新事件:
搜索组合(每次至少查 2-3 组):
- "<高热度词>" 或 "最新" + "<日期>"
- "<事件名>" + "影响/市场/经济"
- "突发事件/热点新闻/最新消息"
常用搜索模式:
- 战争冲突:`"中东战争" "最新"`,`"美伊" "停火" "2026"`
- 地缘摩擦:`"台海" "最新"`,`"贸易战" "最新消息"`
- 政策:`"美联储" "利率" "决议"`,`"央行" "降准" "最新"`
- 灾害:`"地震" "最新"`,`"洪涝" "影响"`
- 技术:`"AI" "突破" "最新"`,`"固态电池" "量产"`
> ⚠️ **搜索 provider 由 OpenClaw 配置决定**,本 skill 不指定具体实现,动态路由。
---
### Step 3:重要性分级
读取 `references/event-impact-matrix.md` 第8节,对照分级规则:
| 等级 | 触发条件 | 推送方式 |
|------|----------|----------|
| P0 | 战争爆发、大规模制裁、全球性危机、黑天鹅 | 立即推送,不等待定时 |
| P1 | 重要政策、地缘摩擦升级、大国博弈、重要经济数据 | 实时推送 |
| P2 | 一般灾害、行业新闻、局部事件 | 朝8点/晚8点汇总推送 |
**分级优先原则**:就高不就低,模糊时升一级。
---
### Step 4:去重过滤
将搜索到的每条事件与 `memory/eyes-sent-events.md` 中的记录比对:
- **事件相似度 > 80%**(相同当事人 + 相同结论)→ 跳过,不推送
- **事件为已推送事件的最新进展** → 仅当有实质性新进展时更新推送,标注「**后续跟踪**」
- **全新事件** → 进入 Step 5
去重判断标准:
- 相同地区 + 相同事件类型 + 相同结论方向 → 视为重复
- 例:"伊朗宣布关闭霍尔木兹海峡" vs "霍尔木兹海峡持续关闭" → 后者为跟进,跳过
- 例:"美伊停火协议达成" vs "以色列空袭黎巴嫩,停火破裂" → 结论方向改变 → 视为新事件
---
### Step 5:影响分析(⚠️ 必须命中矩阵链路)
**强制规则:每条事件必须归类到 event-impact-matrix.md 的 8 大类别之一,并严格沿用该类别的分析链路,不得自由发挥。**
归类判断:
- 军事行动/武装冲突 → 类别1(战争/武装冲突)
- 贸易摩擦/关税/制裁 → 类别2(地缘摩擦/贸易战)
- 央行决议/降准/财政政策 → 类别3(重大政策)
- 疫情/公共卫生事件 → 类别4
- 极端天气/地震/自然灾害 → 类别5(自然灾害)
- AI突破/技术进展/新产品 → 类别6(创新技术)
- GDP/非农/CPI等数据发布 → 类别7(宏观经济数据)
- 不属于以上任何类别 → 默认走「地缘摩擦 → A股/港股承压」链路
链路使用规则:
1. **严格对应**:找到矩阵中对应事件类型,逐一列出受影响品种,不遗漏
2. **不扩展品种**:矩阵中没有的品种不主动添加,除非有明确逻辑链支撑
3. **标注推导**:每条影响后用「→」标注推导逻辑,如「→ 原油↑(供应担忧)」
4. **不确定时注明**:没有明确数据支撑时,用"可能/预计"表述,不编造数字
5. **摘要优先**:输出先给结论,用户追问再给详细链路
---
### Step 6:更新推送记录
每推送一条 P0/P1 事件,立即追加一行到 `memory/eyes-sent-events.md`:
<当前时间HH:MM> | <级别> | <事件摘要,20字内>
**保留规则**:自动清理超过 24 小时的旧记录(保留最新一行摘要)。
---
### Step 7:推送摘要格式
**先发送,发送成功不进队列;只有发送失败才写队列重试。**
**流程**:
1. **先调用飞书发送接口**,发送推送内容
2. **发送成功** → 直接追加到 `memory/eyes-sent-events.md`(无需写 retry queue)
3. **发送失败** → 将完整推送内容写入 `memory/eyes-retry-queue.md`,格式:[<当前时间ISO>] | pending | <推送内容>
repair job 会自动重试并写入 sent-events
**去重规则**:推送内容需按照 Step 2/Step 4 规则去重(比对 eyes-sent-events.md),避免同一事件重复推送。
**repair job 额外规则**:重试推送前,检查 `memory/eyes-sent-events.md` 中是否已有相似内容,若有则标记为 `done` 跳过,不重复发送。
静默规则:无新事件时不推送任何消息。
👁️ Eyes · 大眼看世界 ━━━━━━━━━━━━━━━━━━ 📰 <事件标题> ⏰ <发生时间> | 🔴 P0 / 🟡 P1 / 🟢 P2 📌 <事件简述(1-2句)>
💹 市场影响: • <市场/板块>:<方向> <简述> • <市场/板块>:<方向> <简述>
💡 操作参考: • <标的类型>:<建议>
🔍 想了解更多?回复"展开"获取详细分析
**字数控制**:
- 即时推送(P0/P1):每条 ≤ 150 字
- 定时汇总(早8/晚8):每条 ≤ 100 字,总推送 ≤ 800 字
- 超出3条时只展示 Top3,其余标注"更多N条"
---
### Step 8:更新偏好(自动提取 + 衰减清理)
**提取触发**:在同一次 eyes 对话中,用户提及以下任一内容超过 1 次:
- 任何股票代码(如 688981、002261)
- 任何行业名称(如"半导体"、"新能源"、"军工")
- 任何具体标的简称(如"中芯"、"昇腾"、"拓维")
- 任何市场名称(如"A股"、"港股"、"美股"、"原油"、"黄金")
**提取流程**:
1. 读取当前 `references/user-preferences.md`
2. 检查该行业/标的是否已在列表中:
- **已存在** → 更新其 `lastSeen` 为当前时间,`status` 改为 `active`
- **不存在** → 追加新条目,`lastSeen` 为当前时间,`status` 为 `active`
3. 将 `更新时间` 更新为当前 ISO 时间戳
4. 写回文件
**衰减清理(仅在早 8 点汇总末尾执行一次)**:today = 当前时间 for each item in 重点关注行业 / 关注标的: days_since_seen = today - item.lastSeen if 90 < days_since_seen <= 180: item.status = "dimmed"(标注 ⚠️,移至列表末尾) elif days_since_seen > 180: 从列表中移除该条目 写入更新后的文件
**展示优先级**:分析结果中,active 条目优先于 dimmed 条目
---
## 定时推送(Cron)
### ⚠️ Cron Job 配置(已实测稳定版本)
三个 cron job 的完整 JSON 模板见 `references/cron-templates.json`,包含早8点/晚8点/整点扫描的完整指令内容。
---
## 常见问答
**Q:搜索结果太多/太少怎么办?**
A:调整关键词,聚焦到具体事件或地区。新闻刚发生时用具体名词(如"伊朗停火"),持续事件用"最新进展"。
**Q:事件影响不确定怎么办?**
A:分析逻辑链条,给出"可能↑/↓"而非确定结论,注明不确定因素。绝对不编数据。
**Q:用户持仓和热点相关怎么办?**
A:读取 `references/user-preferences.md`,若用户有关注行业/标的,在影响分析中优先提及并给出建议。
**Q:同类型事件反复出现怎么办?**
A:识别为"持续事件",在摘要中标注"后续跟踪:XXX",简述最新进展而非重复背景。
**Q:搜索延迟导致事件已过时?**
A:搜索结果中核对时间戳,优先引用 24 小时内的新闻,超时消息注明"早前报道"。
**Q:P0/P1 事件在 Cron 扫描中被判定为重复但实际有新进展?**
A:以结论方向是否改变为判断标准。事件结论方向与已推送记录相同 → 跳过;结论方向改变(如停火达成→停火破裂)→ 视为新事件,正常推送。
---
## 工具依赖
- **搜索**:调用 `tools.web_search`(OpenClaw 动态路由,按配置使用当前指定的搜索 provider,自动生成摘要)
- **内存读写**:读取/写入推送记录(`memory/eyes-sent-events.md`)和 P2 暂存(`memory/eyes-p2-pending.md`)
- **用户信息**(可选):查询用户日历辅助判断关注点
- **消息推送**:发送到飞书
## 文件索引
- `memory/eyes-sent-events.md`:最近24小时已推送事件记录(自动维护,用于去重)
- `memory/eyes-p2-pending.md`:Cron 扫描中暂存的 P2 事件(由 hourly job 写入,由早/晚汇总 job 读取并清空)
- `memory/eyes-installed`:定时器安装标记(install.sh 跑完后自动创建)
- `references/event-impact-matrix.md`:8大类型事件的影响链路与分级规则
- `references/user-preferences.md`:用户个性化偏好(关注市场/行业/标的)
- `references/cron-templates.json`:三个 cron job 的完整 JSON 模板(含A股分析指令)
- `references/cron-install-shell.sh`:安装 cron job 的 shell 命令模板