READMESource: main@8f7befd7
dsh-plugin-model-news-radar · 模型资讯雷达
DeepSeek Harness(DSH)插件。按一份「厂商官方资讯来源清单」定时采集各大模型厂商的发布资讯,去重后写成 Markdown 日报 / 周报 / 月报,并在 DSH 里起一个会话用你当前的默认模型写摘要。
- 只读:不登录任何平台,不发任何东西,不伪装浏览器。
- 零依赖:RSS / Atom、Hugging Face 组织 API、GitHub 组织 API、官网页面粗提全部自己写,没有第三方包。
- 抓不到就说抓不到:每份报告末尾列出失败通道和不采集的通道(X、公众号、LinkedIn、YouTube)。
安装
# 从 GitHub 装(DSH 0.2.0-rc.2 及以上)
dsh plugin --profile web add github:805808786/dsh-plugin-model-news-radar
# 或本地目录
dsh plugin --profile web add /path/to/dsh-plugin-model-news-radar
桌面版没有 dsh 命令时,在 DSH 的「插件」页搜索 dsh-plugin-model-news-radar 一键安装;或把本目录加进 ~/.dsh/profiles/desktop/package.json 的 dependencies(link: 路径)和 dsh.profile.bundles,重启 DSH。
装好后在对话里说「扫一遍模型资讯」,模型会调 model_news_scan;说「改成每周一早上八点」,模型会调 model_news_radar_configure。
清单
插件自带 sources.sample.json:6 家厂商(Anthropic、OpenAI、Google DeepMind、DeepSeek、月之暗面、阿里 Qwen)、20 条机器可读通道。
完整清单放在 ~/.dsh/model-news-radar/sources.json(和示例同一格式),插件优先读它。格式:
{
"vendors": [
{
"id": "deepseek", "name": "DeepSeek(深度求索)", "tier": "A",
"modelFamilies": ["DeepSeek"], "keywords": ["DeepSeek", "V4", "R1"],
"channels": [
{ "id": "deepseek-hf-api", "type": "hf-org-api", "url": "https://huggingface.co/api/models?author=deepseek-ai", "label": "Hugging Face 组织" },
{ "id": "deepseek-updates", "type": "release-notes", "url": "https://api-docs.deepseek.com/updates/", "label": "API Docs Updates" },
{ "id": "deepseek-x", "type": "social-x", "url": "https://x.com/deepseek_ai", "accountName": "@deepseek_ai" }
]
}
]
}
| 通道类型 | 插件怎么采 | 判断依据 |
|---|---|---|
rss |
解析 RSS 2.0 / Atom | pubDate / updated 在窗口内 |
hf-org-api |
调 Hugging Face 组织 API | 模型仓库 createdAt 在窗口内 = 新权重 |
github-org |
调 GitHub 组织 API | 仓库 created_at 在窗口内 = 新仓库 |
gitcode-org |
调 GitCode v5 接口(华为盘古开源在这里) | 同上 |
release-notes |
抓 HTML,按「日期行 → 标题行」分段;行尾带日期的短标题也算 | 日期在窗口内,链接带页面锚点 |
news-list / blog-list |
抓 HTML,找「链接 + 附近日期」;找不到就退回按日期分段 | 日期在窗口内,标题按厂商关键词分「模型相关 / 其他」 |
social-* / wechat |
不采集 | 报告末尾列为未覆盖通道 |
tier:A 前沿旗舰 / B 主力 / C 区域或专项 / D 观察。默认只采 A、B。
配置
cordis.patch.yml 里的默认值;在 DSH 插件页改,或在对话里让模型调 model_news_radar_configure(写到 ~/.dsh/model-news-radar/config.json,优先级更高)。
| 项 | 默认 | 说明 |
|---|---|---|
enabled |
true | 定时开关;关掉仍可手动扫 |
period |
daily | daily / weekly / monthly,窗口 1 / 7 / 31 天 |
runAt |
07:30 | 触发时刻 |
timeZone |
Asia/Shanghai | IANA 时区 |
weekday |
1 | weekly 时周几(0 周日 … 6 周六) |
monthDay |
1 | monthly 时几号(1–28) |
tiers |
[A, B] | 采哪些档 |
vendors |
[] | 只盯这些厂商 id,填了就忽略 tiers |
sourcesPath |
空 | 清单路径;空 = 数据目录下的 sources.json,没有就用示例清单 |
dataDir |
空 | 数据目录;空 = ~/.dsh/model-news-radar |
summarize |
true | 采集后起会话写摘要;关掉零 token |
language |
zh | 摘要语言 zh / en |
catchUp |
true | 启动时发现错过上次触发,90 秒后补跑 |
工具
| 工具 | 作用 |
|---|---|
model_news_scan |
立刻扫一次;可指定 period / since / tiers / vendors / summarize |
model_news_sources |
列清单;probe=true 逐条探测通道可达性 |
model_news_radar_status |
当前配置、下一次触发、上一次结果、报告路径 |
model_news_radar_configure |
改配置,立刻生效 |
输出
~/.dsh/model-news-radar/reports/<period>-<时间>.md:先是摘要会话写的报告,再是原始条目。条目按厂商分组:厂商是二级标题,每条「#### 序号、标题」下一行正文、再一行「日期 · 原文链接」,条目之间空一行;关键词没命中的条目放在「其他」下,日期前带厂商名。- 摘要会话的回复用同一套格式,标题和正文译成中文(模型名、产品名保留原文),正文 2 到 4 句,只输出资讯本身。提示词模板内置在
lib/summarize.js;在数据目录放prompt.zh.md(或prompt.en.md)可以覆盖,保留{{period}}和{{entries}}两个占位符即可。 - 发给会话的是条目不是清单:每条「厂商 | 日期 | 标题 | 正文(最多 400 字)| 链接」;模型相关条目最多 120 条,关键词未命中的最多 15 条。链接必须原样进提示词,DSH 会话里显示的是模型的原话,用编号替代会让界面上的链接失效。日报窗口通常几条到十几条,提示词两三千 token;月窗口才会到几万。
- 无效条目不进报告:标题是导航碎片的(「8 min read」「Video thumbnail」)、链接 404/410、连不上、跳回站点首页的,都剔掉,列在 channels 文件里。每次最多实际请求 80 条链接,接口来的权重和仓库不再请求。
reports/<同名>.channels.md:通道状态表、未覆盖通道、剔除的无效条目,不进主报告,排查用。- DSH 会话「模型资讯雷达 · 日报 YYYY-MM-DD」:摘要在这里,可以追问。会话用登记的 preset
model-news-radar-summary-v1,不挂任何工具。 state.json:上次运行时间、条数、报告路径;seen.jsonl:报告过的条目台账。
边界
- DSH 的定时只在 Host 开着时跑;桌面版关了就不跑,重开后按
catchUp补一次。真要无人值守,用dsh web挂在常开机器上。 - 前端渲染的官网页面(Gemini API changelog、Kimi 开放平台文档等)抓不到条目,报告里标「可达但无条目」;同一厂商的 Hugging Face / 变更页兜底。
- 拒绝脚本访问的站(x.ai 403、ai.meta.com 400)如实报告,不绕。
- GitHub 组织接口匿名每小时 60 次,一天一跑够用;频繁手动扫会撞限速,报告里会写明。给 DSH 的环境设
GITHUB_TOKEN可放宽到每小时 5000 次。 - 只在社交平台官宣的消息会晚到,等官网或 Hugging Face 出现才收到。
命令行
不进 DSH 也能跑(不出摘要):
node bin/scan.mjs --period weekly --tiers A,B --sources ~/.dsh/model-news-radar/sources.json --print
测试:npm test。
No comments yet. Be the first to write one.