RSS/Atom 订阅九工具(管理/校验/抓取解析/跨订阅搜索/增量抓取/OPML 导入导出/健康自检),游标增量抓取,订阅持久化到 settings。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-rss
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:STARDUSTLC666/dsh-rss
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
dsh-rss
0.4.1 更新(2026-09-27)
识别代理 Fake-IP 造成的订阅源解析问题,提示使用真实 DNS 地址;继续拒绝保留地址,无需放开内网访问。
验证宿主:官方源码构建的 Harness 0.2.0-rc.1(commit 407e65c8)+ Node 24.16.0(2026-09-28)。77 项插件测试在隔离环境全部通过;同一个宿主里 18 个插件共同加载,注册 9 个工具,工具 schema 与健康检查契约通过。本轮未启用真实端口与外部服务。
agent 的资讯雷达:订阅管理 + RSS/Atom 抓取解析。
DSH(DeepSeek Harness)的 RSS/Atom 订阅工具插件:管理订阅源,抓取并解析 RSS 0.9x / 1.0 / 2.0 与 Atom,支持 OPML 批量导入导出,给模型提供九个可直接调用的工具。
兼容性
0.4.0 起适配官方源码构建的 Harness 0.1.7 及以上的声明式设置接口;当前基线为 0.2.0-rc.1,18 个插件同载、工具契约、订阅读写与重启持久化在隔离环境通过验证;真实外部订阅源需要正常网络连接。Node 要求为 22.19 及以上的 22.x,或 24 及以上。
抓取接收 Harness 的取消信号,取消 DNS、网络读取或跨源搜索时保留原始取消原因。默认预检域名解析结果并拒绝回环、私网和链路本地地址;每次重定向都重新校验。可信内网源可显式配置 allowPrivateNetwork: true。
rss_opml_export.path 必须相对本次调用的会话工作区,父目录须已存在;工具拒绝绝对路径、目录穿越和指向工作区外的链接,并返回实际写入文件的绝对路径。文件写入默认通过 Harness 审批门,opmlWriteApproval: false 可关闭该门;省略 path 时仅返回 OPML 文本。
安装
dsh plugin --profile web add dsh-rss
安装后重启 Web 服务即可。直接对助手说「订阅这个 RSS 地址,命名为技术资讯」或「列出我的订阅」即可使用,日常增删订阅不需要编辑配置文件。
卸载
dsh plugin --profile web remove dsh-rss
卸载后重启 Web 服务。如需彻底清理,可再手动删除自己 profile cordis.patch.yml 中覆盖的插件行。
配置
在你自己的 profile 的 cordis.patch.yml 里覆盖本插件行(缺省时插件也能加载,只是全部用默认值):
- id: rss
name: 'dsh-rss'
config:
# proxyUrl: http://127.0.0.1:7890 # 部分订阅源需要特殊代理(梯子)才能访问时启用
timeoutMs: 15000 # 抓取超时(毫秒,默认 15000)
# maxBodyBytes: 5242880 # 订阅源体积上限(默认 5MB,防超大响应)
# userAgent: 'dsh-rss/0.2.0' # 自定义抓取 UA
# feedsYaml: | # 可选:预置订阅列表(也可用 rss_add 工具添加)
# - url: https://example.com/feed.xml
# name: 示例订阅
# category: 技术
工具一览
| 工具 | 作用 | 关键参数 |
|---|---|---|
rss_list |
列出已订阅源 | 无 |
rss_add |
添加订阅(先抓取校验地址) | url 必填;name/category 可选 |
rss_remove |
删除订阅 | url 或 name 至少一个 |
rss_fetch |
抓取解析订阅源,返回源信息与条目(含正文 content) | url 或 name 至少一个;limit 1-100 默认 20 |
rss_check |
校验地址是否为可解析的订阅源 | url 必填 |
rss_opml_export |
导出订阅列表为 OPML 2.0 文本(可写入文件) | path 可选 |
rss_opml_import |
从 OPML 2.0 文本批量导入订阅源 | opml 必填 |
rss_search |
跨订阅源关键词搜索条目(标题/摘要/正文/作者) | query 必填;name/url/since/limit 可选 |
rss_health |
插件自检(配置/订阅/游标/解析器,离线) | 无 |
示例
rss_add { url: https://example.com/feed.xml, name: 我的订阅 }
rss_fetch { name: 我的订阅, limit: 10 }
rss_check { url: https://example.com/feed.xml }
rss_opml_export { path: subscriptions.opml }
rss_opml_import { opml: "<?xml version=\"1.0\"?>..." }
订阅存储
Harness 0.1.7 把订阅列表和读取游标保存在当前 profile 的 rss 配置行;增删后立即生效,重启仍保留。默认安装会自动导入旧 settings.yaml 或 settings.yaml.imported 的 dsh-rss 数据一次,保留原文件,且不覆盖已有 profile 值。旧版宿主继续使用原 settings 存储。同名订阅请用 URL 区分。
特殊代理(梯子)
大部分订阅源可以直接访问;少数订阅源需要特殊代理(梯子)才能连通。遇到 抓取失败 且提示需要代理时,把 proxyUrl 配成你的本地代理地址(如 http://127.0.0.1:7890)并重启即可。代理只作用于本插件的抓取请求,不影响同进程其他插件。
解析能力
- RSS 2.0 / RSS 1.0(RDF)/ Atom 三种格式,统一归一化输出
- 实体解码、CDATA、
content:encoded、dc:creator、itunes等常见字段 - RFC 822 / ISO 8601 日期统一转 ISO 8601 UTC(
pubDate),原始文本保留在pubDateRaw - 相对链接按订阅源地址解析成绝对链接
- 摘要去 HTML 标签并截断到 500 字符;RSS
content:encoded/ Atomcontent作为content字段保留(去标签后最多 20000 字符) - 安全:不解析 DTD/外部实体,内容只做文本抽取;响应体积上限 5MB;抓取超时可配
开发
pnpm install
pnpm test # 构建 + 离线测试(fetch 与 DNS 均使用夹具)
发布前门禁:危险模式扫描、manifest 自检、pnpm audit --prod、全量测试,以及全新 profile 的真实启动冒烟测试。
License
MIT
链接
同类插件
Tencent/WeKnora#dsh-weknora★ 31002
把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己带引用的 RAG 或 ReAct agent 回答(含可续聊的 session id)。
superdesigndev/treg★ 3752
给 Agent 的工具目录:按「要做的事」检索约 2,600 个外部接口(SEO 与 SERP、外链、社交、人物与公司信息补全、广告库、抓取),查看参数与单次调用价格后直接调用,凭据由服务端注入。附带技能,MCP 行在未设置 TREG_TOKEN 前保持禁用。
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1127
把腾讯云 CloudBase 后端接入 DeepSeek Harness——在对话里搭好并部署全栈应用,查询结果渲染为表格卡片(分页、排序、导出 CSV),部署后可预览真实域名,并提供 CloudBase MCP 工具集(`mcp__cloudbase__*`),登录走 device-code 流程。
gitroomhq/postiz-agent#dsh-postiz★ 498
通过 MCP 将 DeepSeek Harness 连接到 Postiz:列出已连接的社交媒体渠道、获取各平台发帖规则,并向 X、LinkedIn、Instagram、Facebook、Threads、TikTok、YouTube、Reddit、Bluesky、Mastodon、Discord、Slack、Telegram 等平台排期、存草稿或发布帖子;附带 postiz 工作流技能。
EthanYoQ/Invoice-Downloader#dsh-invoice-downloader★ 465
面向 DeepSeek Harness 的本地 IMAP 发票下载、OCR 识别、归档与 Excel 报销汇总。
anysearch-team/anysearch-dsh★ 432
基于 AnySearch 的实时网页与垂直搜索插件,为 DeepSeek Harness 提供搜索工具。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。