dsh-miniflux:在 DSH Web 里用 Miniflux 做 AI 早晚报与 EPUB

前言

用 Miniflux 收 RSS 时,未读条目会不断堆积;自己扫标题、再决定读哪几篇,往往要占掉固定的一块时间。常见做法是定时打开阅读器,或把链接丢进稍后读列表,但很少能自动产出「按主题归纳的简报」,也很难按源打包成适合离线读的电子书。

DeepSeek Harness(DSH)把能力拆成插件挂载到 Web GUI。下面介绍客户端插件 dsh-miniflux(社区目录 statou666/dsh-miniflux):连上 Miniflux 实例后,可按 cron 生成 AI 早晚报、AI 精选 EPUB,以及不调用模型的自选源 EPUB;设置页在侧栏,字段中英双语。

这是什么

dsh-miniflux 是面向 DSH Web GUI 的 Miniflux 插件(分类:客户端)。npm 包名 dsh-miniflux,当前版本 0.9.1(MIT)。插件描述为:AI 早晚报、精选与自选源 EPUB,配置集中在插件设置页。

依赖 DSH >=0.2.0-rc.2。装好后重启一次 dsh web,左侧栏会出现 Miniflux 入口;之后在「设置 → 插件 → Miniflux」改配置即可,文档说明 volatile 字段可热应用,一般不必再重启进程。

核心功能

AI 早晚报

按 digestCron(标准 5 字段 cron,宿主机本地时区)从 Miniflux 拉取最近条目,由模型写成分类简报。回看范围、条数上限分别由 lookbackHours、digestMaxItems 控制;输出语言由 language 指定。

精选 EPUB

按 picksCron 定时运行(留空则关闭)。模型从近期文章中挑出约 3–5 篇,附带挑选理由;若开启 autoStar,选中条目会自动加星。重要性无本地打分公式,完全由模型按提示词(影响面、时效性、信息增量、一手信源等维度)判断。

自选源 EPUB(零 token)

按 feedEpubCron 与 epubFeedNames(逗号分隔的源名或 id,空表示全部源)把最近文章打包成 EPUB。纯本地拼装,不调用模型。按 RSS 源分章,文章在章内按时间倒序;阅读器目录为「源 → 文章」嵌套结构,书内另有可见总目录。篇数上限 feedEpubMax 默认 120、最大 500。生成完成后,收录条目会标为已读。

图片与 EPUB 技术行为

  • 可选 withImages 内嵌图片;下载后用魔数识别格式,WebP/AVIF 经系统 ffmpeg 转 JPEG(无 ffmpeg 仍可运行,此类图会被跳过)。
  • 外网抓图需代理时在设置填 imageProxy(例如 http://user:pass@host:port),插件用 curl 走代理。
  • EPUB 使用自实现的最小 ZIP 写入器生成;默认输出目录为空时用 $DSH_HOME/miniflux-epub,也可设 epubDir 绝对路径。

模型来源

aiSource=dsh 时使用 DSH「设置 → Models」里已配置的 provider 与 model(dshProvider / dshModel),走 ctx.llm.stream,无需再填 API key。aiSource=custom 时使用 aiBaseUrl、aiApiKey、aiModel,请求 OpenAI 兼容的 POST {base}/chat/completions。

Agent 工具与 HTTP 接口

Agent 侧工具:miniflux_feeds、miniflux_search、miniflux_read、miniflux_digest、miniflux_epub、miniflux_feed_epub、miniflux_star。

HTTP:

  • GET /api/dsh-miniflux/status — 连通性与当前生效配置
  • POST /api/dsh-miniflux/generate?what=digest|feed-epub&kind=morning|evening — 立即触发生成

安装与启用

先做环境检查:DSH 版本满足 >=0.2.0-rc.2;若需要 EPUB 内嵌 WebP/AVIF 图,系统应安装 ffmpeg。

从 npm 安装(README 写明发布后可用):

dsh plugin --profile <name> add dsh-miniflux

本地 link 安装(开发或已有源码目录时):

dsh plugin --profile <name> add link:/path/to/dsh-miniflux

link: 方式不会自动安装 npm 依赖,需在插件目录先执行一次 npm install;若改用 npm 发布的包,dsh plugin add dsh-miniflux 会自行处理依赖。

安装完成后重启 dsh web 进程以挂载插件;之后 Miniflux 侧栏与设置页即可使用。

Miniflux 连通必填 minifluxUrl 与 minifluxToken,并用 enabled 总开关控制是否工作。

典型用法

1、在设置页完成 Miniflux 与 AI 配置

打开「设置 → 插件 → Miniflux」,填写实例地址与 API token。选择 aiSource 为 dsh 或 custom,并填对应的模型或自定义接口字段。cron 示例:早晚报 digestCron 可设为 30 7,18 * * *(每天 7:30 与 18:30);精选、自选源分别用 picksCron、feedEpubCron,留空即关闭对应任务。

2、按需限定自选源与 EPUB 输出

在 epubFeedNames 中列出要打包的源;控制 feedEpubMax、withImages、epubDir。需要代理抓图时配置 imageProxy。

3、手动触发生成(不等到 cron)

在已启用插件的前提下,可对服务发起:

POST /api/dsh-miniflux/generate?what=digest&kind=morning
POST /api/dsh-miniflux/generate?what=feed-epub

what 取 digest 或 feed-epub;早晚报还可通过 kind=morning|evening 区分场次(以实际部署的 DSH Web 鉴权方式为准)。

4、在 Agent 对话中调用工具

将 Miniflux 相关工具交给 DSH Agent,可在对话里查源、搜索、读文、生成简报或 EPUB、加星等,与定时任务共用同一套配置。

适用场景与注意

适合已经在用 Miniflux 聚合 RSS、并希望把「读 feed」变成「定时简报 + 离线 EPUB」的 DSH 用户;自选源 EPUB 适合零 token、只要结构化离线阅读的场景。

安装前建议自行查看插件源码与 MIT 许可证;插件以当前 dsh 进程权限运行,Miniflux token、自定义 aiApiKey、图片代理等敏感配置会落在设置与运行环境中,应按个人安全策略保管。社区目录 skillhub.cn 与 GitHub 仓库为社区维护信息,与 DeepSeek / 幻方无官方从属关系;DSH 生态本身是「一切皆插件」的挂载模型,本文事实以插件 README 与 package 元数据为准。

结尾

经过上面的步骤,dsh-miniflux 把 Miniflux 未读流接到 DSH:cron 驱动 AI 早晚报与精选 EPUB,自选源 EPUB 本地打包且不耗模型 token,Web 侧栏统一配置,Agent 工具与 HTTP 接口可手动补跑任务。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye