品牌舆情哨兵:搜索公开平台的品牌相关信息,自动去重和时效过滤,输出结构化结果供 LLM 做风险分级和预警。 触发场景:监控某品牌/产品的公开舆情、搜索负面信息并按时间筛选、定时巡查品牌口碑、竞品舆情对比。 关键词:品牌监控、舆情搜索、负面信息、口碑巡查、舆情预警、品牌声誉、sentinel、舆情哨兵。 不做的事:不做风险分级(交给 Agent/LLM)、不做预警推送(交给 cron)、不做特定行业适配。
搜索公开平台的品牌相关信息 → 去重 → 时效过滤 → 输出结构化结果。
scripts/sentinel.py — 纯 Python(无第三方依赖),调用 AutoGLM Web Search API。
http://127.0.0.1:18432/get_token)certifi 包(SSL 证书,通常已预装)# 基本用法
python3 scripts/sentinel.py --brand "特斯拉" --keywords "刹车失灵,自燃" --hours 48
# JSON 输出(供 LLM 消费)
python3 scripts/sentinel.py --brand "瑞幸咖啡" --keywords "食品安全,蟑螂" --hours 24 --output json
# 配置文件模式
python3 scripts/sentinel.py --config references/config-example.json
| 参数 | 必填 | 说明 |
|---|---|---|
--brand | 是* | 品牌名,如 "特斯拉" |
--keywords | 是* | 逗号分隔的关键词,如 "刹车失灵,自燃" |
--hours | 否 | 时效窗口(小时),默认 48 |
--output | 否 | text(默认)或 json |
--config | 是* | JSON 配置文件路径(替代上方参数) |
* --brand+--keywords 与 --config 二选一。
见 references/config-example.json:
{
"brand": "品牌名",
"keywords": ["关键词1", "关键词2"],
"hours": 48,
"output": "json"
}
{
"brand": "特斯拉",
"run_time": "2026-04-14 19:00:00",
"time_window_hours": 48,
"keywords": ["刹车失灵", "自燃"],
"stats": {
"raw_count": 85,
"kept_count": 62,
"expired_count": 8,
"no_date_count": 15
},
"items": [
{
"title": "页面标题",
"url": "页面链接",
"snippet": "摘要内容",
"date_status": "recent|expired|unknown",
"parsed_date": "2026-04-14|null"
}
]
}
date_status:
recent — 解析到日期且在时效窗口内 ✅expired — 解析到日期但超出时效窗口(已被过滤掉)unknown — 未解析到日期(搜索词含"最新"限定,大概率近期,默认保留)parsed_date — 从标题/摘要提取的日期,解析失败为 null+ 最新、+ 当前年月用户: "帮我看看特斯拉最近有什么负面新闻"
1. Agent 调用 sentinel.py:
python3 scripts/sentinel.py --brand "特斯拉" --keywords "刹车失灵,自燃,自动驾驶事故,降价维权" --hours 48 --output json
2. Agent 读取 JSON 输出,用 LLM 判断:
- 哪些是真正的负面/危机
- 风险分级(普通/关注/严重/危机)
- 是否需要预警
3. Agent 生成人类可读的摘要推送给用户