🔍 Sentiment Monitor — 多平台舆情监控与分析
📁 SKILL DIRECTORY PATH
{skillDir}
🚨 MANDATORY FILES (READ FIRST)
references/platforms.md— 平台搜索策略(必读)references/report_schema.md— 数据结构规范(必读)
触发条件
当用户需要:
- 监控某关键词/品牌/公司/话题的舆情
- 收集多平台新闻或社交媒体提及
- 生成舆情分析报告
- 了解某话题的公众评价和情感倾向
- 设置定时/周期性舆情监控与推送通知(如"每天早上 7 点汇报 xxx 舆情")
工作流程
Step 1: 确认监控参数
向用户确认:
- 关键词:监控的核心词(必须)
- 时间范围:必须由用户明确指定(如"最近 3 天"、"2024-01-01 至 2024-01-07"、"本周");若用户未指定则默认最近 7 天并告知用户
- 平台范围:默认全平台(见 platforms.md)
- 关注维度:正负面情感、风险点、传播趋势
⚠️ 时间范围是硬性约束:
- 搜索引擎的
after:/before:参数不可靠,禁止使用——这类过滤在实际搜索工具中常常不生效,只会返回重复结果白白浪费轮次- 时间过滤必须在拿到搜索结果后人工判断:检查每条结果摘要或标题中的日期,超出范围的直接跳过不收录
- 报告中每条数据必须标注发布日期,确认在范围内
- 若某平台在该时间段确实无内容,如实标注"该平台此期间无相关内容",严禁用过期内容填充
Step 2: 多平台并行搜索(10-12 轮,4 个并行)
核心原则:精准覆盖、控制轮次、结果后过滤时间
⚠️ 搜索语句不加 after:/before: 参数(搜索引擎不支持,加了反而返回重复结果) 时间控制方式:搜索词中加入年月(如
2026年4月、最新),拿到结果后逐条核查日期
使用 web_search,每批 4 个并行,共 3 批,总计 12 轮:
第一批(主流平台,4 个并行):
{关键词} site:weibo.com {年月}— 微博{关键词} site:zhihu.com {年月}— 知乎{关键词} site:bilibili.com {年月}— B站{关键词} site:toutiao.com OR site:163.com {年月}— 头条+网易
第二批(新闻媒体 + 科技财经,4 个并行):
{关键词} site:news.qq.com OR site:thepaper.cn {年月}— 腾讯新闻+澎湃{关键词} site:sina.com.cn OR site:sohu.com {年月}— 新浪+搜狐{关键词} site:36kr.com OR site:huxiu.com OR site:ithome.com {年月}— 科技媒体{关键词} site:people.com.cn OR site:xinhuanet.com OR site:caixin.com {年月}— 央媒+财新
第三批(社交内容 + 主题角度,4 个并行):
{关键词} site:xiaohongshu.com OR site:xhslink.com {年月}— 小红书{关键词} site:weixin.qq.com OR site:baijiahao.baidu.com {年月}— 公众号+百家号{关键词} 争议 负面 投诉 质疑 {年月}— 负面舆情专项{关键词} 好评 推荐 KOL 测评 热搜 {年月}— 正面+热点专项
结果筛选(每批搜完立即处理):
- 检查每条结果的日期(摘要中通常有"X天前"、"X月X日"等标注)
- 在时间范围内 → 收录;超出范围 → 跳过,记录为"已过滤"
- 目标:筛选后有效条目 50+ 条,覆盖 12+ 平台
Step 3: 详情抓取(重点内容)
对搜索结果中的高价值链接,使用 web_fetch 抓取正文详情:
- 优先抓取:权威媒体报道、深度分析文章、官方声明
- 抓取前先确认文章发布日期在时间范围内,超出则跳过
- 每个主要平台至少深入抓取 1 篇
- 总计抓取 10-15 篇详情(不必贪多,质量优先)
Step 4: 情感分析与结构化整理
对所有搜集到的信息进行分析:
情感分类标准:
- 🟢 正面:赞扬、支持、推荐、数据亮眼
- 🔴 负面:批评、质疑、投诉、差评
- 🟡 中性:客观报道、数据陈述、无明显倾向
- 🟣 混合:同一内容中正负面并存
风险评级标准:
- ⚠️ 高风险:大规模负面舆论、官方关注、法律风险
- 🔶 中风险:持续争议、口碑下滑趋势
- ℹ️ 低风险:个别负面声音、可控范围
Step 5: 生成 HTML 可视化报告
使用 scripts/generate_report.py 生成报告。
数据准备: 将分析结果写入 JSON 文件,格式参考 references/report_schema.md。
执行命令:
cd {skillDir} && python scripts/generate_report.py --input {数据JSON路径} --output {报告输出路径}
报告包含:
- 📊 舆情概览:总条数、正/负/中性占比、平台分布
- 📈 情感分布图表(饼图 + 柱状图)
- 🏷️ 平台热度排名
- 📋 详细舆情条目(含来源、时间、情感标签、摘要、原文链接)
- ⚠️ 风险预警清单
- 📝 综合分析结论与建议
注意事项
- 时间过滤方式:禁止在搜索语句中使用
after:/before:参数(不生效);改为搜索词加年月 + 拿到结果后逐条核查日期 - 搜索轮次控制:固定 3 批 × 4 个并行 = 12 轮,不随意增加,避免搜索工具响应堆积变慢
- 覆盖广度:12 轮搜索已能覆盖 15+ 个平台,通过 OR 组合查询提高效率
- 时间范围硬约束:超出范围的结果一律丢弃,不得填充报告
- 中文编码:JSON 数据用 Python dict + json.dump 方式生成,避免中文引号问题
- 去重:同一事件不同平台的报道保留最详细的 1-2 条
- 客观性:分析基于事实数据,避免主观臆断
定时舆情通知模式
触发识别
当用户消息包含时间频率 + 舆情相关表达时,进入定时通知模式。典型表达:
- "每天早上 7 点给我汇报 xxx 的舆情"
- "每天 9 点和 18 点监控 xxx"
- "每周一汇报 xxx 品牌口碑"
- "工作日下午 3 点推送 xxx 最新舆情"
- "每小时监控一次 xxx 的负面信息"
定时模式工作流程
Step A: 解析定时参数
从用户消息中提取:
- 关键词:监控的核心词(必须)
- 执行频率:自然语言时间表达(如"每天7点"、"工作日9点和18点")
- 关注重点:全面分析 / 仅负面预警 / 仅数据追踪(默认全面分析)
- 通知方式:企微推送(默认开启)
向用户确认以上参数,明确无误后执行下一步。
Step B: 构建定时任务 Prompt
根据参数拼装执行 Prompt,模板如下:
请使用 sentiment-monitor Skill 对关键词"{关键词}"执行舆情监控分析:
时间范围:{时间范围,如"过去24小时"/"过去7天",严格不越界}
1. 加载 Skill: use_skill("sentiment-monitor")
2. 按照 SKILL.md 中的 Step 2~5 完整执行:
- 多平台并行搜索(3批 × 4并行 = 12轮,搜索词加年月,结果后核查日期,覆盖 15+ 平台)
- 严格过滤:所有收录数据须在时间范围内,超出范围的一律跳过
- 详情抓取(10-15 篇,抓取前确认日期)
- 情感分析与结构化整理
- 生成 HTML 可视化报告
3. 完成后,生成一段 Markdown 格式的舆情摘要(不超过 4000 字节),包含:
- 📊 数据概览:总条数、正/负/中性分布
- 🔥 今日热点(前 3 条)
- ⚠️ 风险预警(如有高/中风险项)
- 📈 情感趋势判断
4. 通过企微推送 Markdown 摘要给用户
5. 同时将 HTML 完整报告作为文件推送
如用户指定"仅负面预警",调整 Prompt 为:
重点搜索 "{关键词} 争议 投诉 负面 质疑 差评 问题",仅分析和推送负面/风险信息。
如无负面舆情,推送一条"✅ {关键词} 当前无负面舆情"的通知即可。
Step C: 创建定时任务
使用 scheduled_task_create MCP 工具创建任务:
参数说明:
- name: "舆情监控-{关键词}"
- schedule: 将用户的时间表达转换为 cron 或直接传自然语言
- "每天7点" → "0 7 * * *" 或 "每天早上7点"
- "每天9点和18点" → 需创建 2 个任务,分别 "0 9 * * *" 和 "0 18 * * *"
- "工作日下午3点" → "0 15 * * 1-5"
- "每小时" → "0 * * * *"
- "每周一9点" → "0 9 * * 1"
- prompt: Step B 中构建的完整 Prompt
- notifyWecom: true
- enabled: true
多时间点处理:如用户说"每天 7 点和 19 点",需拆分为 2 个独立定时任务:
- "舆情监控-{关键词}-早报" →
0 7 * * * - "舆情监控-{关键词}-晚报" →
0 19 * * *
Step D: 确认并反馈
创建成功后,向用户反馈:
✅ 定时舆情监控已设置!
📌 监控关键词:{关键词}
⏰ 执行频率:{频率描述}
📢 通知方式:企微推送(Markdown 摘要 + HTML 完整报告)
🔄 状态:已启用
每次执行时,我会:
1. 全网 15+ 平台采集最新舆情
2. 自动分析情感倾向与风险等级
3. 生成可视化报告并推送给你
如需调整,你可以说:
- "暂停 xxx 的舆情监控"
- "把 xxx 的监控改为每周一次"
- "删除 xxx 的舆情监控任务"
定时任务管理
用户后续可能的管理操作及对应处理:
| 用户指令 | 操作 |
|---------|------|
| "暂停/停止 xxx 监控" | 调用 scheduled_task_update 设置 enabled=false |
| "恢复 xxx 监控" | 调用 scheduled_task_update 设置 enabled=true |
| "删除 xxx 监控" | 调用 scheduled_task_delete |
| "改为每周一执行" | 调用 scheduled_task_update 修改 schedule |
| "加上 yyy 关键词一起监控" | 修改任务 prompt 中的关键词 |
| "查看我的监控任务" | 调用 scheduled_task_list |
| "立即执行一次" | 调用 scheduled_task_run |
微信扫一扫