指令虾
下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-dzobs9ce--mix-news-aggregator.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-dzobs9ce/mix-news-aggregator。阅读全文 (展开查看完整说明)
概述
MiX-news-aggregator = 情报虾 v5.0.0(基于 qmi-news-aggregator-skill v3.3.3,按腾讯 ima-skills 1.1.7 标准封装)
致谢与版权:本技能基于 qmi/qmi-news-aggregator-skill(MIT 协议)v3.3.3 改造。
⛔ MANDATORY RULES — read before ANY operation
Before ANY fetch_news.py / daily_briefing.py invocation, the calling Agent MUST read these rules.
适用场景:跑本技能的 21 个信源抓取、daily_briefing.py 早报、关键词过滤、deep 模式详情抓取。
后果:违反任何一条都会破坏数据真实性、绕过合规保护、引入幻觉。
Rule 1 · 反幻觉铁律(最高优先级)
- 绝对不允许编造新闻:哪怕抓不到,也必须返回空数组 + Smart Fill 标记
- 空结果必须友好提示:「⚠️ 关键词过滤后空结果,自动扩展时间窗口补全」或「⚠️ 无匹配结果,请换关键词」
- 原始 stdout 100% 不篡改:filter / dedupe / sort 不修改
raw字段 - 数据源失联时明说:网络错误不假装;返回
{"error": "...", "code": -100}而非空成功 - JSON 喂数据模式是好方案:用户喂数据 → Agent 出分析 → 零失真
违反此规则 → 直接判定为幻觉,输出作废。
Rule 2 · 中文 AI Tell ban(写作时不踩坑)
- 禁词:「震撼」「重磅」「赋能」「全新升级」「强强联合」「颠覆」「首发」
- 替换:「震撼」→「值得注意」「重磅」→「重要」「赋能」→「帮助 / 支持」
- 禁用「AI 味」句式:「在这个信息爆炸的时代」「作为一个 AI 模型」「希望对您有所帮助」
Rule 3 · 国内法规 ban(涉及合规不踩雷)
- 《广告法》极限词:「最 / 第一 / 顶级 / 首家 / 唯一」「百分百中奖」「国家免检」
- 《网络安全法》《个保法》:不抓取未公开的未成年人信息 / 个人隐私 / 实名数据
- 《证券法》:投资类信息标注「不构成投资建议」,绝不承诺收益
Rule 4 · 网络白名单硬限制(防 v3 微博反爬陷阱)
- 只允许访问
metadata.security.allowed_domains中列出的 8 个域 - 禁止任何抓取脚本访问白名单外的域(微博/百度详情页反爬已记录于 MISTAKES.md)
- fetch_news.py –deep 模式必须 limit ≤ 50(防意外暴走)
- daily_briefing.py –keyword 长度必须 ≤ 50 字符(防 prompt 注入)
Rule 5 · 统一错误码协议(程序 / 业务两层)
- 程序错(写入 stderr,exit code 非零):
code: -100网络错误(超时 / DNS / 403/429)code: -200参数错误(缺 –source / 无效信源 / 路径不存在)
- 业务错(写入 stdout JSON,exit code 0):
code: 0正常结果code: 1业务正常但部分信源失败(partial_success: true)code: 2关键词过滤后空结果(smart_filled: true表示已自动补全)
错误码约定详见
references/api.md第 §4 节。
模块决策表(用户意图 → 命令 → 信源组)
| 用户意图 | 命令 | 信源组 | 预期耗时 |
|---|---|---|---|
| 国内早报 6 套 profile | python3 scripts/daily_briefing.py --profile general|tech|social|ai_focus|business|morning | 全 21 信源 | 25s |
| 只看某 1 个热榜 | python3 scripts/fetch_news.py --source weibo --limit 20 | 单信源 | 1-2s |
| 只看科技垂类 | python3 scripts/fetch_news.py --source tech-blogs --limit 10 | 9 个科技信源 | 13s |
| 关键词过滤 | python3 scripts/fetch_news.py --keyword AI --limit 10 | 全 21 信源 + 关键词 | 25s |
| deep 模式(含详情) | python3 scripts/fetch_news.py --deep --limit 5 | 5 个信源 + 详情抓取 | 5-8s |
| 信源诊断 | python3 scripts/fetch_news.py --stats | 全 21 信源 | 25s |
| 列出所有信源 | python3 scripts/fetch_news.py --list-sources | — | <1s |
| 出口标准 JSON | python3 scripts/fetch_news.py --json ... | 同上 | 同上 |
| Agent 友好(无 progress) | python3 scripts/fetch_news.py --quiet ... | 同上 | 同上 |
易混淆场景表(防 Agent 误判)
| 用户说的 | 实际意图 | 正确路由 |
|---|---|---|
| 「国内财经新闻」 | 不是 raw 财经数据,是大厂动态 + 科技日报 | --profile general 或 --profile tech |
| 「AI 早报」 | 国产大模型动态,不是 OpenAI 海外新闻 | --profile ai_focus(不是 --keyword OpenAI) |
| 「微博热搜」 | 只要微博,不含其他 | --source weibo(不是 --profile general) |
| 「今天大厂都做了什么」 | 跨全 21 信源 | --profile general(不是 --source all –source=all 是 raw 模式不带编排) |
| 「给我看看编程日报」 | 偏开发、要 GitHub trending / 掘金 / CSDN | --profile tech + --keyword 编程 | 开发者 |
| 「中文新闻聚合」 | 就是这个技能本身(SkillHub 自动路由) | SkillHub 触发词命中即可,无需带任何参数 |
| 「国际新闻」 | 不在本技能 21 信源内(v3 没接入路透/纽约时报) | 显式告知「本技能仅国内,海外请用其他技能」 |
工作流(CLI 调用标准范式)
A. 一次拿全部(最快路径)
cd ~/.workbuddy/skills/MiX-news-aggregator
python3 scripts/daily_briefing.py --profile general > /tmp/news.json
# Agent 读 /tmp/news.json 即可B. 关键词过滤版
python3 scripts/fetch_news.py --keyword "国产大模型" --limit 15 --json
# → stdout: {"keyword": "国产大模型", "items": [...15条...], "smart_filled": false, "code": 0}C. 信源诊断(找失败信源)
python3 scripts/fetch_news.py --stats 2>&1 | tail -25
# → stderr 写出每个信源的成功率 + 耗时D. Deep 详情(用于写深度报告)
python3 scripts/fetch_news.py --source wallstreetcn --deep --limit 3 --quiet
# → stdout 纯 JSON 数组(每条带 content 字段,从详情页抓的正文)核心响应字段
{
"code": 0, // 0=成功 1=部分成功 2=空结果-已补全
"keyword": "AI", // 过滤词(若有)
"total": 23, // 总匹配数
"items": [
{
"title": "...",
"url": "...",
"source": "weibo",
"source_label": "微博热搜",
"rank": 1,
"hot_value": 1240000, // 归一化为整数(万/亿/w/k 自动转)
"hot_display": "124万", // 人类可读原值
"ts": "2026-07-15T10:30:00+08:00",
"content": "..." // 仅 deep 模式有值
}
],
"smart_filled": false, // 是否 Smart Fill 触发
"warnings": [], // 部分信源失败的提示
"stats": { ... } // 仅 --stats 模式有值
}完整字段说明 → references/api.md
文件清单
MiX-news-aggregator/
├── SKILL.md ← 你正在读(入口)
├── meta.json ← 版本 + 运行时依赖(v5 新增)
├── README.md ← 用户文档
├── MISTAKES.md ← 工程犯错笔记(v4.0 + v5 修订)
├── CHANGELOG.md ← v4 → v5 迁移指南
├── LICENSE.md
├── SKILLHUB.md ← SkillHub 上传简介
├── templates.md ← 30 选 1 菜单
├── implementation_plan.md
├── requirements.txt
├── references/
│ ├── api.md ← 21 信源详细参数表 + 错误码规范
│ └── profile-system.md ← 6 profile 决策树
├── scripts/
│ ├── fetch_news.py ← 主入口 CLI
│ ├── rss_parser.py ← RSS 通用解析
│ └── daily_briefing.py ← 6 profile 编排
├── instructions/ ← 6 个早报指令 prompt(无 frontmatter)
│ ├── briefing_general.md
│ ├── briefing_tech.md
│ ├── briefing_social.md
│ ├── briefing_ai_focus.md
│ ├── briefing_business.md
│ └── briefing_morning.md
├── archive/
│ └── v4.0.0/ ← v4 旧版快照(保留供对比)
└── examples/ ← JSON 喂数据示例(v5 新增)安装 / 升级
全新安装(推荐)
# 1. 复制到 workbuddy skills 目录
cp -r MiX-news-aggregator/ ~/.workbuddy/skills/MiX-news-aggregator/
# 2. 重启 WorkBuddy 扫描自动加载从 v4 升级
详见 CHANGELOG.md:
- v5.0.0 改动向后兼容,所有 v4 调用照常工作
--stats输出格式从 stderr 文本改为 stderr JSON,更可解析- 新增
--quiet标志(Agent 友好,stderr 静默) --json现在统一输出{code, items, ...}包裹(v4 是裸数组)
反例(不应该这样做)
- ❌ 调一次本技能后立刻调「帮我写一篇分析」(应该先看
references/api.md了解字段) - ❌ 同时启动 3 个 daily_briefing 实例(uapis.cn 会触发 429,20 分钟内封 IP)
- ❌ 改 fetch_news.py 的 jaccard 阈值到 0.4(会导致 21 信源全标"重复")
- ❌ 把
--deep --limit 100当默认(每个详情页 3 秒 = 5 分钟) - ❌ 让 Agent 自动根据「国际新闻」调用本技能(不在 21 信源内,会返空)
❓ 常见问答
Q: 21 信源够用吗?要不要加 RSS 订阅更多?A: v3.3.3 已经是收敛版(去掉 8 个反爬严重的站)。新增信源需要先压测 uapis.cn 的 QPS。详见 references/api.md 第 §6 节。
Q: 关键词返回空结果时 Smart Fill 是怎么工作的?A: 当过滤后 < 5 条,自动移除过滤词再拉一次,标记 smart_filled: true。详见 references/profile-system.md 第 §3 节。
Q: 哪天 uapis.cn 挂了怎么办?A: 已 fallback 到 newsnow.com / wallstreetcn.com 官方页面(详见 SKILL.md v5 易混淆表 + references/api.md §7)。
Q: 怎么升级到 v5.1?A: 等 v5.1 路线图(自更新机制 + interactive mode)发布后直接覆盖 ~/.workbuddy/skills/MiX-news-aggregator/。