dsh-feed-scroll:让 DSH Agent 聚合多站内容并准备群聊分享素材

前言

在 DeepSeek Harness(DSH)里跑 agent,常见需求是「从外网拉热点、读正文、把值得看的东西推到 QQ 群」。手工复制链接、另存封面图,再让模型写一句点评,步骤分散且难去重。社区插件 dsh-feed-scroll(维护者 ChencLi819,分类:联网工具)把拉取、读取、封面落盘和计划唤醒串成一条工具链;分享文案由模型生成,插件只负责内容与素材,不预设表达方式。

下面介绍它的定位、能力与安装用法。事实以 GitHub 仓库 README 为准。

这是什么

dsh-feed-scroll 是 DSH 插件(npm 包名 dsh-feed-scroll,当前版本 0.1.0,MIT 许可证)。它为 agent 提供内容聚合与分享能力:从 Bilibili、知乎、掘金、贴吧、Hacker News、少数派、IT之家、GitHub 等源拉取条目,读取正文、热评、字幕与视频关键帧,并将选定条目以「封面图 + 链接」的形式准备为可发送素材;支持按计划自动执行一轮拉取。

插件声明依赖宿主 tools 服务;若要与 QQ 群打通发送与定时推送,需配合 @tencent-connect/dsh-qqbot(可选,README 要求 >= 0.5.0)。

核心功能

内容聚合与读取

能力 说明
内容聚合 11 个内容源(含 auto 混合拉取并按兴趣权重排序),覆盖热门、排行、搜索、热搜、推荐流
内容读取 正文、热评、字幕;Bilibili 支持视频关键帧雪碧图(10×10,供视觉模型分析)
去重与排序 记录已读;分享记录的标题关键词累积为兴趣画像,用于后续排序加权

内容源 ID 包括:bilibili-hot、bilibili-rank、bilibili-search(需 query)、bilibili-trending、zhihu-hot、juejin、tieba-hot、hackernews、sspai、ithome、github、auto(默认)。

站点读取能力有差异:知乎未登录访问会 403,插件会返回失败原因;多数 B 站字幕需登录态,未获取时会明确说明。

分享素材与图片

  • feed_share:下载封面图并落盘至 QQ 发送白名单目录(默认 mediaDir 为 ~/.dsh-qqbot/media),返回本地路径;实际发图由模型调用 qqbot_send_file 完成。
  • grab_image:任意图片直链落盘,按来源附加 Referer、识别格式、WebP 转码(可选依赖 sharp)、等比缩放。

计划任务与会话保活

  • 默认约每 80 分钟在 10:00–23:00 内唤醒,每日上限 9 次(均可通过配置与 feed_watch 调整)。
  • 安装脚本可将 im-qqbot 的 sessionIdleTimeout 从 30 分钟调整为 12 小时,避免会话超时后推送被静默丢弃;并提供 feed_watch 的 diag / recover 用于排查与恢复会话。

兼容性与依赖

项目 要求
DSH >= 0.1.7-rc.1
Node.js >= 22.13.0
宿主 必须注入 tools
@tencent-connect/dsh-qqbot >= 0.5.0(可选,分享与计划任务链路)
sharp 可选,WebP 转码;未安装时部分图片走直链交给 qqbot

安装与启用

通过 DSH CLI(推荐)

Web profile:

dsh plugin --profile web add dsh-feed-scroll

或从 GitHub 安装:

dsh plugin --profile web add github:ChencLi819/dsh-feed-scroll

Desktop profile:

dsh plugin --profile desktop add dsh-feed-scroll

安装完成后重启 DSH,或在 profile 的 cordis.patch.yml 中修改任一配置值以触发重载。

仓库脚本(Windows PowerShell 示例)

node tools/install.mjs

脚本会软链装入 profile、登记 bundle,并将 QQ 机器人会话闲置超时调整为 12 小时。检查状态:

node tools/install.mjs --check
node tools/install.mjs --profile-dir <path>

手动注册

在 cordis.patch.yml 中插入:

- insert:
    - id: feed-scroll
      name: dsh-feed-scroll

配置示例

默认值可在 cordis.patch.yml 中深合并覆盖,例如:

- id: feed-scroll
  config:
    proactive:
      maxPerDay: 5
      defaultEveryMinutes: 120
      quietFrom: 9
    promptEnabled: true

常用项包括 stateDir(默认 ~/.dsh/feed-scroll)、mediaDir、proactive.* 开关与时间窗、promptEnabled / promptText 等,完整表见仓库 README「配置」一节。

典型用法

插件注册 6 个工具,输出均为 { text: string }。推荐数据流(与 README 一致):

feed_scroll → feed_read → feed_share → qqbot_send_file(模型写文案 + 链接)

1. 拉一批未读条目

调用 feed_scroll,例如默认 source=auto、count=6(上限 10)。可用 mood 传入空格分隔关键词做加权;include_seen=true 时可包含已读。

B 站搜索示例:source=bilibili-search,必填 query,可选 sort 为 totalrank / new / hot。

2. 读详情再决定是否分享

feed_read 传入 feed_scroll 返回的 id 或任意 http(s) 链接。parts 可选 text、comments、subtitles、frames(逗号分隔);max_chars 默认 1200,最大 4000。

3. 准备封面并记录分享

feed_share 传入条目 id;comment 仅写入账本,不参与发送。返回封面本地路径后,由 agent 调用 qqbot_send_file 发图,并由模型生成群里的分享话术与链接。

4. 定时刷一轮

feed_watch:action=add 可设 every_minutes(最小 30,默认 80)、source 等;list / pause / resume / remove 管理任务;出问题时用 diag 与 recover。

5. 查历史

feed_history 可查近期浏览与分享;only_shared=true 时仅已分享条目。

适用场景与注意

适合谁:已在 DSH 中跑 agent、并(可选)接入 dsh-qqbot 的开发者或小团队;希望 agent 主动逛多站热点、去重后把素材推到群,而不是每次人工找链接。

运行权限:插件以当前 DSH 进程权限访问网络与本地状态目录(如 ~/.dsh/feed-scroll/state.json)。安装前请自行审阅 源码与 MIT 许可证,确认数据源与落盘路径符合你的环境策略。

生态说明:DSH 社区插件目录(如 SkillHub 条目)为独立站点,与 DeepSeek / 幻方无官方从属关系;本文不引用未在 README 中出现的用户案例或数据。

已知限制:依赖各站公开接口与 HTML 抽取,接口变更可能导致单源失败;知乎正文读取在未登录场景下不可用;计划任务依赖 QQ 会话登记与超时配置,Web/桌面客户端消息含 rpcId 时不会误登记为非 QQ 会话。

结尾

dsh-feed-scroll 把多站聚合、深度读取、封面落盘和定时唤醒封装为一套 DSH 工具,分享表达仍交给模型,职责边界清晰。若要安装或查参数细节,可看社区目录页与仓库:

  • 目录页:https://www.skillhub.cn/plugins/ChencLi819/dsh-feed-scroll
  • GitHub:https://github.com/ChencLi819/dsh-feed-scroll
羽毛球分组比赛记分
小程序二维码

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

小夜